1315 Commits

Author SHA1 Message Date
Mitchell Hashimoto
c28470e98a terminal: DCS parses params correctly 2024-07-11 18:29:14 -07:00
Mitchell Hashimoto
54034468b7 terminal: remove errdefer deleted call for refcountedset 2024-07-09 09:07:28 -07:00
Qwerasd
8589f2c0fb terminal/PageList: rework reflow logic to fix issues
Reflow logic now lives inside of ReflowCursor. This fixes multiple
issues with the previous implementation, and is more straightforward
in how it works. The old impl resulted in fragmentation of pages,
leading to unbounded memory growth when resizing repeatedly.

Also improves the preserved_cursor logic in `resizeCols`.
2024-07-08 22:35:15 -04:00
Qwerasd
10dbca9464 terminal/PageList: fix some incorrect test expectations 2024-07-08 22:29:55 -04:00
Qwerasd
be99e50c50 terminal/PageList: add method for logging debug diagrams 2024-07-08 22:28:16 -04:00
Qwerasd
6f1a2d1e8e terminal/Screen: fix trailing blank cell handling for wrapped rows in dumpString 2024-07-08 22:26:36 -04:00
Qwerasd
730185b212 terminal: spacer heads and tails should be codepoint 0, not ' ' 2024-07-08 22:25:39 -04:00
Qwerasd
0cee115ba3 terminal/page: use addWithIdContext when cloning hyperlink data 2024-07-08 22:22:18 -04:00
Qwerasd
29e6dcdee5 terminal/page: add methods to get hyperlink and grapheme map capacities 2024-07-08 22:20:31 -04:00
Qwerasd
11c8bdc00e BitmapAllocator: slightly improve findFreeChunks mask calculation 2024-07-08 22:17:56 -04:00
Qwerasd
a9aef11b4b RefCountedSet: add some missing context delete callbacks 2024-07-08 22:15:31 -04:00
Mitchell Hashimoto
4a861a8c8f terminal: hyperlink capacity adjustment needs to call safe variant 2024-07-06 08:47:22 -07:00
Mitchell Hashimoto
d79bbaac68 terminal: adjustCapacity handles hyperlink state 2024-07-05 21:44:30 -07:00
Mitchell Hashimoto
251ec0c9f3 terminal: on print, adjust page size if we need to grow for hyperlinks 2024-07-05 21:40:40 -07:00
Mitchell Hashimoto
a6051b931e terminal: disable zombie styles integrity check 2024-07-05 21:40:40 -07:00
Mitchell Hashimoto
4f099af76f terminal: set hyperlink state on clone 2024-07-05 21:40:40 -07:00
Mitchell Hashimoto
cdb838ea85 terminal: pause integrity checks on resize for hyperlink set 2024-07-05 21:40:40 -07:00
Mitchell Hashimoto
eed9c23acd terminal: RefCountedSet checks for existence prior to cap check 2024-07-05 21:40:39 -07:00
Mitchell Hashimoto
b0f99307d3 terminal: pause integrity checks in clone row until done 2024-07-05 21:40:39 -07:00
Mitchell Hashimoto
ff9ab70091 terminal: end hyperlink state when switching screens 2024-07-05 21:40:39 -07:00
Mitchell Hashimoto
8b02d3430c terminal: copy hyperlinks on reflow 2024-07-05 21:40:39 -07:00
Mitchell Hashimoto
925ad5b45c renderer: match multiple lines for osc8 2024-07-05 21:40:39 -07:00
Mitchell Hashimoto
041c779512 renderer: matchSet matches OSC8 2024-07-05 21:40:39 -07:00
Mitchell Hashimoto
f777e42af2 terminal: page clone needs to clone strings 2024-07-05 21:40:39 -07:00
Mitchell Hashimoto
961a4b6b31 terminal: support page oom with hyperlinks 2024-07-05 21:40:39 -07:00
Mitchell Hashimoto
d7e089e2aa terminal: simplify hyperlink capacity 2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
365567b3c6 terminal: increase std cap for now until we implement resize 2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
245314b14e termio: hook up OSC8 2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
f920068ce6 terminal: full reset clears OSC8 state 2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
d9e654da4a terminal: scrollUp hyperlink tests 2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
84edaed690 terminal: scrollDown with hyperlinks 2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
bac1307c4b terminal: index hyperlink tests 2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
96ff17a9b4 terminal: save/restore cursor doesn't modify hyperlink state 2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
57c5522a6b terminal: handle moving/swapping/clearing cells with hyperlinks 2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
e2133cbd92 terminal: row needs hyperlink state, test clearing hyperlink 2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
a3a445a066 terminal: print sets hyperlink state, tests 2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
6fc9e92dba terminal: hyperlink deleted callback frees string memory 2024-07-05 21:40:37 -07:00
Mitchell Hashimoto
c880bb6f45 terminal: test hyperlink reuse shares ID 2024-07-05 21:40:37 -07:00
Mitchell Hashimoto
548850e453 terminal: RefCountedSet should call deleted on upsert 2024-07-05 21:39:56 -07:00
Mitchell Hashimoto
d1f41e2035 terminal: hyperlink start/end on screen 2024-07-05 21:39:55 -07:00
Mitchell Hashimoto
51c05aeb99 terminal: RefCountedSet doesn't need to pass base anymore 2024-07-05 21:39:07 -07:00
Mitchell Hashimoto
2e41afc787 terminal: RefCountedSet has Context variant methods 2024-07-05 21:39:07 -07:00
Mitchell Hashimoto
cb1caff018 terminal: refcountedset passes base memory to all context funcs
This enables these funcs to access memory offsets that may be present in
set items, which is possible since the set itself is in an offset-based
structure.
2024-07-05 21:39:07 -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
Mitchell Hashimoto
6c7b7843e9 terminal: additional parse test cases 2024-07-05 21:39:07 -07:00
Mitchell Hashimoto
f8e74a563a terminal: parse osc8 end 2024-07-05 21:39:07 -07:00