Qwerasd
925c7e86a2
fix(terminal): insert/deleteLines boundary cond.s
...
Introduced a helper function for correctly handling boundary conditions
in insertLines and deleteLines. Also adds a whole host of tests for said
conditions in deleteLines, tests not duplicated for insertLines because
they both use the same helper function.
2024-03-29 16:29:27 -04:00
Qwerasd
e55f2daf90
perf(terminal): clear unprotected cells in spans
...
Previous behavior of clearing one at a time hit a page integrity assertion after clearing a wide character but not its tail. This fixes that and should also be - in theory - significantly more performant as well by identifying spans of unprotected cells and clearing them in bulk.
2024-03-29 13:08:38 -04:00
Mitchell Hashimoto
dce96847a9
terminal: test eraseRowBounded, fix off by ones
2024-03-27 20:23:45 -07:00
Mitchell Hashimoto
8d4f454e30
terminal: add integrity assertion that cursor pin matches x/y
2024-03-27 13:42:11 -07:00
Qwerasd
0a6ef3fda4
wip(terminal): Fast path for scroll regions
2024-03-26 12:07:35 -06:00
Mitchell Hashimoto
36240b897c
terminal: many more assertions around spacer state
2024-03-24 20:27:47 -07:00
Mitchell Hashimoto
9685a56941
terminal: clear unprotected row should preserve row attrs
2024-03-22 20:28:23 -07:00
Mitchell Hashimoto
cd30534808
terminal: no scrollback eraseRows needs to fix style
2024-03-22 20:28:23 -07:00
Mitchell Hashimoto
65696c9900
terminal: clearcells only decs cursor ref if same page
2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
3b6ae6807c
terminal: add more integrity assertions
2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
731f917350
terminal: add Screen integrity checks, pepper them through cursors
2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
1649641d18
terminal: add some integrity assertions
2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
3513b1cdc2
terminal: properly clear style in error scenario
2024-03-22 20:28:18 -07:00
Mitchell Hashimoto
91602a4ce7
terminal: Screen scroll test and handle single row screens
2024-03-22 20:28:15 -07:00
Mitchell Hashimoto
9e42ee0dc9
terminal: all cursorReload scenarios should check style data
2024-03-22 20:28:13 -07:00
Mitchell Hashimoto
f67b95136d
terminal: in all cursor move cases, we need to account for page changes
2024-03-22 20:28:13 -07:00
Mitchell Hashimoto
77362d9aa7
terminal: resize should preserve cursor style ref
2024-03-22 20:28:13 -07:00
Mitchell Hashimoto
a40899fa3c
terminal: only reload style if we're on a new page on scroll
2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
631fdf00a8
terminal: style needs to be copied to new page on scroll
2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
1c57bbabda
termio/exec: clear screen should erase rows and shift up
2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
f0e3516c34
terminal: fix off-by-one tracked pin issues when page is pruned
2024-03-22 20:28:06 -07:00
Mitchell Hashimoto
1ac0980ea0
terminal: pruned pages should keep tracked pins in top-left
2024-03-22 20:28:06 -07:00
Mitchell Hashimoto
d664840b7f
terminal: add StringMap back
2024-03-22 20:28:05 -07:00
Mitchell Hashimoto
bca51ee771
terminal: selectionString takes a struct for opts
2024-03-22 20:28:05 -07:00
Mitchell Hashimoto
e18a77739c
terminal: screen lineIterator
2024-03-22 20:28:05 -07:00
Mitchell Hashimoto
f4fa54984c
terminal: selectLine can disable whitespace/sem prompt splitting
2024-03-22 20:28:05 -07:00
Mitchell Hashimoto
a59d4286c7
terminal: adjust page capacity for graphemes if necessary
2024-03-22 20:28:04 -07:00
Mitchell Hashimoto
935063d892
core: scroll to selection working
2024-03-22 20:28:01 -07:00
Mitchell Hashimoto
7ae9b0c469
terminal: screen clone that doesn't have sel should set null sel
2024-03-22 20:28:01 -07:00
Mitchell Hashimoto
9351cab038
terminal: Screen clone should preserve selection order
2024-03-22 20:28:01 -07:00
Mitchell Hashimoto
44d320a23e
terminal: selectionString should use proper ordered
2024-03-22 20:28:01 -07:00
Mitchell Hashimoto
992c736986
terminal: dumpScreen handles wrap
2024-03-22 20:28:00 -07:00
Mitchell Hashimoto
5813304358
terminal: dumpString options
2024-03-22 20:28:00 -07:00
Mitchell Hashimoto
0a6735d05d
terminal: jump to prompt
2024-03-22 20:28:00 -07:00
Mitchell Hashimoto
65909df9f9
terminal: commented log line to see active style count
2024-03-22 20:27:59 -07:00
Mitchell Hashimoto
dc04cc1317
terminal: handle style ID overflow
2024-03-22 20:27:59 -07:00
Mitchell Hashimoto
5e68bc60e0
terminal: resize page on unique style per cell
2024-03-22 20:27:59 -07:00
Mitchell Hashimoto
4d0f210025
core: double-click drag
2024-03-22 20:27:56 -07:00
Mitchell Hashimoto
48d40793e7
terminal: bring back clearPromptForResize, with tests!
2024-03-22 20:27:55 -07:00
Mitchell Hashimoto
ba4f2eeee2
terminal: Screen.clone preserves selection
2024-03-22 20:27:52 -07:00
Mitchell Hashimoto
ef6bb1de64
terminal: Screen clone preserves cursor
2024-03-22 20:27:52 -07:00
Mitchell Hashimoto
45c38c6d8b
terminal: clone uses opts struct
2024-03-22 20:27:52 -07:00
Mitchell Hashimoto
fdbda5365e
terminal: do not set selection manually
2024-03-22 20:27:51 -07:00
Mitchell Hashimoto
3154686f9e
terminal: proper cursor copy for alt screen
2024-03-22 20:27:48 -07:00
Mitchell Hashimoto
c61de49082
renderer/metal: port
2024-03-22 20:27:44 -07:00
Mitchell Hashimoto
d5236bc724
terminal: more selection tests
2024-03-22 20:27:44 -07:00
Mitchell Hashimoto
33e59707e2
terminal: Screen can hold selection
2024-03-22 20:27:44 -07:00
Mitchell Hashimoto
9b4ab0e209
zig build test with renamed terminal package
2024-03-22 20:27:44 -07:00
Mitchell Hashimoto
7fd85bd177
terminal2: resize cols blank row preservation
2024-03-22 20:27:40 -07:00
Mitchell Hashimoto
0b2b56506a
terminal2: selectionString with rect
2024-03-22 20:27:40 -07:00