2bb8b2d4e8
Remove float cast ( #900 )
2025-06-07 20:54:12 -04:00
8d688fa304
Add module-info files ( #886 )
2025-05-15 03:55:54 +00:00
17af3ead14
Renderers now take Terminal.Capabilities directly ( #856 )
2025-04-11 03:14:38 +00:00
07f150d9a6
Move terminal binding and policy behavior to helper ( #855 )
2025-04-11 02:28:23 +00:00
5df5e316c9
Rename terminal.kt to TerminalState.kt to reflect its content ( #854 )
2025-04-11 02:08:16 +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
e45021fc1f
Check underline when decided to emit a reset ( #831 )
2025-03-25 19:07:30 +00:00
4b40ca742a
Expose terminal name ( #828 )
2025-03-25 16:22:46 +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
cbcdc3487a
Always go raw, but add a policy to skip TTY binding ( #814 )
2025-03-20 23:42:16 -04: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
545aba57bf
Bring back Kitty underlines! ( #806 )
...
The difference in UnderlineStyle as opposed to Color and TextStyle was that it had a private constructor. Changing that to internal like the others avoids the compiler bug.
2025-03-18 16:49:55 +00:00
bedc15ea34
Remove pointless inline ( #804 )
2025-03-17 16:44:35 +00:00
e82432b11f
Hide Kitty underline APIs which indirectly break native ( #803 )
...
Also disable partial linkage which hid this problem for two weeks.
2025-03-17 14:50:44 +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
ad9a59223f
Add Tty.reset API ( #789 )
...
Allows reusing the bound Tty after useAsTerminal, or to just skip freeing resources if the process is exiting.
2025-03-13 15:42:37 -04:00
0350c20416
Rename terminal state aggregate type to avoid conflict ( #788 )
2025-03-13 18:28:45 +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
8cee1568ae
Move static to root package ( #778 )
...
It no longer depends on UI things.
2025-03-07 14:26:49 +00:00
c38c09d8bc
Create new static logging system ( #777 )
...
`Static` function is now called `StaticEffect` to better indicate that it only renders its content once.
`LocalStaticLogger` composition local provides access to `StaticLogger` which allows logging plain strings at arbitrary points for inclusion in the next frame. This can be used from effects, callback, state classes, etc.
2025-03-07 00:56:46 -05:00
667921777c
Inline a single-use private function ( #775 )
...
Also reference the clock directly instead of needing to look it up from the coroutine context.
2025-03-07 04:04:20 +00:00
3fca635464
Remove trailing spaces when drawing canvas content ( #439 )
2025-03-04 04:38:24 +00:00
d26b4e7b3c
Remove redundant parenthesis ( #766 )
...
An excellent change. Top notch.
2025-03-03 14:40:15 +00:00
8957294eff
Add support for Kitty underlines ( #765 )
2025-03-02 06:47:20 -05:00
e0510403d3
Remove renderMosaic ( #762 )
2025-03-01 04:27:22 +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
9e6127b4e6
Remove errant newline left in ( #746 )
...
Move it and the bootstrap logging behind a constant boolean.
2025-02-26 04:38:00 +00:00
f039345ce4
Remove dedicated test-only path with different responsibility split ( #745 )
2025-02-26 04:16:52 +00:00
1d6a300bb8
Upgrade to Kotlin 2.1.20-RC ( #734 )
...
Use the new application plugin replacement.
2025-02-24 17:02:18 +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
915d5ce41a
Move raw mode enabling to platform input ( #723 )
2025-02-23 06:10:14 +00:00
1f78d959ce
Query for Kitty underline support ( #715 )
2025-02-20 15:29:29 +00:00
c7e1a32710
Enable debug rendering at runtime ( #714 )
...
Set MOSAIC_DEBUG_RENDERING=true env var.
2025-02-20 02:58:39 +00:00
a12a2d928e
Do not emit ANSI reset when level is none ( #712 )
2025-02-19 20:10:35 +00:00
d601be5e6a
Perform rudimentary ansi color level detection ( #711 )
...
There is a lot to add here, but this gets us off the ground.
2025-02-19 00:51:01 -05:00
de15cc8699
Map all the keys on my keyboard ( #710 )
...
After this I cannot get it to crash.
2025-02-19 03:30:18 +00:00
e56a6f3847
Clear line before rendering to avoid deleting final character ( #706 )
...
When a row writes into the last column, the cursor stays in that position. Clearing the remaining line from that position has the potential to delete the final character. Instead, clear the line before rendering it. This may cause partial row flickering for terminals which do not support synchronized rendering, but that's an okay trade-off.
Additionally, use more efficient ANSI to move the cursor up and to clear the remaining lines.
2025-02-18 18:21:29 +00:00
82bd8277e8
Add more capability detection to startup ( #702 )
...
Kitty notification and pointer shape.
2025-02-18 05:29:37 +00:00
fd2b22e562
Run startup bootstrap in the main event loop ( #700 )
2025-02-16 13:32:11 +00:00
fb6846061f
Correct range for function keys ( #699 )
2025-02-15 15:47:37 -05:00
93cccf14ff
Add focus and theme to Terminal, make cursor and sync conditional ( #696 )
2025-02-15 14:50:17 -05: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
26765723a2
Drop Jansi, use Mordant for output ( #692 )
2025-02-14 15:37:13 +00:00
12ffc47444
Inject keys and terminal state into Mosaic ( #691 )
2025-02-13 16:23:23 -05:00
3b8a8aa718
Use our own env var lookup ( #686 )
...
Reducing Mordant reliance in preparation to switch to our own raw mode mechanism.
2025-02-07 21:28:35 +00:00
5e9d382466
Put a delay in LaunchedEffect test ( #680 )
2025-02-05 08:17:05 -05:00