summaryrefslogtreecommitdiff
path: root/test/snapshots
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-07-26 18:36:08 -0300
committerGabriel Schneider <[email protected]>2026-08-01 15:02:07 -0300
commite381c96a08f08e03a340a24acb3fe5fe1fca51be (patch)
treedb0ef0cc2652d2797b9e2f73709db601816436d1 /test/snapshots
parenta4a2a96d023a5977ae7a7d07c7ee9e4fe38e9c60 (diff)
downloadpardes-e381c96a08f08e03a340a24acb3fe5fe1fca51be.tar.gz
pardes-e381c96a08f08e03a340a24acb3fe5fe1fca51be.zip
adding better search to tty mode
Diffstat (limited to 'test/snapshots')
-rw-r--r--test/snapshots/chordcut.golden4
-rw-r--r--test/snapshots/edit.golden2
-rw-r--r--test/snapshots/exec-bigdrag.golden2
-rw-r--r--test/snapshots/exec.golden2
-rw-r--r--test/snapshots/fsearch.golden118
-rw-r--r--test/snapshots/fsearch.snap13
-rw-r--r--test/snapshots/images.golden2
-rw-r--r--test/snapshots/layout-open.golden2
-rw-r--r--test/snapshots/leader.golden369
-rw-r--r--test/snapshots/leader.snap64
-rw-r--r--test/snapshots/modal.golden6
-rw-r--r--test/snapshots/psearch.golden310
-rw-r--r--test/snapshots/psearch.snap68
-rw-r--r--test/snapshots/rsearch.golden38
-rw-r--r--test/snapshots/rsearch.snap12
-rw-r--r--test/snapshots/shrinktag.golden10
-rw-r--r--test/snapshots/tty.golden62
-rw-r--r--test/snapshots/tty.snap11
-rw-r--r--test/snapshots/ttyedit.golden155
-rw-r--r--test/snapshots/ttyedit.snap45
-rw-r--r--test/snapshots/ttylook.golden2
21 files changed, 1190 insertions, 107 deletions
diff --git a/test/snapshots/chordcut.golden b/test/snapshots/chordcut.golden
index eefc6fa3..d4496d09 100644
--- a/test/snapshots/chordcut.golden
+++ b/test/snapshots/chordcut.golden
@@ -379,8 +379,8 @@
| 4 line 4line
| 5 lline 5
| 6 canon -echo; printf '\x f.txt
-| 7 ne; printf '\x1b[?1000l BOO
-| 8
+| 7 BOO
+|
|
|
|
diff --git a/test/snapshots/edit.golden b/test/snapshots/edit.golden
index 6815dbd6..2d11868f 100644
--- a/test/snapshots/edit.golden
+++ b/test/snapshots/edit.golden
@@ -1,4 +1,4 @@
-== snap inserted grid=100x30 cursor=4,9
+== snap inserted grid=100x30 cursor=16,9
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/edit/cwd Del NOR /tmp/pardes-snap/edit/cwd Del
|
diff --git a/test/snapshots/exec-bigdrag.golden b/test/snapshots/exec-bigdrag.golden
index 5ea48200..19189267 100644
--- a/test/snapshots/exec-bigdrag.golden
+++ b/test/snapshots/exec-bigdrag.golden
@@ -1,4 +1,4 @@
-== snap alive grid=200x60 cursor=104,37
+== snap alive grid=200x60 cursor=119,37
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/exec-bigdrag/cwd Del NOR /tmp/pardes-snap/exec-bigdrag/cwd Del
| bash: line: command not found
diff --git a/test/snapshots/exec.golden b/test/snapshots/exec.golden
index 5f1470c9..00211a42 100644
--- a/test/snapshots/exec.golden
+++ b/test/snapshots/exec.golden
@@ -1,4 +1,4 @@
-== snap exec grid=100x30 cursor=4,7
+== snap exec grid=100x30 cursor=16,7
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/exec/cwd Del NOR /tmp/pardes-snap/exec/cwd Del
|
diff --git a/test/snapshots/fsearch.golden b/test/snapshots/fsearch.golden
index 8a7aabd8..8ea0ffbf 100644
--- a/test/snapshots/fsearch.golden
+++ b/test/snapshots/fsearch.golden
@@ -69,19 +69,19 @@
| 4 l4
| 5 l5
| 6 MARK b g.txt
-| 7 l7 /tmp/pardes-snap/fsearch/cwd/g.txt:2:MARK a
-| 8 l8 /tmp/pardes-snap/fsearch/cwd/g.txt:6:MARK b
-| 9 l9 /tmp/pardes-snap/fsearch/cwd/g.txt:10:MARK c
+| 7 l7
+| 8 l8
+| 9 l9
| 10 MARK c
| 11 l11
| 12 l12
|
|
-| NOR /tmp/pardes-snap/fsearch/cwd Del
-|
-| g.txt
-|
-|
+| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del NOR /tmp/pardes-snap/fsearch/cwd Del
+| 1 /tmp/pardes-snap/fsearch/cwd/g.txt:2:1 MARK a
+| 2 /tmp/pardes-snap/fsearch/cwd/g.txt:6:1 MARK b g.txt
+| 3 /tmp/pardes-snap/fsearch/cwd/g.txt:10:1 MARK c
+| 4
|
|
|
@@ -100,19 +100,19 @@
| 4 l4
| 5 l5
| 6 MARK b g.txt
-| 7 l7 /tmp/pardes-snap/fsearch/cwd/g.txt:2:MARK a
-| 8 l8 /tmp/pardes-snap/fsearch/cwd/g.txt:6:MARK b
-| 9 l9 /tmp/pardes-snap/fsearch/cwd/g.txt:10:MARK c
+| 7 l7
+| 8 l8
+| 9 l9
| 10 MARK c
| 11 l11
| 12 l12
|
|
-| NOR /tmp/pardes-snap/fsearch/cwd Del
-|
-| g.txt
-|
-|
+| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del NOR /tmp/pardes-snap/fsearch/cwd Del
+| 1 /tmp/pardes-snap/fsearch/cwd/g.txt:2:1 MARK a
+| 2 /tmp/pardes-snap/fsearch/cwd/g.txt:6:1 MARK b g.txt
+| 3 /tmp/pardes-snap/fsearch/cwd/g.txt:10:1 MARK c
+| 4
|
|
|
@@ -131,7 +131,7 @@
|5: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
|6: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
|7: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
-|8: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 #d8c8a8,#4a3a1e, 120-121 d,#525252, 122-179 d,d,
+|8: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
|9: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
|10: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
|11: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
@@ -139,8 +139,8 @@
|13: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
|14: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
|15: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
-|16: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#383c54, 62-97 #969696,#2c2a3e, 98-119 d,#2c2a3e, 120-121 d,#525252, 122-179 d,d,
-|17: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
+|16: 0-1 d,#383c54, 2-45 #969696,#2c2a3e, 46-59 d,#2c2a3e, 60-61 d,#383c54, 62-97 #969696,#2c2a3e, 98-119 d,#2c2a3e, 120-121 d,#525252, 122-179 d,d,
+|17: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 #d8c8a8,#4a3a1e, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
|18: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
|19: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
|20: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-59 d,d, 60-61 d,#525252, 62-119 d,d, 120-121 d,#525252, 122-179 d,d,
@@ -162,17 +162,20 @@
| 4 l4
| 5 l5
| 6 MARK b g.txt
-| 7 l7 /tmp/pardes-snap/fsearch/cwd/g.txt:2:MARK a
-| 8 l8 /tmp/pardes-snap/fsearch/cwd/g.txt:6:MARK b
-| 9 l9 /tmp/pardes-snap/fsearch/cwd/g.txt:10:MARK c
+| 7 l7
+| 8 l8
+| 9 l9
| 10 MARK c
| 11 l11
| 12 l12
|
|
-| NOR /tmp/pardes-snap/fsearch/cwd Del
+| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del NOR /tmp/pardes-snap/fsearch/cwd Del
+| 1 /tmp/pardes-snap/fsearch/cwd/g.txt:2:1 MARK a
+| 2 /tmp/pardes-snap/fsearch/cwd/g.txt:6:1 MARK b g.txt
+| 3 /tmp/pardes-snap/fsearch/cwd/g.txt:10:1 MARK c
+| 4
|
-| g.txt
|
|
|
@@ -181,31 +184,28 @@
|
|
|
-|
-|
-|
-== snap third grid=180x30 cursor=7,11
+== snap third grid=180x30 cursor=7,9
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/fsearch/cwd/g.txt Save Del NOR /tmp/pardes-snap/fsearch/cwd Del NOR /tmp/pardes-snap/fsearch/cwd Del
-| 1 l1
-| 2 MARK a g.txt g.txt
| 3 l3
-| 4 l4
+| 4 l4 g.txt g.txt
| 5 l5
-| 6 MARK b g.txt
-| 7 l7 /tmp/pardes-snap/fsearch/cwd/g.txt:2:MARK a
-| 8 l8 /tmp/pardes-snap/fsearch/cwd/g.txt:6:MARK b
-| 9 l9 /tmp/pardes-snap/fsearch/cwd/g.txt:10:MARK c
+| 6 MARK b
+| 7 l7
+| 8 l8 g.txt
+| 9 l9
| 10 MARK c
| 11 l11
| 12 l12
|
|
-| NOR /tmp/pardes-snap/fsearch/cwd Del
-|
-| g.txt
|
|
+| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del NOR /tmp/pardes-snap/fsearch/cwd Del
+| 1 /tmp/pardes-snap/fsearch/cwd/g.txt:2:1 MARK a
+| 2 /tmp/pardes-snap/fsearch/cwd/g.txt:6:1 MARK b g.txt
+| 3 /tmp/pardes-snap/fsearch/cwd/g.txt:10:1 MARK c
+| 4
|
|
|
@@ -224,19 +224,19 @@
| 4 l4
| 5 l5
| 6 MARK b g.txt
-| 7 l7 /tmp/pardes-snap/fsearch/cwd/g.txt:2:MARK a
-| 8 l8 /tmp/pardes-snap/fsearch/cwd/g.txt:6:MARK b
-| 9 l9 /tmp/pardes-snap/fsearch/cwd/g.txt:10:MARK c
+| 7 l7
+| 8 l8
+| 9 l9
| 10 MARK c
| 11 l11
| 12 l12
|
|
-| NOR /tmp/pardes-snap/fsearch/cwd Del
-|
-| g.txt
-|
-|
+| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del NOR /tmp/pardes-snap/fsearch/cwd Del
+| 1 /tmp/pardes-snap/fsearch/cwd/g.txt:2:1 MARK a
+| 2 /tmp/pardes-snap/fsearch/cwd/g.txt:6:1 MARK b g.txt
+| 3 /tmp/pardes-snap/fsearch/cwd/g.txt:10:1 MARK c
+| 4
|
|
|
@@ -255,19 +255,19 @@
| 4 l4
| 5 l5
| 6 MARK b g.txt
-| 7 l7 /tmp/pardes-snap/fsearch/cwd/g.txt:2:MARK a
-| 8 l8 /tmp/pardes-snap/fsearch/cwd/g.txt:6:MARK b
-| 9 l9 /tmp/pardes-snap/fsearch/cwd/g.txt:10:MARK c
+| 7 l7
+| 8 l8
+| 9 l9
| 10 MARK c
| 11 l11
| 12 l12
|
|
-| NOR /tmp/pardes-snap/fsearch/cwd Del
-|
-| g.txt
-|
-|
+| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del NOR /tmp/pardes-snap/fsearch/cwd Del
+| 1 /tmp/pardes-snap/fsearch/cwd/g.txt:2:1 MARK a
+| 2 /tmp/pardes-snap/fsearch/cwd/g.txt:6:1 MARK b g.txt
+| 3 /tmp/pardes-snap/fsearch/cwd/g.txt:10:1 MARK c
+| 4
|
|
|
@@ -286,16 +286,16 @@
| 4 l4
| 5 l5
| 6 MARK b g.txt
-| 7 l7 /tmp/pardes-snap/fsearch/cwd/g.txt:2:MARK a
-| 8 l8 /tmp/pardes-snap/fsearch/cwd/g.txt:6:MARK b
-| 9 l9 /tmp/pardes-snap/fsearch/cwd/g.txt:10:MARK c
+| 7 l7
+| 8 l8
+| 9 l9
| 10 MARK c
| 11 l11
| 12 l12
|
|
-| NOR /tmp/pardes-snap/fsearch/cwd Del
-|
+| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del NOR /tmp/pardes-snap/fsearch/cwd Del
+| 1
| g.txt
|
|
diff --git a/test/snapshots/fsearch.snap b/test/snapshots/fsearch.snap
index 38c39c02..7953b408 100644
--- a/test/snapshots/fsearch.snap
+++ b/test/snapshots/fsearch.snap
@@ -1,8 +1,9 @@
# `/` file search: the pattern types into the tag (persistent, no popup);
-# Enter runs grep -nH into a shell pane so the results are ordinary terminal
-# text; n/N select the next/prev result row there (prompt rows skipped via the
-# OSC 133 semantic marks) and look it — the file pane scrolls to path:NNN.
-# Esc abandons the input; a no-match search leaves n with nowhere to go.
+# Enter searches the buffer in-core and writes `path:NNN: text` into a +Search
+# OUTPUT BUFFER (a file pane with no file behind it — no Save in its tag);
+# n/N select the next/prev row there and look it, so the file pane scrolls to
+# path:NNN. Esc abandons the input; a no-match search empties the buffer and
+# leaves n with nowhere to go.
file g.txt l1\nMARK a\nl3\nl4\nl5\nMARK b\nl7\nl8\nl9\nMARK c\nl11\nl12
start 30 180 -n 3
wait 8000 g.txt
@@ -28,10 +29,10 @@ text MARK
stable 400 5000
snap typing
key enter
-wait 10000 g.txt:2:MARK
+wait 10000 g.txt:2:1 MARK
stable 700 10000
snap results
-# n selects result 1 in the results pane + scrolls the file to line 2
+# n selects result 1 in the results buffer + scrolls the file to line 2
key n
stable 700 15000
snap first
diff --git a/test/snapshots/images.golden b/test/snapshots/images.golden
index c5a2322e..fc5af97b 100644
--- a/test/snapshots/images.golden
+++ b/test/snapshots/images.golden
@@ -1,4 +1,4 @@
-== snap img-open grid=150x30 cursor=4,7
+== snap img-open grid=150x30 cursor=11,7
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| img /tmp/pardes-snap/images/cwd/pic.ppm Petscii NOR /tmp/pardes-snap/images/cwd Del NOR /tmp/pardes-snap/images/cwd Del
|
diff --git a/test/snapshots/layout-open.golden b/test/snapshots/layout-open.golden
index c4ab4219..6ccc8467 100644
--- a/test/snapshots/layout-open.golden
+++ b/test/snapshots/layout-open.golden
@@ -1,4 +1,4 @@
-== snap before grid=100x30 cursor=4,7
+== snap before grid=100x30 cursor=2,8
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/layout-open/cwd Del NOR /tmp/pardes-snap/layout-open/cwd Del
|
diff --git a/test/snapshots/leader.golden b/test/snapshots/leader.golden
new file mode 100644
index 00000000..9bf559c0
--- /dev/null
+++ b/test/snapshots/leader.golden
@@ -0,0 +1,369 @@
+== snap spc grid=100x40 cursor=7,2
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/leader/cwd/cmds.txt Sav SPC NOR /tmp/pardes-snap/leader/cwd Del
+| 1 Help
+| cmds.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap spc-h grid=100x40 cursor=7,2
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/leader/cwd/cmds.txt S SPC h NOR /tmp/pardes-snap/leader/cwd Del
+| 1 Help
+| cmds.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap abandoned grid=100x40 cursor=7,2
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/leader/cwd/cmds.txt Save De NOR /tmp/pardes-snap/leader/cwd Del
+| 1 Help
+| cmds.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap unmapped grid=100x40 cursor=7,2
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/leader/cwd/cmds.txt Save De NOR /tmp/pardes-snap/leader/cwd Del
+| 1 Help
+| cmds.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap help-word grid=100x40 cursor=7,22
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/leader/cwd/cmds.txt Save De NOR /tmp/pardes-snap/leader/cwd Del
+| 1 Help
+| cmds.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/leader/cwd/+Help Del
+| 1 pardes builtins - SPC then the keys,
+| 2 or execute the name anywhere
+| 3
+| 4 SPC ? Help
+| 5 SPC c d Delcol
+| 6 SPC c n Newcol
+| 7 SPC d Del
+| 8 SPC h t Tutor
+| 9 SPC k Kill
+| 10 SPC s d Dump
+| 11 SPC s r Restore
+| 12 SPC t c Colors
+| 13 SPC t d Debug
+| 14 SPC t n NextColor
+| 15 SPC t r Crt
+| 16 SPC w Save
+| 17
+|
+== snap help-group grid=100x40 cursor=7,22
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/leader/cwd/cmds.txt Save De NOR /tmp/pardes-snap/leader/cwd Del
+| 1 Help
+| cmds.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/leader/cwd/+Help Del
+| 1 pardes builtins under SPC h
+| 2
+| 3 SPC h t Tutor
+| 4
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap tutor grid=100x40 cursor=7,32
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/leader/cwd/cmds.txt Save De NOR /tmp/pardes-snap/leader/cwd Del
+| 1 Help
+| cmds.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/leader/cwd/+Help Del
+| 1 pardes builtins under SPC h
+| 2
+| 3 SPC h t Tutor
+| 4
+|
+|
+|
+|
+|
+| NOR /Tutor Save Del
+| 1
+| 2 PARDES TUTOR
+| 3 tmux + vi + acme, from
+| 4
+| 5 The model is acme's: EVERYTHING is
+| 6 the same way. Modal editing (helix-
+| 7 Press j until you reach the introdu
+| 8
+== snap deleted grid=100x40 cursor=7,22
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/leader/cwd/cmds.txt Save De NOR /tmp/pardes-snap/leader/cwd Del
+| 1 Help
+| cmds.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/leader/cwd/+Help Del
+| 1 pardes builtins under SPC h
+| 2
+| 3 SPC h t Tutor
+| 4
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap help-all grid=100x40 cursor=7,22
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/leader/cwd/cmds.txt Save De NOR /tmp/pardes-snap/leader/cwd Del
+| 1 Help
+| cmds.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/leader/cwd/+Help Del
+| 1 pardes builtins - SPC then the keys,
+| 2 or execute the name anywhere
+| 3
+| 4 SPC ? Help
+| 5 SPC c d Delcol
+| 6 SPC c n Newcol
+| 7 SPC d Del
+| 8 SPC h t Tutor
+| 9 SPC k Kill
+| 10 SPC s d Dump
+| 11 SPC s r Restore
+| 12 SPC t c Colors
+| 13 SPC t d Debug
+| 14 SPC t n NextColor
+| 15 SPC t r Crt
+| 16 SPC w Save
+| 17
+|
diff --git a/test/snapshots/leader.snap b/test/snapshots/leader.snap
new file mode 100644
index 00000000..9da5f288
--- /dev/null
+++ b/test/snapshots/leader.snap
@@ -0,0 +1,64 @@
+# The SPC leader: every builtin also has a KEY PATH, and SPC walks it. While a
+# path is pending the active pane's tag shows it at its RIGHT edge (the `/`
+# input's rule — state you can see — right-aligned so it never collides with
+# the tail's builtins). `?` at any depth opens the Help builtin, listing what
+# the prefix typed so far can still reach, into a +Help OUTPUT BUFFER (a file
+# pane with no file behind it, like +Search). The paths, the Help lines and
+# the execute dispatch are all folded out of ONE enum at comptime — so
+# executing the WORD `Help` runs the same builtin the leader does.
+file cmds.txt Help
+start 40 100 cmds.txt
+wait 8000 Kill Newcol
+wait 8000 cmds.txt
+stable 700 20000
+# SPC arms the leader: the indicator appears on the active pane's tag
+key space
+stable 400 5000
+snap spc
+# ... and grows as the path is typed (`h` = the docs group)
+key h
+stable 400 5000
+snap spc-h
+# Esc abandons the sequence: indicator gone, nothing ran, cursor untouched
+key esc
+settle 700
+stable 400 5000
+snap abandoned
+# an UNMAPPED key abandons too, rather than waiting: a typo must not leave the
+# next keystroke armed at a builtin that closes panes
+key space
+key q
+stable 400 5000
+snap unmapped
+# executing the WORD `Help` (middle-click) runs the builtin — the enum IS the
+# lookup, so a name works anywhere text lives. Every builtin, with its keys.
+press middle 9 3
+release middle 9 3
+wait 10000 SPC h t
+stable 700 15000
+snap help-word
+# `SPC h ?`: only the `h` group, rewritten into the SAME +Help buffer
+key space
+key h
+key ?
+wait 10000 under SPC h
+stable 700 15000
+snap help-group
+# `SPC h t`: the Tutor builtin, zero arguments
+key space
+key h
+key t
+wait 10000 PARDES TUTOR
+stable 700 15000
+snap tutor
+# `SPC d`: Del is pane-scoped — it closes the tutor, focus falls back
+key space
+key d
+stable 700 15000
+snap deleted
+# `SPC ?` at the root lists everything again
+key space
+key ?
+wait 10000 SPC s r
+stable 700 15000
+snap help-all
diff --git a/test/snapshots/modal.golden b/test/snapshots/modal.golden
index 57b68c99..b94e986f 100644
--- a/test/snapshots/modal.golden
+++ b/test/snapshots/modal.golden
@@ -246,7 +246,7 @@
|27: 0-1 d,#525252, 2-49 d,d, 50-51 d,#525252, 52-99 d,d,
|28: 0-1 d,#525252, 2-49 d,d, 50-51 d,#525252, 52-99 d,d,
|29: 0-1 d,#525252, 2-49 d,d, 50-51 d,#525252, 52-99 d,d,
-== snap typed grid=100x30 cursor=2,6
+== snap typed grid=100x30 cursor=7,6
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/modal/cwd Del NOR /tmp/pardes-snap/modal/cwd Del
|
@@ -308,7 +308,7 @@
|
|
|
-== snap redone grid=100x30 cursor=2,6
+== snap redone grid=100x30 cursor=7,6
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/modal/cwd Del NOR /tmp/pardes-snap/modal/cwd Del
|
@@ -339,7 +339,7 @@
|
|
|
-== snap bottom grid=100x30 cursor=2,8
+== snap bottom grid=100x30 cursor=2,9
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/modal/cwd Del NOR /tmp/pardes-snap/modal/cwd Del
|
diff --git a/test/snapshots/psearch.golden b/test/snapshots/psearch.golden
new file mode 100644
index 00000000..8e5443d5
--- /dev/null
+++ b/test/snapshots/psearch.golden
@@ -0,0 +1,310 @@
+== snap output grid=140x30 cursor=4,8
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/psearch/cwd Del
+|
+| x MARK a
+| zz
+| x MARK b
+| zz
+| x MARK c
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap typing grid=140x30 cursor=44,1
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| INS /tmp/pardes-snap/psearch/cwd Del /MARK
+|
+| x MARK a
+| zz
+| x MARK b
+| zz
+| x MARK c
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap results grid=140x30 cursor=74,8
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/psearch/cwd/+Search Del NOR /tmp/pardes-snap/psearch/cwd Del
+| 1 @p0:2:3 x MARK a
+| 2 @p0:4:3 x MARK b x MARK a
+| 3 @p0:6:3 x MARK c zz
+| 4 x MARK b
+| zz
+| x MARK c
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap first grid=140x30 cursor=74,3
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/psearch/cwd/+Search Del NOR /tmp/pardes-snap/psearch/cwd Del
+| 1 @p0:2:3 x MARK a
+| 2 @p0:4:3 x MARK b x MARK a
+| 3 @p0:6:3 x MARK c zz
+| 4 x MARK b
+| zz
+| x MARK c
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== style first
+|0: 0-48 #969696,#2c2a3e, 49-139 d,#2c2a3e,
+|1: 0-1 d,#383c54, 2-45 #969696,#2c2a3e, 46-69 d,#2c2a3e, 70-71 d,#6e4fd0, 72-107 #969696,#2c2a3e, 108-139 d,#2c2a3e,
+|2: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 #d8c8a8,#4a3a1e, 70-71 d,#525252, 72-139 d,d,
+|3: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|4: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|5: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|6: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|7: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|8: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|9: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|10: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|11: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|12: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|13: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|14: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|15: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|16: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|17: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|18: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|19: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|20: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|21: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|22: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|23: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|24: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|25: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|26: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|27: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|28: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+|29: 0-1 d,#525252, 2-6 #5a5a5a,d, 7-69 d,d, 70-71 d,#525252, 72-139 d,d,
+== snap second grid=140x30 cursor=74,5
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/psearch/cwd/+Search Del NOR /tmp/pardes-snap/psearch/cwd Del
+| 1 @p0:2:3 x MARK a
+| 2 @p0:4:3 x MARK b x MARK a
+| 3 @p0:6:3 x MARK c zz
+| 4 x MARK b
+| zz
+| x MARK c
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap back grid=140x30 cursor=74,3
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/psearch/cwd/+Search Del NOR /tmp/pardes-snap/psearch/cwd Del
+| 1 @p0:2:3 x MARK a
+| 2 @p0:4:3 x MARK b x MARK a
+| 3 @p0:6:3 x MARK c zz
+| 4 x MARK b
+| zz
+| x MARK c
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap nomatch grid=140x30 cursor=74,3
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/psearch/cwd/+Search Del NOR /tmp/pardes-snap/psearch/cwd Del
+| 1
+| x MARK a
+| zz
+| x MARK b
+| zz
+| x MARK c
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap ttyinert grid=140x30 cursor=74,8
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/psearch/cwd/+Search Del TTY /tmp/pardes-snap/psearch/cwd Del
+| 1 $ printf 'x MA''RK a\nzz\nx MA''RK b\nzz\nx MA''RK c\n'
+| x MARK a
+| zz
+| x MARK b
+| zz
+| x MARK c
+| $
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap rightsearch grid=140x30 cursor=74,3
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/psearch/cwd/+Search Del NOR /tmp/pardes-snap/psearch/cwd Del
+| 1 @p0:2:3 x MARK a
+| 2 @p0:4:3 x MARK b x MARK a
+| 3 @p0:6:3 x MARK c zz
+| 4 x MARK b
+| zz
+| x MARK c
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
diff --git a/test/snapshots/psearch.snap b/test/snapshots/psearch.snap
new file mode 100644
index 00000000..4c5e74d0
--- /dev/null
+++ b/test/snapshots/psearch.snap
@@ -0,0 +1,68 @@
+# `/` search on a TERMINAL pane: the same tag input as a file pane, searching
+# the shell's own scrollback (the plain text view Look reads, prompt rows
+# hidden). Results land in a +Search OUTPUT BUFFER — a file pane with no file
+# behind it, so its tag has no Save — and point at `@p0:LINE`, the look target
+# that names a live pane, since a terminal has no path. n/N walk the buffer
+# and look each row, scrolling the terminal to that line of its scrollback.
+start 30 140
+wait 8000 Kill Newcol
+stable 700 20000
+# print something to search (a bare boot starts in tty mode; the marker is
+# split so the echoed command line, which normal mode hides anyway, can never
+# be the thing that matched)
+text printf 'x MA''RK a\nzz\nx MA''RK b\nzz\nx MA''RK c\n'
+key enter
+wait 10000 MARK c
+stable 700 10000
+key c-b
+stable 600 8000
+snap output
+# / types the pattern into the terminal's tag exactly as on a file pane
+key /
+stable 400 5000
+text MARK
+stable 400 5000
+snap typing
+# Enter opens the results buffer: three @p0:LINE:COL rows, focus stays here
+key enter
+wait 10000 @p0:2:3
+stable 700 15000
+snap results
+# n looks result 1: the terminal's cursor lands on that scrollback line, at
+# the matched COLUMN (3, past the leading "x ") — not the start of the line
+key n
+stable 700 15000
+snap first
+snapstyle first
+key n
+stable 700 15000
+snap second
+# N walks back
+key N
+stable 700 15000
+snap back
+# a no-match search empties the buffer; n then has nowhere to go
+key /
+text zzqq
+key enter
+stable 700 10000
+key n
+stable 400 5000
+snap nomatch
+# right-clicking a word that names no file is the same search (acme button 3),
+# but NOT in tty mode: there the click belongs to the program on the other end,
+# so the buffer stays empty
+key c-b
+stable 600 8000
+press right 75 4
+release right 75 4
+stable 700 10000
+snap ttyinert
+# back in normal mode the same click searches for MARK
+key c-b
+stable 600 8000
+press right 75 4
+release right 75 4
+wait 10000 @p0:2:3
+stable 700 15000
+snap rightsearch
diff --git a/test/snapshots/rsearch.golden b/test/snapshots/rsearch.golden
index c067d1ee..e716ef39 100644
--- a/test/snapshots/rsearch.golden
+++ b/test/snapshots/rsearch.golden
@@ -39,17 +39,17 @@
|
| code.txt
|
-| /tmp/pardes-snap/rsearch/cwd/code.txt:1:run count_x now
-| /tmp/pardes-snap/rsearch/cwd/code.txt:3:count_x again
|
|
|
|
|
-| NOR /tmp/pardes-snap/rsearch/cwd Del
|
-| code.txt sub
|
+| NOR /tmp/pardes-snap/rsearch/cwd/+Search Del NOR /tmp/pardes-snap/rsearch/cwd Del
+| 1 /tmp/pardes-snap/rsearch/cwd/code.txt:1:5 run count_x
+| 2 /tmp/pardes-snap/rsearch/cwd/code.txt:3:1 count_x aga code.txt sub
+| 3
|
|
|
@@ -70,18 +70,16 @@
|
| code.txt
|
-| /tmp/pardes-snap/rsearch/cwd/code.txt:1:run count_x now
-| /tmp/pardes-snap/rsearch/cwd/code.txt:3:count_x again
|
|
-| /tmp/pardes-snap/rsearch/cwd/code.txt:4:pick two words
|
|
-| NOR /tmp/pardes-snap/rsearch/cwd Del
|
-| code.txt sub
|
|
+| NOR /tmp/pardes-snap/rsearch/cwd/+Search Del NOR /tmp/pardes-snap/rsearch/cwd Del
+| 1 /tmp/pardes-snap/rsearch/cwd/code.txt:4:1 pick two wo
+| 2 code.txt sub
|
|
|
@@ -91,7 +89,9 @@
|
|
|
-== snap path-open grid=180x30 cursor=7,19
+|
+|
+== snap path-open grid=180x30 cursor=7,12
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/rsearch/cwd/code.txt Save Del NOR /tmp/pardes-snap/rsearch/cwd Del NOR /tmp/pardes-snap/rsearch/cwd Del
| 1 run count_x now
@@ -101,20 +101,20 @@
|
| code.txt
|
-| /tmp/pardes-snap/rsearch/cwd/code.txt:1:run count_x now
-| /tmp/pardes-snap/rsearch/cwd/code.txt:3:count_x again
-|
-|
-| /tmp/pardes-snap/rsearch/cwd/code.txt:4:pick two words
-|
-|
-| NOR /tmp/pardes-snap/rsearch/cwd/sub/dep.txt Save Del NOR /tmp/pardes-snap/rsearch/cwd Del
+| NOR /tmp/pardes-snap/rsearch/cwd/sub/dep.txt Save Del
| 1 d1
-| 2 d2 code.txt sub
+| 2 d2
| 3 DEPTARGET
| 4 d4
| 5 d5
| 6 d6
+| NOR /tmp/pardes-snap/rsearch/cwd/+Search Del NOR /tmp/pardes-snap/rsearch/cwd Del
+| 1 /tmp/pardes-snap/rsearch/cwd/code.txt:4:1 pick two wo
+| 2 code.txt sub
+|
+|
+|
+|
|
|
|
diff --git a/test/snapshots/rsearch.snap b/test/snapshots/rsearch.snap
index e42d195a..16f40137 100644
--- a/test/snapshots/rsearch.snap
+++ b/test/snapshots/rsearch.snap
@@ -1,7 +1,7 @@
# acme button-3 in a text file = search: right-click / right-select reuse the
-# `/` grep machinery. A click expands the file-ish word (look.isFileChar) and,
-# when it names no file, greps it into a shell (results are ordinary terminal
-# text; n/N walk them like `/`). A right-select greps the swept span verbatim.
+# `/` machinery. A click expands the file-ish word (look.isFileChar) and, when
+# it names no file, searches the buffer for it — hits into the +Search output
+# buffer, n/N walk them like `/`. A right-select searches the span verbatim.
# A real path (sub/dep.txt:3) still resolves and OPENS — expansion keeps / . :
# so paths are not broken; only the non-file case falls through to search.
dirmk sub
@@ -25,10 +25,10 @@ wait 10000 count_x
stable 700 15000
snap opened
# right-CLICK the identifier `count_x` (line 1, the 'n' at col 15). It names no
-# file, so the click greps it: the results list both lines that contain it.
+# file, so the click searches for it: the results list both lines containing it.
press right 15 3
release right 15 3
-wait 10000 code.txt:1:run count_x
+wait 10000 code.txt:1:5 run count_x
stable 700 15000
snap search
# right-SELECT `pick two` (line 4, sweep cols 8..15): a multi-word span passes
@@ -36,7 +36,7 @@ snap search
press right 8 6
drag right 15 6
release right 15 6
-wait 10000 code.txt:4:pick two
+wait 10000 code.txt:4:1 pick two
stable 700 15000
snap select
# right-CLICK the path `sub/dep.txt:3` (line 2, col 18): isFileChar keeps / . :
diff --git a/test/snapshots/shrinktag.golden b/test/snapshots/shrinktag.golden
index 031f15ef..d087fbda 100644
--- a/test/snapshots/shrinktag.golden
+++ b/test/snapshots/shrinktag.golden
@@ -1,4 +1,4 @@
-== snap before grid=100x30 cursor=4,7
+== snap before grid=100x30 cursor=2,8
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/shrinktag/cwd Del NOR /tmp/pardes-snap/shrinktag/cwd Del
|
@@ -29,7 +29,7 @@
|
|
|
-== snap shrunk grid=100x30 cursor=4,7
+== snap shrunk grid=100x30 cursor=2,8
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/shrinktag/cwd Del NOR /tmp/pardes-snap/shrinktag/cwd Del
| NOR /tmp/pardes-snap/shrinktag/cwd Del
@@ -60,7 +60,7 @@
|
|
|
-== snap move-preview grid=100x30 cursor=4,7
+== snap move-preview grid=100x30 cursor=2,8
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/shrinktag/cwd Del NOR /tmp/pardes-snap/shrinktag/cwd Del
| NOR /tmp/pardes-snap/shrinktag/cwd Del
@@ -91,7 +91,7 @@
|
|
|
-== snap restored grid=100x30 cursor=4,7
+== snap restored grid=100x30 cursor=2,8
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/shrinktag/cwd Del NOR /tmp/pardes-snap/shrinktag/cwd Del
|
@@ -122,7 +122,7 @@
|
|
|
-== snap bottom-shrunk grid=100x30 cursor=4,7
+== snap bottom-shrunk grid=100x30 cursor=2,8
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/shrinktag/cwd Del NOR /tmp/pardes-snap/shrinktag/cwd Del
|
diff --git a/test/snapshots/tty.golden b/test/snapshots/tty.golden
index d4cbb360..1f7b8c0b 100644
--- a/test/snapshots/tty.golden
+++ b/test/snapshots/tty.golden
@@ -91,3 +91,65 @@
|
|
|
+== snap shift-esc-on grid=100x30 cursor=4,6
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| TTY /tmp/pardes-snap/tty/cwd Del NOR /tmp/pardes-snap/tty/cwd Del
+| $ ls
+| m.txt m.txt
+| $ echo SNAP''OK
+| SNAPOK
+| $
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/tty/cwd Del
+|
+| m.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap shift-esc-off grid=100x30 cursor=4,6
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/tty/cwd Del NOR /tmp/pardes-snap/tty/cwd Del
+|
+| m.txt m.txt
+|
+| SNAPOK
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/tty/cwd Del
+|
+| m.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
diff --git a/test/snapshots/tty.snap b/test/snapshots/tty.snap
index 97eee3f5..a3af511d 100644
--- a/test/snapshots/tty.snap
+++ b/test/snapshots/tty.snap
@@ -1,4 +1,6 @@
-# tty mode round-trip: Ctrl-b in, run a command, Ctrl-b out
+# tty mode round-trip: Ctrl-b in, run a command, Ctrl-b out. Shift-Esc is the
+# same toggle (CSI 27;2u — needs a host that reports modifiers on Escape); a
+# PLAIN Esc is not, it still goes to the shell.
file m.txt marker
start 30 100 -n 3
wait 8000 m.txt
@@ -14,3 +16,10 @@ snap tty-echo
key c-b
stable 600 8000
snap tty-off
+# Shift-Esc: in, then out again — the same toggle from the other key
+send \e[27;2u
+stable 600 8000
+snap shift-esc-on
+send \e[27;2u
+stable 600 8000
+snap shift-esc-off
diff --git a/test/snapshots/ttyedit.golden b/test/snapshots/ttyedit.golden
new file mode 100644
index 00000000..6671634e
--- /dev/null
+++ b/test/snapshots/ttyedit.golden
@@ -0,0 +1,155 @@
+== snap before grid=100x30 cursor=7,6
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/ttyedit/cwd Del NOR /tmp/pardes-snap/ttyedit/cwd Del
+|
+| words.txt words.txt
+|
+|
+| one two three
+| four five six
+| seven eight nine
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/ttyedit/cwd Del
+|
+| words.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap split grid=100x30 cursor=2,7
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| INS /tmp/pardes-snap/ttyedit/cwd Del NOR /tmp/pardes-snap/ttyedit/cwd Del
+|
+| words.txt words.txt
+|
+|
+| one t
+| wo three
+| four five six
+| seven eight nine
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/ttyedit/cwd Del
+|
+| words.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap opened grid=100x30 cursor=6,8
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/ttyedit/cwd Del NOR /tmp/pardes-snap/ttyedit/cwd Del
+|
+| words.txt words.txt
+|
+|
+| one t
+| wo three
+| OPEN
+| four five six
+| seven eight nine
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/ttyedit/cwd Del
+|
+| words.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap joined grid=100x30 cursor=10,7
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/ttyedit/cwd Del NOR /tmp/pardes-snap/ttyedit/cwd Del
+|
+| words.txt words.txt
+|
+|
+| one t
+| wo threeOPEN
+| four five six
+| seven eight nine
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/ttyedit/cwd Del
+|
+| words.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap undone grid=100x30 cursor=7,6
+|Kill Newcol Tutor Debug Colors NextColor Crt Dump
+| NOR /tmp/pardes-snap/ttyedit/cwd Del NOR /tmp/pardes-snap/ttyedit/cwd Del
+|
+| words.txt words.txt
+|
+|
+| one two three
+| four five six
+| seven eight nine
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/ttyedit/cwd Del
+|
+| words.txt
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
diff --git a/test/snapshots/ttyedit.snap b/test/snapshots/ttyedit.snap
new file mode 100644
index 00000000..18872ce4
--- /dev/null
+++ b/test/snapshots/ttyedit.snap
@@ -0,0 +1,45 @@
+# editing a shell pane exactly like a document: Enter SPLITS the line under
+# the cursor and pushes the shell rows below it down, `o` opens a fresh line,
+# and backspace at column 0 joins back up. Before the edit buffer landed a
+# terminal could only splice single-row insertion runs, so none of this was
+# expressible. test/hxcases/parity.jsonl pins the keystroke-level equivalence
+# with a file pane case for case; this is the end-to-end pty proof.
+file words.txt alpha beta
+start 30 100 -n 3
+wait 8000 words.txt
+stable 700 20000
+key c-b
+stable 600 8000
+text printf 'one two three\nfour five six\nseven eight nine\n'
+key enter
+wait 8000 seven
+stable 700 10000
+key c-b
+stable 600 8000
+# click into the middle of the first output row
+press left 8 7
+release left 8 7
+stable 400 5000
+snap before
+# Enter splits the row there: "one t" stays, "wo three" becomes a real line
+# of its own and the two output rows below it slide down
+key i enter
+stable 400 5000
+snap split
+key esc
+stable 400 5000
+# `o` opens a line below the split's tail and pushes the rest down again
+key o
+text OPEN
+key esc
+stable 400 5000
+snap opened
+# backspace at column 0 joins the opened line back onto its predecessor
+key i home bs
+key esc
+stable 400 5000
+snap joined
+# undo walks the whole session back out to untouched shell output
+key u u u
+stable 400 5000
+snap undone
diff --git a/test/snapshots/ttylook.golden b/test/snapshots/ttylook.golden
index 410c71f7..c36f8f92 100644
--- a/test/snapshots/ttylook.golden
+++ b/test/snapshots/ttylook.golden
@@ -122,7 +122,7 @@
|
|
|
-== snap insert grid=120x30 cursor=2,3
+== snap insert grid=120x30 cursor=4,3
|Kill Newcol Tutor Debug Colors NextColor Crt Dump
| NOR /tmp/pardes-snap/ttylook/cwd Del NOR /tmp/pardes-snap/ttylook/cwd Del
|