1326 Commits

Author SHA1 Message Date
Mitchell Hashimoto
df088c67f4 terminal/tmux: block output notifications 2024-07-12 14:04:56 -07:00
Mitchell Hashimoto
057dc32c71 terminal/tmux: many more notifications 2024-07-12 11:57:37 -07:00
Mitchell Hashimoto
bc7bc15120 terminal/tmux: parse session-changed notification 2024-07-12 10:22:59 -07:00
Mitchell Hashimoto
8c3559ecff terminal: move tmux control mode parsing out to dedicated file 2024-07-12 09:49:59 -07:00
Mitchell Hashimoto
1ea25c5c64 terminal: tmux parsing handles begin/end blocks 2024-07-11 20:53:50 -07:00
Mitchell Hashimoto
f4db5009d6 terminal: dcs state cleanup in deinit 2024-07-11 19:09:55 -07:00
Mitchell Hashimoto
88d055452b terminal: tmux enter/exit 2024-07-11 19:02:33 -07:00
Mitchell Hashimoto
ff43609097 terminal: boilerplate for tmux control mode parsing 2024-07-11 18:58:25 -07:00
Mitchell Hashimoto
f375bf009c terminal: all DCS events can produce a command 2024-07-11 18:53:42 -07:00
Mitchell Hashimoto
01e1538ad3 terminal: dcs put can return a command 2024-07-11 18:42:22 -07:00
Mitchell Hashimoto
38d33a761b terminal: test DCS to make sure we don't regress 2024-07-11 18:34:05 -07:00
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