Mitchell Hashimoto
f02a2d5eed
terminal/tmux: capture pane
2025-12-09 09:25:55 -08:00
Mitchell Hashimoto
766c306e04
terminal/tmux: pane history
2025-12-08 20:15:20 -08:00
Mitchell Hashimoto
ea09d257a1
terminal/tmux: initialize panes
2025-12-08 11:54:48 -08:00
Mitchell Hashimoto
86cd489701
terminal/tmux: introduce command queue for viewer
2025-12-08 09:00:38 -08:00
Mitchell Hashimoto
ec5a60a119
terminal/tmux: make sure we always have space for one action
2025-12-08 07:27:37 -08:00
Mitchell Hashimoto
b26c42f4a6
terminal/tmux: better formatting for notifications and actions
2025-12-08 07:00:44 -08:00
Mitchell Hashimoto
3cbc232e31
terminal/tmux: return allocated list of actions
2025-12-08 07:00:43 -08:00
Mitchell Hashimoto
c1d686534e
terminal/tmux: list windows
2025-12-08 07:00:43 -08:00
Mitchell Hashimoto
4c3ef8fa13
terminal/tmux: viewer list windows state
2025-12-08 07:00:43 -08:00
Mitchell Hashimoto
0d75a78747
terminal/tmux: start viewer state machine
2025-12-08 07:00:43 -08:00
Mitchell Hashimoto
af3a11b546
terminal/tmux: output has format/comptimeFormat
2025-12-08 07:00:43 -08:00
Mitchell Hashimoto
6b21b9147c
terminal/tmux: add output format parsing (minimal)
2025-12-03 20:23:28 -08:00
Mitchell Hashimoto
b95965cb5a
terminal/tmux: add layout-change to control mode parsing
2025-12-03 13:27:37 -08:00
Mitchell Hashimoto
92ea8d0eb5
terminal/tmux: layout checksums
2025-12-03 13:27:37 -08:00
Mitchell Hashimoto
dfa22379b2
terminal/tmux: layout string parser
2025-12-03 13:27:37 -08:00
Mitchell Hashimoto
7a9dc77a94
terminal/tmux: clean up error handling, explicit error sets
2025-12-03 13:27:36 -08:00
Mitchell Hashimoto
6e016ea81e
terminal: move tmux into folder
2025-12-03 13:27:36 -08:00
Mitchell Hashimoto
5bc78d59fb
terminal/tmux: add more control mode parsing keys
2025-12-03 13:27:36 -08:00
Mitchell Hashimoto
4fef41bc83
terminal: renderstate needs to reset highlights on dirty ( #9759 )
...
This fixes memory corruption where future matches on a fully dirty row
would write highlights out of bounds. It was easy to reproduce in debug
by searching for `$` in `ghostty +boo`
2025-11-30 07:22:54 -08:00
Tim Culverhouse
a58e33c06b
PageList: preserve size.cols in adjustCapacity after column shrink
...
When columns shrink during resize-without-reflow, page.size.cols is
updated but page.capacity.cols retains the old larger value. When
adjustCapacity later runs (e.g., to expand style/grapheme storage),
it was creating a new page using page.capacity which has the stale
column count, causing size.cols to revert to the old value.
This caused a crash in render.zig where an assertion checks that
page.size.cols matches PageList.cols.
Fix by explicitly copying page.size.cols to the new page after
creation, matching how size.rows is already handled.
Amp-Thread-ID: https://ampcode.com/threads/T-976bc49a-7bfd-40bd-bbbb-38f66fc925ff
Co-authored-by: Amp <amp@ampcode.com >
2025-11-30 07:20:54 -08:00
Mitchell Hashimoto
d7087627d7
terminal: renderstate needs to reset highlights on dirty
...
This fixes memory corruption where future matches on a fully dirty row
would write highlights out of bounds. It was easy to reproduce in debug
by searching for `$` in `ghostty +boo`
2025-11-30 07:18:42 -08:00
Mitchell Hashimoto
10f19ebdc3
search: handle soft-wrapped lines in sliding window properly
...
Fixes #9752
2025-11-29 07:32:06 -08:00
Mitchell Hashimoto
dbfc3eb679
Remove unused imports
2025-11-27 13:37:53 -08:00
Mitchell Hashimoto
842becbcaf
terminal: PageList search should halt when pin becomes garbage
...
This means that the pin we're using to track our position in the
PageList was part of a node that got reused/recycled at some point. We
can't make any meaningful guarantees about the state of the PageList.
This only happens with scrollback pruning so we can treat it as a
complete search.
2025-11-26 16:36:44 -08:00
Mitchell Hashimoto
b96b55ebde
terminal: RenderState must consider first row in dirty page dirty
2025-11-26 13:20:16 -08:00
Mitchell Hashimoto
d85fc62774
search: reset selected match when the needle changes
2025-11-26 10:04:28 -08:00
Mitchell Hashimoto
f91080a165
terminal: fix single-character search crashes
2025-11-26 08:50:06 -08:00
Mitchell Hashimoto
f252db1f1c
terminal: handle pruning history for when active area removes it
2025-11-26 08:50:06 -08:00
Mitchell Hashimoto
330ce07d48
terminal: fix moving selection on history changing
2025-11-26 08:50:06 -08:00
Mitchell Hashimoto
48acc90983
terminal: search should reload active area if dirty
2025-11-26 08:50:05 -08:00
Mitchell Hashimoto
72708b8253
search: do not restart search if needle doesn't change
2025-11-26 08:50:04 -08:00
Mitchell Hashimoto
ad8a6e0642
search thread needs to take an allocated needle
2025-11-26 08:50:04 -08:00
Mitchell Hashimoto
9b7753a36f
terminal: ScreenSearch prunes by min serial
2025-11-26 08:46:26 -08:00
Mitchell Hashimoto
30f189d774
terminal: PageList has page_serial_min
2025-11-26 08:41:26 -08:00
Mitchell Hashimoto
e549af76fe
terminal: flattened highlights contain serial numbers for nodes
2025-11-26 08:36:29 -08:00
Mitchell Hashimoto
1786022ac3
terminal: ScreenSearch restarts on resize
2025-11-26 08:31:09 -08:00
Mitchell Hashimoto
8d11335ee4
terminal: PageList stores serial number for page nodes
2025-11-26 08:15:41 -08:00
Mitchell Hashimoto
d0334b7ab6
search: scroll to selected search match
2025-11-25 11:05:38 -08:00
Mitchell Hashimoto
880db9fdd0
renderer: hook up search selection match highlighting
2025-11-25 11:05:38 -08:00
Mitchell Hashimoto
333dd08c97
search: thread dispatches selection notices, messages
2025-11-25 11:05:38 -08:00
Mitchell Hashimoto
a2a771bb6f
search: previous match
2025-11-25 11:05:38 -08:00
Mitchell Hashimoto
c38e098c4c
search: fixup selected search when reloading active area
2025-11-25 11:05:38 -08:00
Mitchell Hashimoto
23479fe409
search: select next search match
2025-11-25 11:05:38 -08:00
Mitchell Hashimoto
08f57ab6d6
search: prune invalid history entries on feed
2025-11-25 11:05:38 -08:00
Mitchell Hashimoto
bb21c3d6b3
search: case-insesitive (ascii) search
2025-11-24 20:25:26 -08:00
Mitchell Hashimoto
a4e40c7567
set proper dirty state to redo viewport search
2025-11-24 19:55:27 -08:00
Mitchell Hashimoto
d0e3a79a74
reset search on needle change or quit
2025-11-24 19:55:27 -08:00
Mitchell Hashimoto
dd9ed531ad
render viewport matches
2025-11-24 19:55:27 -08:00
Mitchell Hashimoto
061d157b50
terminal: search should use active area dirty tracking
2025-11-24 19:55:27 -08:00
Mitchell Hashimoto
72921741e8
terminal: search.viewport supports dirty tracking for more efficient
2025-11-24 19:55:27 -08:00