44 Commits

Author SHA1 Message Date
Mitchell Hashimoto
a3a445a066 terminal: print sets hyperlink state, tests 2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
2a7755c515 terminal: hyperlink data structures beginning, alloc into page 2024-07-05 21:39:07 -07:00
Mitchell Hashimoto
a71b487d58 terminal: add strings table to page 2024-07-05 21:39:07 -07:00
Mitchell Hashimoto
69705cbced terminal: remove the hyperlink stuff i'm starting over 2024-07-05 21:39:07 -07:00
Mitchell Hashimoto
75e1655228 terminal: change default hyperlink count to zero 2024-07-05 21:39:07 -07:00
Mitchell Hashimoto
25d1e861ec terminal: page memory layout for uri/hyperlink data 2024-07-05 21:39:07 -07:00
Qwerasd
93b038f490 fix(RefCountedSet): add NeedsRehash error and fix PSL counting bug
Prevent bad input from causing repeated OutOfMemory errors by erroring
with NeedsRehash instead when there are unused dead IDs available.

Additionally, properly decrement PSL stats when reviving dead IDs.
2024-06-24 20:32:22 -07:00
Qwerasd
35793ee7cc page integrity checks: detect zombie styles 2024-06-24 20:32:22 -07:00
Qwerasd
6f732cca55 RefCountedSet: use usize for cap to allow up to max Id+1 2024-06-24 20:32:22 -07:00
Mitchell Hashimoto
eebc7d4c3a small stylistic changes 2024-06-23 09:44:54 -07:00
Qwerasd
9741b3a18c perf: introduce RefCountedSet structure, use it for Style.Set 2024-06-13 22:59:03 -04:00
Mitchell Hashimoto
7e52f94278 terminal: on clone, only mark rows dirty that were previously dirty 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
d47f14f86a terminal: dirty tracking on screen clone 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
11c195e493 terminal: dirty tracking on print with tests 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
7b750b7ed9 terminal: add dirty bits to the page structure 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
1f09da02ad terminal: relax cell zero value default test 2024-04-18 14:09:11 -07:00
Mitchell Hashimoto
9ea78f981e terminal: index (LF) that scrolls scroll region preserves SGR
Fixes #1676

The comment in the diff explains. This is a regression that was not unit
tested properly in the old implementation prior to the paged-terminal
merge.
2024-04-13 21:31:41 -07:00
Mitchell Hashimoto
eb2a2e3931 fmt 2024-04-02 08:38:51 -07:00
Qwerasd
d17344b855 perf(terminal/page): @memset micro-optimization 2024-03-26 12:07:35 -06:00
Mitchell Hashimoto
fcc0ea0c7c terminal: explicit error set for page clone 2024-03-25 20:10:03 -07:00
Mitchell Hashimoto
e337ebe131 terminal: add clonePartialRowFrom 2024-03-25 20:01:28 -07:00
Mitchell Hashimoto
9ee0b23ef7 terminal: clear spacer heads on growing cols w/o reflow 2024-03-25 09:42:05 -07:00
Mitchell Hashimoto
33ede13072 terminal: fix release builds 2024-03-24 21:28:30 -07:00
Mitchell Hashimoto
db3ab4b0c8 terminal: pause page integrity can be nested 2024-03-24 20:57:35 -07:00
Mitchell Hashimoto
36240b897c terminal: many more assertions around spacer state 2024-03-24 20:27:47 -07:00
Mitchell Hashimoto
f719999950 terminal: add assertion to page integrity that row/col count > 0 2024-03-24 14:46:43 -07:00
Mitchell Hashimoto
eb6536f4a7 address latest zig changes 2024-03-22 20:29:45 -07:00
Mitchell Hashimoto
ee5be26511 terminal: prevent false positive integrity check 2024-03-22 20:28:23 -07:00
Mitchell Hashimoto
0bc831d19f terminal: relax grapheme integrity check for fast paths 2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
40cac97c86 terminal: insertChars/deleteChars needs to account properly 2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
4c35f35904 terminal: get rid of some verifications, comment why 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
1649641d18 terminal: add some integrity assertions 2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
1be06e8f3f terminal: add page.verifyIntegrity function 2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
8142eb9678 terminal: moveCell handles graphemes, clears source 2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
06d944c292 terminal: cloneFrom clears destination 2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
5e1f8b6cc4 terminal: insertLines/deleteLines handle split across pages 2024-03-22 20:28:12 -07:00
Qwerasd
869b6b18e8 terminal/page: improve capacity adjust cols tests 2024-03-22 20:28:05 -07:00
Qwerasd
9630c39ea4 terminal/page: improved capacity adjust logic 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
1c4fb96e49 terminal: fix page size calculations on Linux 2024-03-22 20:28:00 -07:00
Mitchell Hashimoto
3191081ea6 terminal: page.cloneFrom graphemes 2024-03-22 20:27:59 -07:00
Mitchell Hashimoto
c61de49082 renderer/metal: port 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