133 Commits

Author SHA1 Message Date
8d688fa304 Add module-info files (#886) 2025-05-15 03:55:54 +00:00
e34414f6d6 Test for permanent responses for capabilities (#862) 2025-04-21 03:09:59 +00:00
8e1778e2db Some terminal docs, naming changes, and shuffling (#839) 2025-03-28 16:19:22 +00:00
cd8f78e70e Detect Kitty text sizing protocol (#835) 2025-03-26 11:25:23 -04:00
7e10e56d87 Cursor position event (#829) 2025-03-25 17:44:32 +00:00
4b40ca742a Expose terminal name (#828) 2025-03-25 16:22:46 +00:00
3f2c6107e7 Parse secondary attributes event (#827) 2025-03-25 15:59:41 +00:00
83a7d0c2f3 Create Terminal.Theme, and use Terminal.Size more (#815)
The ternary theme more accurately models our knowledge, and the size propagates both cell and pixel values.
2025-03-21 04:10:01 +00:00
52916d2f4a Rewrite POSIX Tty to actually use the TTY (#805)
And a PTY for testing. Windows still uses stdin/stdout for now.
2025-03-19 20:27:29 +00:00
01f5a6132e Expose all events on Termainl (#798)
Do not use a channel to communicate between the parser and the state machine. Process directly, and then forward all events to the channel.
2025-03-16 03:19:27 +00:00
a9441cc34f Eliminate terminal event package (#795) 2025-03-15 03:57:21 +00:00
d77614b518 Split Terminal API from TTY Terminal implementation (#785)
This fixes the public API problem in the runtime.

Expose a TestTerminal from the testing library as well.
2025-03-13 15:30:10 +00:00
423ba21f8c Push terminal feature detection into terminal library (#784)
This starts to provide a high-level terminal abstraction. It's not perfect, but it's good enough to start with.
2025-03-13 04:34:30 +00:00
633f664989 Only allow a single bound Tty at a time (#771) 2025-03-05 15:01:19 +00:00
e71f179e33 Change TestTty write API to a single write (#770) 2025-03-05 04:05:07 +00:00
8f35bcf692 Do not require a callback during Tty creation (#768) 2025-03-04 19:30:02 +00:00
1b2f3f00e0 Stylistic tweaks (#761)
Previous code was for diff minimazation that we can now fix.
2025-03-01 03:03:59 +00:00
2d9636cc29 Remove last usage of deprecated parsing method (#760) 2025-02-28 21:20:48 +00:00
3c1458fbcb Do not repeat APIs from Tty (#758)
These are lower-level, so you can go down to get them.
2025-02-28 20:26:56 +00:00
2a352c26f8 Post-split rename (part 2) 2025-02-28 10:10:50 -05:00
105c2d9872 Post-split rename (part 1) 2025-02-28 10:05:40 -05:00
8b8f02d0a0 Bring back TerminalParser (#756)
This is a better design, and it will allow TerminalReader to ascend into a higher-level abstraction that is more useful.
2025-02-28 14:58:07 +00:00
893f3704bd Get rid of last 'Platform'-prefixed type (#755) 2025-02-28 05:43:21 +00:00
903e9d15e4 Expose underlying Tty instance from TerminalReader (#754) 2025-02-27 21:07:32 +00:00
32a91bac67 Add TTY functions to write stdout and stderr (#738)
In the future these will be used to write bytes instead of chars and to intercept 'println' usage.
2025-02-25 03:11:17 +00:00
09c85ab524 Decouple TTY library from terminal (#732) 2025-02-24 14:46:59 +00:00
7edf0ff04a Decouple test TerminalReader from TestTty (#731) 2025-02-24 09:01:28 -05:00
0898ab6e77 Rename PlatformInput to Tty (#730) 2025-02-24 05:49:14 +00:00
0da5a4459d Split input callback from implementation (#729)
In preparation to separate these layers.
2025-02-24 03:56:43 +00:00
4461277809 Eliminate useless Tty type (#728)
I want the name for renaming PlatformInput.
2025-02-23 16:53:23 +00:00
a3aefca33b Do not reference event from platform input type (#727)
Only the reader should know about events.
2025-02-23 07:12:25 +00:00
1ce5aa48ff Flatten terminal size into size result struct (#726) 2025-02-23 06:59:37 +00:00
12b09f4a7f Split tty and test tty C files (#725) 2025-02-23 06:47:25 +00:00
937f100915 Eliminate platformError type (#724)
Just use a uint32_t directly.
2025-02-23 01:33:32 -05:00
915d5ce41a Move raw mode enabling to platform input (#723) 2025-02-23 06:10:14 +00:00
b01374be9e Relocate some C directories (#722) 2025-02-23 05:53:19 +00:00
7953fc1605 Remove unused C function type (#716) 2025-02-21 17:08:25 +00:00
1f78d959ce Query for Kitty underline support (#715) 2025-02-20 15:29:29 +00:00
5a2a78d87d Widen test bound to avoid flakiness (#708) 2025-02-18 18:46:32 +00:00
82bd8277e8 Add more capability detection to startup (#702)
Kitty notification and pointer shape.
2025-02-18 05:29:37 +00:00
cc31d49df5 Switch to our own terminal library (#695)
* Switch to our own terminal library

This handles raw mode, VT parsing, and other system integration.

* Docs needs native libraries now

* API dump

* More test hacks

* Formatting
2025-02-14 14:44:52 -05:00
1d65c33cf0 Remove unused kotlinx.io dependency (#693) 2025-02-14 18:06:41 +00:00
968d2fe4c5 Parse terminal ID(?) from primary device attributes (#690)
I have no idea if this is called an "ID", but the docs omit a name. This is needed to determine during capability querying whether we can issue more complex queries or at the dumbest of dumb terminals (read: Terminal.app on macOS).
2025-02-12 05:51:56 +00:00
17c2369efd Add API for synchronosly fetching the current terminal size (#688) 2025-02-10 10:32:36 -05:00
5273d666f9 Enable ENABLE_VIRTUAL_TERMINAL_INPUT on Windows (#685)
This ensures things like Ctrl+C work correctly today.
2025-02-07 13:57:42 -05:00
5ece0808b3 Parse tertiary DA for kicks (#684) 2025-02-07 12:04:19 -05:00
d32e42be0e Add platform resize events (#683) 2025-02-06 15:57:53 -05:00
fc452ebadb Native naming pass (#676) 2025-02-03 12:26:27 -05:00
9e614052f3 Produce debug events for platform integration (#675) 2025-02-03 11:33:17 -05:00
af068d4ad7 Loop to ensure all records written (#674) 2025-02-01 19:25:51 +00:00