Commit graph

297 commits

Author SHA1 Message Date
Tim Culverhouse
6043f0569a widgets(terminal): remove error logs
And use a buffered writer in the example
2024-06-18 18:41:48 -05:00
CJ van den Berg
3a0392c282 tty(windows): fix mouse wheel direction calculation 2024-06-13 05:59:11 -07:00
Tim Culverhouse
36696e8785 tty(windows): parse mouse events 2024-06-13 07:16:46 -05:00
CJ van den Berg
790dbaae24 build: allow building on freebsd 2024-06-13 04:17:45 -07:00
Tim Culverhouse
f230f0c30a widgets(terminal): send a redraw event 2024-06-12 19:29:19 -05:00
Tim Culverhouse
8f4ca5b830 tty(windows): enable_extended_flags
Note: we still need to parse the events.
2024-06-12 11:15:16 -05:00
Tim Culverhouse
cea5798db9 widgets(terminal): ensure only one sigchild handler installed 2024-06-12 06:36:07 -05:00
Tim Culverhouse
46e7fd8fc6 widgets: remove neovim widget
The neovim widget was great. But we have a full virtual terminal widget
now, which doesn't bring in extra dependencies.
2024-06-11 20:35:10 -05:00
Tim Culverhouse
6d4c180e31 widgets(terminal): implement legacy key encoding 2024-06-11 14:00:37 -05:00
Tim Culverhouse
37b0d5c69d widgets(terminal): read full codepoints
Only read full codepoints. Some programs will split codepoints between
reads, which can mess with our parser (looking at you, btop)
2024-06-11 13:59:07 -05:00
Tim Culverhouse
eeb69f012a widgets(terminal): fix cursor showing 2024-06-11 10:28:07 -05:00
Tim Culverhouse
05f52ed4ee widgets(terminal): implement escapes, fix scrollDown 2024-06-11 10:27:18 -05:00
Tim Culverhouse
b688732f56 widgets(terminal): use buffered reader in parser
Use a buffered reader so we can inspect the read state. We need this to
know if we have a finished read on a printable byte
2024-06-10 15:07:04 -05:00
Tim Culverhouse
9f2af4d5ee widgets(terminal): implement even more csi sequences 2024-06-10 14:18:55 -05:00
Tim Culverhouse
e4005253d2 widgets(terminal): fix eraseLeft 2024-06-10 14:18:32 -05:00
Tim Culverhouse
0cd57fe0f5 widgets(terminal): implement many more CSI seqs 2024-06-10 14:18:32 -05:00
Tim Culverhouse
24ad3bf3da widgets(terminal): handle erase in display 2024-06-10 14:18:32 -05:00
Tim Culverhouse
c14a100eed widgets(terminal): handle horizontal tabs 2024-06-10 14:18:32 -05:00
Tim Culverhouse
1c5ecae8f0 widgets(terminal): implement CNL 2024-06-10 14:18:32 -05:00
Tim Culverhouse
99ff37840d widgets(terminal): refactor CUD and CR 2024-06-10 14:18:32 -05:00
Tim Culverhouse
2f2e38eea5 widgets(terminal): set global_vts to null on last exit 2024-06-10 14:18:32 -05:00
Tim Culverhouse
044b099227 widgets(terminal): handle scrolling_region in CUU, CUD 2024-06-10 14:18:32 -05:00
Tim Culverhouse
11ae2e7b29 widgets(terminal): prevent deadlock in draw
The draw method could obtain a lock but never free it due to the logic
of the if statement.
2024-06-10 14:18:32 -05:00
Tim Culverhouse
3a382eacdb widgets(terminal): fix overflow in CUP 2024-06-10 14:18:32 -05:00
Tim Culverhouse
aa9e492b26 widgets(terminal): simplify cursorLeft logic 2024-06-10 14:18:32 -05:00
Tim Culverhouse
cc77c98d32 widgets(terminal): implement CSI D 2024-06-10 14:18:32 -05:00
Tim Culverhouse
d991755fe2 widgets(terminal): handle exiting events 2024-06-10 14:18:32 -05:00
Tim Culverhouse
ef62de5541 widgets(terminal): dirty handling, cursor up, cursor shapes 2024-06-10 14:18:32 -05:00
Tim Culverhouse
c52bb30cdc widgets(terminal): remove comment about default 2024-06-10 14:18:32 -05:00
Tim Culverhouse
3765dbef2b widgets(terminal): handle (some) wrapping 2024-06-10 14:18:32 -05:00
Tim Culverhouse
7a7f4892d7 widgets(terminal): simple key encoding, alt screen 2024-06-10 14:18:32 -05:00
Tim Culverhouse
78508b76bd widgets(terminal): improve logging 2024-06-10 14:18:32 -05:00
Tim Culverhouse
d36be9048c widgets(terminal): allow for always joining thread
Write an EOT into the tty stream so after killing the process we
*always* are able to join the thread. Maybe this is the very reason the
EOT control byte exists?
2024-06-10 14:18:32 -05:00
Tim Culverhouse
f9d2fc7532 widgets(terminal): append last byte to escape seqs 2024-06-10 14:18:32 -05:00
Tim Culverhouse
987f939bd8 widgets(terminal): support cursor mode 2024-06-10 14:18:32 -05:00
Tim Culverhouse
36854123fe widgets(terminal): use types for c0 and csi 2024-06-10 14:18:32 -05:00
Tim Culverhouse
ecb2ea20e4 widgets(terminal): more c0 control impls 2024-06-10 14:18:32 -05:00
Tim Culverhouse
3ff47e6845 widgets(terminal): remove comment 2024-06-10 14:18:32 -05:00
Tim Culverhouse
f21559cc51 widgets(terminal): begin terminal widget 2024-06-10 14:18:32 -05:00
Tim Culverhouse
f76b573a0b parser: fix remaining decrpm test
This test was passing because it's not meant to find the event. However
it was still using the wrong input
2024-06-10 14:17:48 -05:00
Tim Culverhouse
9c5e8898cd parser: fix parsing of DECRPM and tests
We were looking for the wrong sequence
2024-06-10 14:00:51 -05:00
CJ van den Berg
a69cf3273d build: export some symbols for thespian.Loop 2024-06-10 04:43:43 -07:00
Rylee Lyman
e2c19c3c8f fix: update to zig 0.13, broken test 2024-06-09 04:53:58 -07:00
Jari Vetoniemi
9bbcebb7bc ScrollView: do scroll bounds checking early
The ScrollView will panic if scroll.y is given a number that is outside
the content size.
2024-06-08 19:45:22 -07:00
Tim Culverhouse
0cb81e30eb parser: fix handling of function keys with kitty encoding 2024-06-05 12:52:49 -05:00
Tim Culverhouse
91152eecdf parser: remove log line 2024-06-05 11:56:08 -05:00
Tim Culverhouse
43a714de0c parser: fix query responses for kitty kbd, decrpm 2024-06-05 11:49:03 -05:00
CJ van den Berg
d21940bdbd build: make most dependencies optional 2024-06-05 07:31:46 -07:00
Tim Culverhouse
e8670bd585 tty(windows): refactor and complete windows tty
Refactor the tty implementations. Complete the windows implementation
2024-06-05 06:31:18 -07:00
Jari Vetoniemi
54def846bf TextView: add Error to buffer operations
Typed error sets are nice to have.
2024-06-04 12:07:25 -07:00