summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-07-31 11:42:18 -0300
committerGabriel Schneider <[email protected]>2026-08-01 15:02:08 -0300
commit911215846f1d5a9b2e37a00e74fb9266d4a0884a (patch)
tree31413ca3336cbbd1933d9dc3e24f09a3b8ef46b4 /test
parent0b7a480bef38b209741c520e2478d178767a9e51 (diff)
downloadpardes-911215846f1d5a9b2e37a00e74fb9266d4a0884a.tar.gz
pardes-911215846f1d5a9b2e37a00e74fb9266d4a0884a.zip
a Look path can name a range, and search selects what it found
file:LINE:COL-ENDLINE:ENDCOL, with the two short forms people actually type reading naturally: file:412:9-21 on one line, file:412-418 whole ones. Ends are inclusive. A path feature, not a search feature — a ranged path typed in a tag or middle-clicked out of a shell's output selects just the same; search is only its first consumer. The dash is the fussy part. `-` was already a file char, so a ranged word survives click expansion whole, but a range needs a number on BOTH sides or my-file:10, build-2 and 2026-07-30 would stop being paths. Table-driven test in look.zig for exactly that. Selecting goes through the cellRange/setPaneRange pair the multi-cursor work left, and hxOff clamps both ends, so a stale range selects what still exists rather than crashing or reaching past EOF — pinned with an 8:6-400:9 range in a nine-line file. Producers: / search, Grep, and five LSP sites through a new spanRow — goto, references, rename tokens and both symbol lists were throwing away real protocol ranges at path:line:col. Left alone deliberately: Find rows are bare paths with nothing to span, a jump is a spot not a span, and the diagnostic and format paths only ever have a point, where half a range would be worse than none. One knock-on worth knowing: n now leaves an EXPLICIT selection, so a topbar execute chords it. grep.snap's no-match step was silently becoming `Grep TARGET`; it runs from the leader path now, which never chords, and the dedicated chord steps stayed where they were.
Diffstat (limited to 'test')
-rw-r--r--test/snapshots/fsearch.golden58
-rw-r--r--test/snapshots/fsearch.snap15
-rw-r--r--test/snapshots/grep.golden58
-rw-r--r--test/snapshots/grep.snap19
-rw-r--r--test/snapshots/lookrange.golden496
-rw-r--r--test/snapshots/lookrange.snap70
-rw-r--r--test/snapshots/lsp.golden26
-rw-r--r--test/snapshots/lsp.snap3
-rw-r--r--test/snapshots/lspdebug.golden2
-rw-r--r--test/snapshots/psearch.golden64
-rw-r--r--test/snapshots/psearch.snap12
-rw-r--r--test/snapshots/rsearch.golden16
-rw-r--r--test/snapshots/rsearch.snap4
13 files changed, 712 insertions, 131 deletions
diff --git a/test/snapshots/fsearch.golden b/test/snapshots/fsearch.golden
index 02176d84..d89cd743 100644
--- a/test/snapshots/fsearch.golden
+++ b/test/snapshots/fsearch.golden
@@ -88,10 +88,10 @@
|
|
| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del
-| 1 g.txt:2:1 MARK a
-| 2 g.txt:6:1 MARK b
-| 3 g.txt:10:1 MARK c
-== snap first grid=180x30 cursor=7,3
+| 1 g.txt:2:1-4 MARK a
+| 2 g.txt:6:1-4 MARK b
+| 3 g.txt:10:1-4 MARK c
+== snap first grid=180x30 cursor=10,3
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| 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
@@ -119,14 +119,14 @@
|
|
| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del
-| 1 g.txt:2:1 MARK a
-| 2 g.txt:6:1 MARK b
-| 3 g.txt:10:1 MARK c
+| 1 g.txt:2:1-4 MARK a
+| 2 g.txt:6:1-4 MARK b
+| 3 g.txt:10:1-4 MARK c
== style first
|0: 0-52 #949494,#121212, 53-179 d,#121212,
|1: 0-1 d,#626262, 2-48 #949494,#121212, 49-59 d,#121212, 60-61 d,#262626, 62-97 #949494,#121212, 98-119 d,#121212, 120-121 d,#262626, 122-157 #949494,#121212, 158-179 d,#121212,
|2: 0-1 d,#444444, 2-6 #626262,#080808, 7-8 #bdbdbd,#080808, 9-59 d,#080808, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
-|3: 0-1 d,#444444, 2-6 #949494,#121212, 7-12 #bdbdbd,#080808, 13-59 d,#080808, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
+|3: 0-1 d,#444444, 2-6 #949494,#121212, 7-10 #d8c8a8,#4a3a1e, 11-12 #bdbdbd,#080808, 13-59 d,#080808, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
|4: 0-1 d,#444444, 2-6 #626262,#080808, 7-8 #bdbdbd,#080808, 9-59 d,#080808, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
|5: 0-1 d,#444444, 2-6 #626262,#080808, 7-8 #bdbdbd,#080808, 9-59 d,#080808, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
|6: 0-1 d,#444444, 2-6 #626262,#080808, 7-8 #bdbdbd,#080808, 9-59 d,#080808, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
@@ -151,9 +151,9 @@
|25: 0-1 d,#444444, 2-6 #626262,#080808, 7-59 d,#080808, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
|26: 0-1 d,#262626, 2-45 #949494,#121212, 46-59 d,#121212, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
|27: 0-1 d,#444444, 2-6 #626262,#080808, 7-59 #d8c8a8,#4a3a1e, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
-|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-22 #bdbdbd,#080808, 23-59 d,#080808, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
-|29: 0-1 d,#121212, 2-6 #626262,#080808, 7-23 #bdbdbd,#080808, 24-59 d,#080808, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
-== snap second grid=180x30 cursor=7,7
+|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-24 #bdbdbd,#080808, 25-59 d,#080808, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
+|29: 0-1 d,#121212, 2-6 #626262,#080808, 7-25 #bdbdbd,#080808, 26-59 d,#080808, 60-61 d,#444444, 62-119 #bdbdbd,#080808, 120-121 d,#444444, 122-179 #bdbdbd,#080808,
+== snap second grid=180x30 cursor=10,7
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| 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
@@ -181,10 +181,10 @@
|
|
| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del
-| 1 g.txt:2:1 MARK a
-| 2 g.txt:6:1 MARK b
-| 3 g.txt:10:1 MARK c
-== snap third grid=180x30 cursor=7,11
+| 1 g.txt:2:1-4 MARK a
+| 2 g.txt:6:1-4 MARK b
+| 3 g.txt:10:1-4 MARK c
+== snap third grid=180x30 cursor=10,11
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| 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
@@ -212,10 +212,10 @@
|
|
| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del
-| 2 g.txt:6:1 MARK b
-| 3 g.txt:10:1 MARK c
+| 2 g.txt:6:1-4 MARK b
+| 3 g.txt:10:1-4 MARK c
| 4
-== snap back grid=180x30 cursor=7,7
+== snap back grid=180x30 cursor=10,7
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| 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
@@ -243,10 +243,10 @@
|
|
| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del
-| 1 g.txt:2:1 MARK a
-| 2 g.txt:6:1 MARK b
-| 3 g.txt:10:1 MARK c
-== snap cancel grid=180x30 cursor=7,7
+| 1 g.txt:2:1-4 MARK a
+| 2 g.txt:6:1-4 MARK b
+| 3 g.txt:10:1-4 MARK c
+== snap cancel grid=180x30 cursor=10,7
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| 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
@@ -274,10 +274,10 @@
|
|
| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del
-| 1 g.txt:2:1 MARK a
-| 2 g.txt:6:1 MARK b
-| 3 g.txt:10:1 MARK c
-== snap nomatch grid=180x30 cursor=7,7
+| 1 g.txt:2:1-4 MARK a
+| 2 g.txt:6:1-4 MARK b
+| 3 g.txt:10:1-4 MARK c
+== snap nomatch grid=180x30 cursor=10,7
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| 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
@@ -305,6 +305,6 @@
| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del
| 1
| NOR /tmp/pardes-snap/fsearch/cwd/+Search Del
-| 1 g.txt:2:1 MARK a
-| 2 g.txt:6:1 MARK b
-| 3 g.txt:10:1 MARK c
+| 1 g.txt:2:1-4 MARK a
+| 2 g.txt:6:1-4 MARK b
+| 3 g.txt:10:1-4 MARK c
diff --git a/test/snapshots/fsearch.snap b/test/snapshots/fsearch.snap
index d27d6f08..af1363dd 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 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 opens an EMPTY buffer
+# Enter searches the buffer in-core and writes `path:LINE:COL-ENDCOL 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 the hit AND SELECTS IT — the row names the match's whole span, not
+# just where it starts. Esc abandons the input; a no-match search opens an EMPTY buffer
# (every search gets its own, stacked under the pane) 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
@@ -30,10 +31,12 @@ text MARK
stable 400 5000
snap typing
key enter
-wait 10000 g.txt:2:1 MARK
+wait 10000 g.txt:2:1-4 MARK
stable 700 10000
snap results
-# n selects result 1 in the results buffer + scrolls the file to line 2
+# n selects result 1 in the results buffer, scrolls the file to line 2 and
+# selects the four cells the pattern matched there — the styles below are what
+# prove the second half of that
key n
stable 700 15000
snap first
diff --git a/test/snapshots/grep.golden b/test/snapshots/grep.golden
index 768c56dc..8ea45e14 100644
--- a/test/snapshots/grep.golden
+++ b/test/snapshots/grep.golden
@@ -88,10 +88,10 @@
|
|
| NOR /tmp/pardes-snap/grep/cwd/+Search Del
-| 1 a.txt:1:7 hello TARGET one
-| 2 a.txt:3:6 last TARGET line
-| 3 sub/b.txt:2:1 TARGET inside sub
-== snap first grid=180x30 cursor=13,2
+| 1 a.txt:1:7-12 hello TARGET one
+| 2 a.txt:3:6-11 last TARGET line
+| 3 sub/b.txt:2:1-6 TARGET inside sub
+== snap first grid=180x30 cursor=18,2
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/grep/cwd/a.txt Save Del NOR /tmp/pardes-snap/grep/cwd Del NOR /tmp/pardes-snap/grep/cwd Del
| 1 hello TARGET one
@@ -119,10 +119,10 @@
|
|
| NOR /tmp/pardes-snap/grep/cwd/+Search Del
-| 1 a.txt:1:7 hello TARGET one
-| 2 a.txt:3:6 last TARGET line
-| 3 sub/b.txt:2:1 TARGET inside sub
-== snap opened-hit grid=180x30 cursor=12,4
+| 1 a.txt:1:7-12 hello TARGET one
+| 2 a.txt:3:6-11 last TARGET line
+| 3 sub/b.txt:2:1-6 TARGET inside sub
+== snap opened-hit grid=180x30 cursor=17,4
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/grep/cwd/a.txt Save Del NOR /tmp/pardes-snap/grep/cwd Del NOR /tmp/pardes-snap/grep/cwd Del
| 1 hello TARGET one
@@ -150,10 +150,10 @@
|
|
| NOR /tmp/pardes-snap/grep/cwd/+Search Del
-| 2 a.txt:3:6 last TARGET line
-| 3 sub/b.txt:2:1 TARGET inside sub
+| 2 a.txt:3:6-11 last TARGET line
+| 3 sub/b.txt:2:1-6 TARGET inside sub
| 4
-== snap nomatch grid=180x30 cursor=13,2
+== snap nomatch grid=180x30 cursor=17,4
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/grep/cwd/a.txt Save Del NOR /tmp/pardes-snap/grep/cwd Del NOR /tmp/pardes-snap/grep/cwd Del
| 1 hello TARGET one
@@ -163,9 +163,9 @@
|
| a.txt
|
-| NOR /tmp/pardes-snap/grep/cwd/+Search Del
-| 1 a.txt:1:7 hello TARGET one
-| 2 a.txt:3:6 last TARGET line
+|
+|
+|
| NOR /tmp/pardes-snap/grep/cwd/+Search Del
| 1
| NOR /tmp/pardes-snap/grep/cwd/sub/b.txt Save Del
@@ -181,8 +181,8 @@
|
|
| NOR /tmp/pardes-snap/grep/cwd/+Search Del
-| 2 a.txt:3:6 last TARGET line
-| 3 sub/b.txt:2:1 TARGET inside sub
+| 2 a.txt:3:6-11 last TARGET line
+| 3 sub/b.txt:2:1-6 TARGET inside sub
| 4
== snap chordsel grid=180x30 cursor=19,2
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
@@ -194,9 +194,9 @@
|
| a.txt
|
-| NOR /tmp/pardes-snap/grep/cwd/+Search Del
-| 1 a.txt:1:7 hello TARGET one
-| 2 a.txt:3:6 last TARGET line
+|
+|
+|
| NOR /tmp/pardes-snap/grep/cwd/+Search Del
| 1
| NOR /tmp/pardes-snap/grep/cwd/sub/b.txt Save Del
@@ -212,8 +212,8 @@
|
|
| NOR /tmp/pardes-snap/grep/cwd/+Search Del
-| 2 a.txt:3:6 last TARGET line
-| 3 sub/b.txt:2:1 TARGET inside sub
+| 2 a.txt:3:6-11 last TARGET line
+| 3 sub/b.txt:2:1-6 TARGET inside sub
| 4
== snap chord grid=180x30 cursor=19,2
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
@@ -221,13 +221,13 @@
| 1 hello TARGET one
| 2 nothing here a.txt noise.txt sub a.txt noise.txt sub
| 3 last TARGET line
+|
+|
+| a.txt
| NOR /tmp/pardes-snap/grep/cwd/+Search Del
-| 1 a.txt:1:7 hello TARGET one
-| 2 a.txt:3:6 last TARGET line a.txt
-| 3 sub/b.txt:2:1 TARGET inside sub
-| NOR /tmp/pardes-snap/grep/cwd/+Search Del
-| 1 a.txt:1:7 hello TARGET one
-| 2 a.txt:3:6 last TARGET line
+| 1 a.txt:1:7-12 hello TARGET one
+| 2 a.txt:3:6-11 last TARGET line
+| 3 sub/b.txt:2:1-6 TARGET inside sub
| NOR /tmp/pardes-snap/grep/cwd/+Search Del
| 1
| NOR /tmp/pardes-snap/grep/cwd/sub/b.txt Save Del
@@ -243,6 +243,6 @@
|
|
| NOR /tmp/pardes-snap/grep/cwd/+Search Del
-| 2 a.txt:3:6 last TARGET line
-| 3 sub/b.txt:2:1 TARGET inside sub
+| 2 a.txt:3:6-11 last TARGET line
+| 3 sub/b.txt:2:1-6 TARGET inside sub
| 4
diff --git a/test/snapshots/grep.snap b/test/snapshots/grep.snap
index 12ff2c70..af05f2d8 100644
--- a/test/snapshots/grep.snap
+++ b/test/snapshots/grep.snap
@@ -2,7 +2,8 @@
# SAME tag input `/` and Find use, but the walk reads file CONTENTS under every
# pane's directory at once — minus any directory another pane's already
# contains, so a tree two panes sit in is searched ONCE and every hit appears
-# once. A row is `path:LINE:COL text` with the path RELATIVE to the directory
+# once. A row is `path:LINE:COL-ENDCOL text` — the match's whole span, so
+# looking it SELECTS the hit — with the path RELATIVE to the directory
# of the pane that asked — the same directory its results buffer is named in,
# so the short name resolves; only a hit from outside that tree stays absolute.
# n/N walk the rows like any other result list, and a row pointing into a file
@@ -43,7 +44,8 @@ key enter
wait 10000 sub/b.txt:2:1
stable 700 15000
snap results
-# n looks the first row: absolute path, line 1, column 7 (the `T`)
+# n looks the first row: absolute path, line 1, columns 7..12 (`TARGET`), and
+# those six cells come up selected
key n
stable 700 15000
snap first
@@ -54,9 +56,16 @@ key n
wait 10000 TARGET inside sub
stable 700 15000
snap opened-hit
-# a pattern nothing holds: an empty list of its own, n has nowhere to go
-press middle 45 1
-release middle 45 1
+# a pattern nothing holds: an empty list of its own, n has nowhere to go.
+# Armed from the LEADER, not the topbar word: the n above left the hit
+# SELECTED in a.txt (a ranged result row is one a look selects), and a topbar
+# execute chords whatever is selected into its argument — so a middle-click
+# here would run `Grep TARGET` and never ask for a pattern at all. The leader
+# path runs the builtin with no argument, which is what this step is about; the
+# chord itself is the last two snaps below.
+key space
+key f
+key g
stable 400 5000
text zzqq
key enter
diff --git a/test/snapshots/lookrange.golden b/test/snapshots/lookrange.golden
new file mode 100644
index 00000000..f8b5795e
--- /dev/null
+++ b/test/snapshots/lookrange.golden
@@ -0,0 +1,496 @@
+== snap opened grid=150x30 cursor=7,2
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/lookrange/cwd/look.txt Save Del NOR /tmp/pardes-snap/lookrange/cwd Del
+| 1 r.txt:3-5
+| 2 r.txt:7:4-9 look.txt r.txt
+| 3 r.txt:3:2-5:3
+| 4 r.txt:8:6-99:9
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+== snap wholelines grid=150x30 cursor=11,21
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/lookrange/cwd/look.txt Save Del NOR /tmp/pardes-snap/lookrange/cwd Del
+| 1 r.txt:3-5
+| 2 r.txt:7:4-9 look.txt r.txt
+| 3 r.txt:3:2-5:3
+| 4 r.txt:8:6-99:9
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/lookrange/cwd/r.txt Save Del
+| 1 aaaa
+| 2 bbbb
+| 3 cccc dccc
+| 4 dddd
+| 5 eeee
+| 6 ffff
+| 7 gg NEEDLE gg
+| 8 hhhh NEEDLE
+| 9 iiii
+|
+|
+|
+|
+== style wholelines
+|0: 0-52 #949494,#121212, 53-149 d,#121212,
+|1: 0-1 d,#262626, 2-53 #949494,#121212, 54-74 d,#121212, 75-76 d,#262626, 77-114 #949494,#121212, 115-149 d,#121212,
+|2: 0-1 d,#444444, 2-6 #626262,#080808, 7-15 #bdbdbd,#080808, 16-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|3: 0-1 d,#444444, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|4: 0-1 d,#444444, 2-6 #626262,#080808, 7-19 #bdbdbd,#080808, 20-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|5: 0-1 d,#444444, 2-6 #626262,#080808, 7-20 #bdbdbd,#080808, 21-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|6: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|7: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|8: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|9: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|10: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|11: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|12: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|13: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|14: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|15: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|16: 0-1 d,#626262, 2-50 #949494,#121212, 51-74 d,#121212, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|17: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|18: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|19: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|20: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|21: 0-1 d,#444444, 2-6 #949494,#121212, 7-11 #d8c8a8,#4a3a1e, 12-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|22: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|23: 0-1 d,#444444, 2-6 #626262,#080808, 7-18 #bdbdbd,#080808, 19-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|24: 0-1 d,#444444, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|25: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|26: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|27: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|29: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+== snap onelinespan grid=150x30 cursor=15,23
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/lookrange/cwd/look.txt Save Del NOR /tmp/pardes-snap/lookrange/cwd Del
+| 1 r.txt:3-5
+| 2 r.txt:7:4-9 look.txt r.txt
+| 3 r.txt:3:2-5:3
+| 4 r.txt:8:6-99:9
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/lookrange/cwd/r.txt Save Del
+| 1 aaaa
+| 2 bbbb
+| 3 cccc dccc
+| 4 dddd
+| 5 eeee
+| 6 ffff
+| 7 gg NEEDLE gg
+| 8 hhhh NEEDLE
+| 9 iiii
+|
+|
+|
+|
+== style onelinespan
+|0: 0-52 #949494,#121212, 53-149 d,#121212,
+|1: 0-1 d,#262626, 2-53 #949494,#121212, 54-74 d,#121212, 75-76 d,#262626, 77-114 #949494,#121212, 115-149 d,#121212,
+|2: 0-1 d,#444444, 2-6 #626262,#080808, 7-15 #bdbdbd,#080808, 16-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|3: 0-1 d,#444444, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|4: 0-1 d,#444444, 2-6 #626262,#080808, 7-19 #bdbdbd,#080808, 20-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|5: 0-1 d,#444444, 2-6 #626262,#080808, 7-20 #bdbdbd,#080808, 21-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|6: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|7: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|8: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|9: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|10: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|11: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|12: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|13: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|14: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|15: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|16: 0-1 d,#626262, 2-50 #949494,#121212, 51-74 d,#121212, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|17: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|18: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|19: 0-1 d,#444444, 2-6 #626262,#080808, 7-15 #bdbdbd,#080808, 16-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|20: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|21: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|22: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|23: 0-1 d,#444444, 2-6 #949494,#121212, 7-9 #bdbdbd,#080808, 10-15 #d8c8a8,#4a3a1e, 16-18 #bdbdbd,#080808, 19-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|24: 0-1 d,#444444, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|25: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|26: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|27: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|29: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+== snap fullspan grid=150x30 cursor=9,21
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/lookrange/cwd/look.txt Save Del NOR /tmp/pardes-snap/lookrange/cwd Del
+| 1 r.txt:3-5
+| 2 r.txt:7:4-9 look.txt r.txt
+| 3 r.txt:3:2-5:3
+| 4 r.txt:8:6-99:9
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/lookrange/cwd/r.txt Save Del
+| 1 aaaa
+| 2 bbbb
+| 3 cccc dccc
+| 4 dddd
+| 5 eeee
+| 6 ffff
+| 7 gg NEEDLE gg
+| 8 hhhh NEEDLE
+| 9 iiii
+|
+|
+|
+|
+== style fullspan
+|0: 0-52 #949494,#121212, 53-149 d,#121212,
+|1: 0-1 d,#262626, 2-53 #949494,#121212, 54-74 d,#121212, 75-76 d,#262626, 77-114 #949494,#121212, 115-149 d,#121212,
+|2: 0-1 d,#444444, 2-6 #626262,#080808, 7-15 #bdbdbd,#080808, 16-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|3: 0-1 d,#444444, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|4: 0-1 d,#444444, 2-6 #626262,#080808, 7-19 #bdbdbd,#080808, 20-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|5: 0-1 d,#444444, 2-6 #626262,#080808, 7-20 #bdbdbd,#080808, 21-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|6: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|7: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|8: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|9: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|10: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|11: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|12: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|13: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|14: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|15: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|16: 0-1 d,#626262, 2-50 #949494,#121212, 51-74 d,#121212, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|17: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|18: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|19: 0-1 d,#444444, 2-6 #626262,#080808, 7-7 #bdbdbd,#080808, 8-74 #d8c8a8,#4a3a1e, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|20: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|21: 0-1 d,#444444, 2-6 #949494,#121212, 7-9 #d8c8a8,#4a3a1e, 10-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|22: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|23: 0-1 d,#444444, 2-6 #626262,#080808, 7-18 #bdbdbd,#080808, 19-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|24: 0-1 d,#444444, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|25: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|26: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|27: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|29: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+== snap stale grid=150x30 cursor=10,24
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/lookrange/cwd/look.txt Save Del NOR /tmp/pardes-snap/lookrange/cwd Del
+| 1 r.txt:3-5
+| 2 r.txt:7:4-9 look.txt r.txt
+| 3 r.txt:3:2-5:3
+| 4 r.txt:8:6-99:9
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/lookrange/cwd/r.txt Save Del
+| 2 bbbb
+| 3 cccc dccc
+| 4 dddd
+| 5 eeee
+| 6 ffff
+| 7 gg NEEDLE gg
+| 8 hhhh NEEDLE
+| 9 iiii
+|
+|
+|
+|
+|
+== style stale
+|0: 0-52 #949494,#121212, 53-149 d,#121212,
+|1: 0-1 d,#262626, 2-53 #949494,#121212, 54-74 d,#121212, 75-76 d,#262626, 77-114 #949494,#121212, 115-149 d,#121212,
+|2: 0-1 d,#444444, 2-6 #626262,#080808, 7-15 #bdbdbd,#080808, 16-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|3: 0-1 d,#444444, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|4: 0-1 d,#444444, 2-6 #626262,#080808, 7-19 #bdbdbd,#080808, 20-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|5: 0-1 d,#444444, 2-6 #626262,#080808, 7-20 #bdbdbd,#080808, 21-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|6: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|7: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|8: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|9: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|10: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|11: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|12: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|13: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|14: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|15: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|16: 0-1 d,#626262, 2-50 #949494,#121212, 51-74 d,#121212, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|17: 0-1 d,#121212, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|18: 0-1 d,#444444, 2-6 #626262,#080808, 7-15 #bdbdbd,#080808, 16-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|19: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|20: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|21: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|22: 0-1 d,#444444, 2-6 #626262,#080808, 7-18 #bdbdbd,#080808, 19-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|23: 0-1 d,#444444, 2-6 #626262,#080808, 7-11 #bdbdbd,#080808, 12-74 #d8c8a8,#4a3a1e, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|24: 0-1 d,#444444, 2-6 #949494,#121212, 7-10 #d8c8a8,#4a3a1e, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|25: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|26: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|27: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|29: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+== snap results grid=150x30 cursor=10,24
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/lookrange/cwd/look.txt Save Del NOR /tmp/pardes-snap/lookrange/cwd Del
+| 1 r.txt:3-5
+| 2 r.txt:7:4-9 look.txt r.txt
+| 3 r.txt:3:2-5:3
+| 4 r.txt:8:6-99:9
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/lookrange/cwd/r.txt Save Del
+| 2 bbbb
+| 3 cccc dccc
+| 4 dddd
+| 5 eeee
+| 6 ffff
+| 7 gg NEEDLE gg
+| 8 hhhh NEEDLE
+| 9 iiii
+|
+|
+| NOR /tmp/pardes-snap/lookrange/cwd/+Search Del
+| 1 r.txt:7:4-9 gg NEEDLE gg
+| 2 r.txt:8:6-11 hhhh NEEDLE
+== snap hit1 grid=150x30 cursor=15,22
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/lookrange/cwd/look.txt Save Del NOR /tmp/pardes-snap/lookrange/cwd Del
+| 1 r.txt:3-5
+| 2 r.txt:7:4-9 look.txt r.txt
+| 3 r.txt:3:2-5:3
+| 4 r.txt:8:6-99:9
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/lookrange/cwd/r.txt Save Del
+| 2 bbbb
+| 3 cccc dccc
+| 4 dddd
+| 5 eeee
+| 6 ffff
+| 7 gg NEEDLE gg
+| 8 hhhh NEEDLE
+| 9 iiii
+|
+|
+| NOR /tmp/pardes-snap/lookrange/cwd/+Search Del
+| 1 r.txt:7:4-9 gg NEEDLE gg
+| 2 r.txt:8:6-11 hhhh NEEDLE
+== style hit1
+|0: 0-52 #949494,#121212, 53-149 d,#121212,
+|1: 0-1 d,#262626, 2-53 #949494,#121212, 54-74 d,#121212, 75-76 d,#262626, 77-114 #949494,#121212, 115-149 d,#121212,
+|2: 0-1 d,#444444, 2-6 #626262,#080808, 7-15 #bdbdbd,#080808, 16-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|3: 0-1 d,#444444, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|4: 0-1 d,#444444, 2-6 #626262,#080808, 7-19 #bdbdbd,#080808, 20-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|5: 0-1 d,#444444, 2-6 #626262,#080808, 7-20 #bdbdbd,#080808, 21-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|6: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|7: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|8: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|9: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|10: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|11: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|12: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|13: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|14: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|15: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|16: 0-1 d,#626262, 2-50 #949494,#121212, 51-74 d,#121212, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|17: 0-1 d,#121212, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|18: 0-1 d,#444444, 2-6 #626262,#080808, 7-15 #bdbdbd,#080808, 16-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|19: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|20: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|21: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|22: 0-1 d,#444444, 2-6 #949494,#121212, 7-9 #bdbdbd,#080808, 10-15 #d8c8a8,#4a3a1e, 16-18 #bdbdbd,#080808, 19-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|23: 0-1 d,#444444, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|24: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|25: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|26: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|27: 0-1 d,#262626, 2-47 #949494,#121212, 48-74 d,#121212, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|29: 0-1 d,#121212, 2-6 #626262,#080808, 7-30 #bdbdbd,#080808, 31-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+== snap hit2 grid=150x30 cursor=17,22
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/lookrange/cwd/look.txt Save Del NOR /tmp/pardes-snap/lookrange/cwd Del
+| 1 r.txt:3-5
+| 2 r.txt:7:4-9 look.txt r.txt
+| 3 r.txt:3:2-5:3
+| 4 r.txt:8:6-99:9
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/lookrange/cwd/r.txt Save Del
+| 3 cccc dccc
+| 4 dddd
+| 5 eeee
+| 6 ffff
+| 7 gg NEEDLE gg
+| 8 hhhh NEEDLE
+| 9 iiii
+|
+|
+|
+| NOR /tmp/pardes-snap/lookrange/cwd/+Search Del
+| 1 r.txt:7:4-9 gg NEEDLE gg
+| 2 r.txt:8:6-11 hhhh NEEDLE
+== style hit2
+|0: 0-52 #949494,#121212, 53-149 d,#121212,
+|1: 0-1 d,#262626, 2-53 #949494,#121212, 54-74 d,#121212, 75-76 d,#262626, 77-114 #949494,#121212, 115-149 d,#121212,
+|2: 0-1 d,#444444, 2-6 #626262,#080808, 7-15 #bdbdbd,#080808, 16-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|3: 0-1 d,#444444, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|4: 0-1 d,#444444, 2-6 #626262,#080808, 7-19 #bdbdbd,#080808, 20-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|5: 0-1 d,#444444, 2-6 #626262,#080808, 7-20 #bdbdbd,#080808, 21-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|6: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|7: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|8: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|9: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|10: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|11: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|12: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|13: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|14: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|15: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|16: 0-1 d,#626262, 2-50 #949494,#121212, 51-74 d,#121212, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|17: 0-1 d,#121212, 2-6 #626262,#080808, 7-15 #bdbdbd,#080808, 16-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|18: 0-1 d,#121212, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|19: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|20: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|21: 0-1 d,#444444, 2-6 #626262,#080808, 7-18 #bdbdbd,#080808, 19-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|22: 0-1 d,#444444, 2-6 #949494,#121212, 7-11 #bdbdbd,#080808, 12-17 #d8c8a8,#4a3a1e, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|23: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|24: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|25: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|26: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|27: 0-1 d,#262626, 2-47 #949494,#121212, 48-74 d,#121212, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-30 #bdbdbd,#080808, 31-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|29: 0-1 d,#121212, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+== snap back grid=150x30 cursor=15,22
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/lookrange/cwd/look.txt Save Del NOR /tmp/pardes-snap/lookrange/cwd Del
+| 1 r.txt:3-5
+| 2 r.txt:7:4-9 look.txt r.txt
+| 3 r.txt:3:2-5:3
+| 4 r.txt:8:6-99:9
+|
+|
+|
+|
+|
+|
+|
+|
+|
+|
+| NOR /tmp/pardes-snap/lookrange/cwd/r.txt Save Del
+| 2 bbbb
+| 3 cccc dccc
+| 4 dddd
+| 5 eeee
+| 6 ffff
+| 7 gg NEEDLE gg
+| 8 hhhh NEEDLE
+| 9 iiii
+|
+|
+| NOR /tmp/pardes-snap/lookrange/cwd/+Search Del
+| 1 r.txt:7:4-9 gg NEEDLE gg
+| 2 r.txt:8:6-11 hhhh NEEDLE
+== style back
+|0: 0-52 #949494,#121212, 53-149 d,#121212,
+|1: 0-1 d,#262626, 2-53 #949494,#121212, 54-74 d,#121212, 75-76 d,#262626, 77-114 #949494,#121212, 115-149 d,#121212,
+|2: 0-1 d,#444444, 2-6 #626262,#080808, 7-15 #bdbdbd,#080808, 16-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|3: 0-1 d,#444444, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|4: 0-1 d,#444444, 2-6 #626262,#080808, 7-19 #bdbdbd,#080808, 20-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|5: 0-1 d,#444444, 2-6 #626262,#080808, 7-20 #bdbdbd,#080808, 21-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|6: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|7: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|8: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|9: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|10: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|11: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|12: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|13: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|14: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|15: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|16: 0-1 d,#626262, 2-50 #949494,#121212, 51-74 d,#121212, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|17: 0-1 d,#121212, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|18: 0-1 d,#444444, 2-6 #626262,#080808, 7-15 #bdbdbd,#080808, 16-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|19: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|20: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|21: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|22: 0-1 d,#444444, 2-6 #949494,#121212, 7-9 #bdbdbd,#080808, 10-15 #d8c8a8,#4a3a1e, 16-18 #bdbdbd,#080808, 19-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|23: 0-1 d,#444444, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|24: 0-1 d,#444444, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|25: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|26: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|27: 0-1 d,#262626, 2-47 #949494,#121212, 48-74 d,#121212, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|29: 0-1 d,#121212, 2-6 #626262,#080808, 7-30 #bdbdbd,#080808, 31-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
diff --git a/test/snapshots/lookrange.snap b/test/snapshots/lookrange.snap
new file mode 100644
index 00000000..d1a86e0c
--- /dev/null
+++ b/test/snapshots/lookrange.snap
@@ -0,0 +1,70 @@
+# RANGED LOOK PATHS. `path:LINE:COL` says where to PARK; a range says what to
+# SELECT, and it belongs to the PATH (config.range_sep) rather than to the
+# search that is merely the first thing writing one. So this script right-
+# clicks the three spellings as ordinary words sitting in a file:
+# r.txt:3-5 whole lines 3 through 5
+# r.txt:7:4-9 line 7, columns 4 through 9
+# r.txt:3:2-5:3 line 3 column 2 through line 5 column 3
+# ...and only then presses `/`, whose result rows are exactly this syntax —
+# which is how n/N step to a hit with the matched text selected.
+#
+# `snapstyle` is the assertion that matters: the grid TEXT after a ranged look
+# is the same text a plain `:LINE:COL` look leaves, so the selection only shows
+# in the styles.
+file r.txt aaaa\nbbbb\ncccc dccc\ndddd\neeee\nffff\ngg NEEDLE gg\nhhhh NEEDLE\niiii
+file look.txt r.txt:3-5\nr.txt:7:4-9\nr.txt:3:2-5:3\nr.txt:8:6-99:9
+start 30 150 look.txt
+wait 8000 r.txt:3-5
+stable 700 20000
+snap opened
+# --- form 1: whole lines. r.txt opens BELOW look.txt (an ordinary look) with
+# lines 3, 4 and 5 selected whole, terminators included — helix's own `x`.
+press right 10 3
+release right 10 3
+wait 10000 cccc dccc
+stable 700 15000
+snap wholelines
+snapstyle wholelines
+# --- form 2: one line, a column span. r.txt is open now, so this re-uses that
+# pane (focusPaneByPath) — the same route a `/` result row takes.
+press right 12 4
+release right 12 4
+stable 700 15000
+snap onelinespan
+snapstyle onelinespan
+# --- form 3: the general one, across both lines and columns
+press right 12 5
+release right 12 5
+stable 700 15000
+snap fullspan
+snapstyle fullspan
+# --- a STALE range: line 99 of a nine-line file, which is what a result row
+# looks like once the file has changed underneath it. It must CLAMP — no crash,
+# no garbage highlight — landing on the last cell that really exists.
+press right 12 6
+release right 12 6
+stable 700 15000
+snap stale
+snapstyle stale
+# --- and now the first consumer. The look above left r.txt focused, so `/`
+# arms on it: the rows it writes carry the match's span, and n/N therefore step
+# to each hit with the word itself selected.
+key /
+text NEEDLE
+key enter
+wait 10000 r.txt:7:4-9 gg NEEDLE
+stable 700 15000
+snap results
+key n
+stable 700 15000
+snap hit1
+snapstyle hit1
+key n
+stable 700 15000
+snap hit2
+snapstyle hit2
+# N walks back onto the first hit, still selected
+key N
+stable 700 15000
+snap back
+snapstyle back
diff --git a/test/snapshots/lsp.golden b/test/snapshots/lsp.golden
index 32d5b6d0..85c5c9ce 100644
--- a/test/snapshots/lsp.golden
+++ b/test/snapshots/lsp.golden
@@ -80,7 +80,7 @@
|
|
|
-== snap definition grid=120x40 cursor=10,4
+== snap definition grid=120x40 cursor=15,4
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/lsp/cwd/a.zig Save Del NOR /tmp/pardes-snap/lsp/cwd Del
| 1 const std = @import("std");
@@ -121,7 +121,7 @@
|
|
|
-== snap hover grid=120x40 cursor=10,4
+== snap hover grid=120x40 cursor=15,4
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/lsp/cwd/a.zig Save Del NOR /tmp/pardes-snap/lsp/cwd Del
| 1 const std = @import("std");
@@ -162,7 +162,7 @@
| NOR /tmp/pardes-snap/lsp/cwd/+Hover Del
| 1 fn helper(x: u32) u32
| 2 (fn (u32) u32)
-== snap symbols grid=120x40 cursor=10,4
+== snap symbols grid=120x40 cursor=15,4
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/lsp/cwd/a.zig Save Del NOR /tmp/pardes-snap/lsp/cwd Del
| 1 const std = @import("std");
@@ -197,13 +197,13 @@
|
|
| NOR /tmp/pardes-snap/lsp/cwd/+Search Del
-| 1 /tmp/pardes-snap/lsp/cwd/a.zig:1:7 std
-| 2 /tmp/pardes-snap/lsp/cwd/a.zig:3:4 helper fn helper(
-| 3 /tmp/pardes-snap/lsp/cwd/a.zig:7:8 main fn main() vo
+| 1 /tmp/pardes-snap/lsp/cwd/a.zig:1:7-9 std
+| 2 /tmp/pardes-snap/lsp/cwd/a.zig:3:4-9 helper fn helpe
+| 3 /tmp/pardes-snap/lsp/cwd/a.zig:7:8-11 main fn main()
| NOR /tmp/pardes-snap/lsp/cwd/+Hover Del
| 1 fn helper(x: u32) u32
| 2 (fn (u32) u32)
-== snap step grid=120x40 cursor=13,2
+== snap step grid=120x40 cursor=15,2
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/lsp/cwd/a.zig Save Del NOR /tmp/pardes-snap/lsp/cwd Del
| 1 const std = @import("std");
@@ -238,9 +238,9 @@
|
|
| NOR /tmp/pardes-snap/lsp/cwd/+Search Del
-| 1 /tmp/pardes-snap/lsp/cwd/a.zig:1:7 std
-| 2 /tmp/pardes-snap/lsp/cwd/a.zig:3:4 helper fn helper(
-| 3 /tmp/pardes-snap/lsp/cwd/a.zig:7:8 main fn main() vo
+| 1 /tmp/pardes-snap/lsp/cwd/a.zig:1:7-9 std
+| 2 /tmp/pardes-snap/lsp/cwd/a.zig:3:4-9 helper fn helpe
+| 3 /tmp/pardes-snap/lsp/cwd/a.zig:7:8-11 main fn main()
| NOR /tmp/pardes-snap/lsp/cwd/+Hover Del
| 1 fn helper(x: u32) u32
| 2 (fn (u32) u32)
@@ -279,9 +279,9 @@
|
|
| NOR /tmp/pardes-snap/lsp/cwd/+Search Del
-| 1 /tmp/pardes-snap/lsp/cwd/a.zig:1:7 std
-| 2 /tmp/pardes-snap/lsp/cwd/a.zig:3:4 helper fn helper(
-| 3 /tmp/pardes-snap/lsp/cwd/a.zig:7:8 main fn main() vo
+| 1 /tmp/pardes-snap/lsp/cwd/a.zig:1:7-9 std
+| 2 /tmp/pardes-snap/lsp/cwd/a.zig:3:4-9 helper fn helpe
+| 3 /tmp/pardes-snap/lsp/cwd/a.zig:7:8-11 main fn main()
| NOR /tmp/pardes-snap/lsp/cwd/+Hover Del
| 1 fn helper(x: u32) u32
| 2 (fn (u32) u32)
diff --git a/test/snapshots/lsp.snap b/test/snapshots/lsp.snap
index a1cc056c..79acaee8 100644
--- a/test/snapshots/lsp.snap
+++ b/test/snapshots/lsp.snap
@@ -21,7 +21,8 @@ release left 18 10
stable 400 5000
snap cursor
# gd on a call: exactly one location comes back, so it JUMPS rather than
-# opening a picker — the cursor lands on the definition's name token, line 3.
+# opening a picker — and lands SELECTING the definition's name token on line 3,
+# because ZLS answers with a range and a ranged row is one a look selects.
# The jumplist is pinned first, so ctrl-o comes back.
key g
key d
diff --git a/test/snapshots/lspdebug.golden b/test/snapshots/lspdebug.golden
index bb0fee41..67421629 100644
--- a/test/snapshots/lspdebug.golden
+++ b/test/snapshots/lspdebug.golden
@@ -43,7 +43,7 @@
|
|
|
-== snap ctrlclick grid=120x44 cursor=10,4
+== snap ctrlclick grid=120x44 cursor=15,4
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/lspdebug/cwd/z.zig Save Del NOR /tmp/pardes-snap/lspdebug/cwd Del
| 1 const std = @import("std");
diff --git a/test/snapshots/psearch.golden b/test/snapshots/psearch.golden
index 2bd9fc81..7456db00 100644
--- a/test/snapshots/psearch.golden
+++ b/test/snapshots/psearch.golden
@@ -88,10 +88,10 @@
|
|
| NOR /tmp/pardes-snap/psearch/cwd/+Search Del
-| 1 @p0:2:3 x MARK a
-| 2 @p0:4:3 x MARK b
-| 3 @p0:6:3 x MARK c
-== snap first grid=140x30 cursor=4,3
+| 1 @p0:2:3-6 x MARK a
+| 2 @p0:4:3-6 x MARK b
+| 3 @p0:6:3-6 x MARK c
+== snap first grid=140x30 cursor=7,3
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/psearch/cwd Del
|
@@ -119,14 +119,14 @@
|
|
| NOR /tmp/pardes-snap/psearch/cwd/+Search Del
-| 1 @p0:2:3 x MARK a
-| 2 @p0:4:3 x MARK b
-| 3 @p0:6:3 x MARK c
+| 1 @p0:2:3-6 x MARK a
+| 2 @p0:4:3-6 x MARK b
+| 3 @p0:6:3-6 x MARK c
== style first
|0: 0-52 #949494,#121212, 53-139 d,#121212,
|1: 0-1 d,#626262, 2-37 #949494,#121212, 38-139 d,#121212,
|2: 0-1 d,#444444, 2-139 #bdbdbd,#080808,
-|3: 0-1 d,#444444, 2-139 #bdbdbd,#080808,
+|3: 0-1 d,#444444, 2-3 #bdbdbd,#080808, 4-7 #d8c8a8,#4a3a1e, 8-139 #bdbdbd,#080808,
|4: 0-1 d,#444444, 2-139 #bdbdbd,#080808,
|5: 0-1 d,#444444, 2-139 #bdbdbd,#080808,
|6: 0-1 d,#444444, 2-139 #bdbdbd,#080808,
@@ -151,9 +151,9 @@
|25: 0-1 d,#444444, 2-139 #bdbdbd,#080808,
|26: 0-1 d,#262626, 2-45 #949494,#121212, 46-139 d,#121212,
|27: 0-1 d,#444444, 2-6 #626262,#080808, 7-139 #d8c8a8,#4a3a1e,
-|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-22 #bdbdbd,#080808, 23-139 d,#080808,
-|29: 0-1 d,#121212, 2-6 #626262,#080808, 7-22 #bdbdbd,#080808, 23-139 d,#080808,
-== snap second grid=140x30 cursor=4,5
+|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-24 #bdbdbd,#080808, 25-139 d,#080808,
+|29: 0-1 d,#121212, 2-6 #626262,#080808, 7-24 #bdbdbd,#080808, 25-139 d,#080808,
+== snap second grid=140x30 cursor=7,5
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/psearch/cwd Del
|
@@ -181,10 +181,10 @@
|
|
| NOR /tmp/pardes-snap/psearch/cwd/+Search Del
-| 1 @p0:2:3 x MARK a
-| 2 @p0:4:3 x MARK b
-| 3 @p0:6:3 x MARK c
-== snap back grid=140x30 cursor=4,3
+| 1 @p0:2:3-6 x MARK a
+| 2 @p0:4:3-6 x MARK b
+| 3 @p0:6:3-6 x MARK c
+== snap back grid=140x30 cursor=7,3
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/psearch/cwd Del
|
@@ -212,10 +212,10 @@
|
|
| NOR /tmp/pardes-snap/psearch/cwd/+Search Del
-| 1 @p0:2:3 x MARK a
-| 2 @p0:4:3 x MARK b
-| 3 @p0:6:3 x MARK c
-== snap nomatch grid=140x30 cursor=4,3
+| 1 @p0:2:3-6 x MARK a
+| 2 @p0:4:3-6 x MARK b
+| 3 @p0:6:3-6 x MARK c
+== snap nomatch grid=140x30 cursor=7,3
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/psearch/cwd Del
|
@@ -243,9 +243,9 @@
| NOR /tmp/pardes-snap/psearch/cwd/+Search Del
| 1
| NOR /tmp/pardes-snap/psearch/cwd/+Search Del
-| 1 @p0:2:3 x MARK a
-| 2 @p0:4:3 x MARK b
-| 3 @p0:6:3 x MARK c
+| 1 @p0:2:3-6 x MARK a
+| 2 @p0:4:3-6 x MARK b
+| 3 @p0:6:3-6 x MARK c
== snap ttyinert grid=140x30 cursor=4,8
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| TTY /tmp/pardes-snap/psearch/cwd Del
@@ -274,10 +274,10 @@
| NOR /tmp/pardes-snap/psearch/cwd/+Search Del
| 1
| NOR /tmp/pardes-snap/psearch/cwd/+Search Del
-| 1 @p0:2:3 x MARK a
-| 2 @p0:4:3 x MARK b
-| 3 @p0:6:3 x MARK c
-== snap rightsearch grid=140x30 cursor=4,3
+| 1 @p0:2:3-6 x MARK a
+| 2 @p0:4:3-6 x MARK b
+| 3 @p0:6:3-6 x MARK c
+== snap rightsearch grid=140x30 cursor=7,3
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/psearch/cwd Del
|
@@ -299,12 +299,12 @@
|
|
| NOR /tmp/pardes-snap/psearch/cwd/+Search Del
-| 1 @p0:2:3 x MARK a
-| 2 @p0:4:3 x MARK b
-| 3 @p0:6:3 x MARK c
+| 1 @p0:2:3-6 x MARK a
+| 2 @p0:4:3-6 x MARK b
+| 3 @p0:6:3-6 x MARK c
| NOR /tmp/pardes-snap/psearch/cwd/+Search Del
| 1
| NOR /tmp/pardes-snap/psearch/cwd/+Search Del
-| 1 @p0:2:3 x MARK a
-| 2 @p0:4:3 x MARK b
-| 3 @p0:6:3 x MARK c
+| 1 @p0:2:3-6 x MARK a
+| 2 @p0:4:3-6 x MARK b
+| 3 @p0:6:3-6 x MARK c
diff --git a/test/snapshots/psearch.snap b/test/snapshots/psearch.snap
index fb721c7d..e2ea1aea 100644
--- a/test/snapshots/psearch.snap
+++ b/test/snapshots/psearch.snap
@@ -1,9 +1,10 @@
# `/` 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.
+# behind it, so its tag has no Save — and point at `@p0:LINE:COL-ENDCOL`, 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 and selecting the span the row names.
# PLACEMENT, and this script is the proof: an output buffer is NOT a document
# — it is the result list of the pane that asked for it — so even here, with no
# doc pane in the session for it to join, it does NOT take a column of its own.
@@ -34,8 +35,9 @@ 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
+# n looks result 1: the terminal's cursor lands on that scrollback line, on
+# the matched SPAN (cols 3..6, past the leading "x ") — not the start of the
+# line, and selected rather than merely parked on
key n
stable 700 15000
snap first
diff --git a/test/snapshots/rsearch.golden b/test/snapshots/rsearch.golden
index ee2a1cb4..39b9f57d 100644
--- a/test/snapshots/rsearch.golden
+++ b/test/snapshots/rsearch.golden
@@ -58,8 +58,8 @@
|
|
| NOR /tmp/pardes-snap/rsearch/cwd/+Search Del
-| 1 code.txt:1:5 run count_x now
-| 2 code.txt:3:1 count_x again
+| 1 code.txt:1:5-11 run count_x now
+| 2 code.txt:3:1-7 count_x again
== snap select grid=180x30 cursor=7,2
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/rsearch/cwd/code.txt Save Del NOR /tmp/pardes-snap/rsearch/cwd Del NOR /tmp/pardes-snap/rsearch/cwd Del
@@ -87,10 +87,10 @@
|
|
| NOR /tmp/pardes-snap/rsearch/cwd/+Search Del
-| 1 code.txt:4:1 pick two words
+| 1 code.txt:4:1-8 pick two words
| NOR /tmp/pardes-snap/rsearch/cwd/+Search Del
-| 1 code.txt:1:5 run count_x now
-| 2 code.txt:3:1 count_x again
+| 1 code.txt:1:5-11 run count_x now
+| 2 code.txt:3:1-7 count_x again
== snap path-open grid=180x30 cursor=7,16
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/rsearch/cwd/code.txt Save Del NOR /tmp/pardes-snap/rsearch/cwd Del NOR /tmp/pardes-snap/rsearch/cwd Del
@@ -118,7 +118,7 @@
|
|
| NOR /tmp/pardes-snap/rsearch/cwd/+Search Del
-| 1 code.txt:4:1 pick two words
+| 1 code.txt:4:1-8 pick two words
| NOR /tmp/pardes-snap/rsearch/cwd/+Search Del
-| 1 code.txt:1:5 run count_x now
-| 2 code.txt:3:1 count_x again
+| 1 code.txt:1:5-11 run count_x now
+| 2 code.txt:3:1-7 count_x again
diff --git a/test/snapshots/rsearch.snap b/test/snapshots/rsearch.snap
index 738afc23..a6dcd167 100644
--- a/test/snapshots/rsearch.snap
+++ b/test/snapshots/rsearch.snap
@@ -28,7 +28,7 @@ snap opened
# 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:5 run count_x
+wait 10000 code.txt:1:5-11 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:1 pick two
+wait 10000 code.txt:4:1-8 pick two
stable 700 15000
snap select
# right-CLICK the path `sub/dep.txt:3` (line 2, col 18): isFileChar keeps / . :