diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/lspbench.zig | 6 | ||||
| -rw-r--r-- | test/snapshots/lsp.golden | 18 | ||||
| -rw-r--r-- | test/snapshots/lspcomplete.golden | 20 | ||||
| -rw-r--r-- | test/snapshots/lsprelpath.golden | 245 | ||||
| -rw-r--r-- | test/snapshots/lsprelpath.snap | 87 |
5 files changed, 355 insertions, 21 deletions
diff --git a/test/lspbench.zig b/test/lspbench.zig index b294e60c..329e5743 100644 --- a/test/lspbench.zig +++ b/test/lspbench.zig @@ -108,8 +108,10 @@ const anchors = [_]Anchor{ // keypress looks like: the file does not parse and the switch is not in // the tree at all. `verdigris` appears only on the enum member's own // line, so a row carrying it came from the DEFINITION and not from the - // line the cursor sits on. - .{ .file = "test/lspfixture/dotcomplete.zig", .needle = "return switch (s) {\n .", .at = 29, .kind = .completion, .expect = "verdigris" }, + // line the cursor sits on — and it has to appear TWICE, because a + // completion row carries the candidate's own name (the word that would go + // after the dot) before the declaration line it was read off. + .{ .file = "test/lspfixture/dotcomplete.zig", .needle = "return switch (s) {\n .", .at = 29, .kind = .completion, .expect = "verdigris verdigris," }, // ...and the same dot on a line that is ALSO missing its terminator, // which is one parse error repaired or not. This is the probe that // catches a repair chosen by error count rather than by whether the dot diff --git a/test/snapshots/lsp.golden b/test/snapshots/lsp.golden index 48577a7f..759e6cad 100644 --- a/test/snapshots/lsp.golden +++ b/test/snapshots/lsp.golden @@ -197,9 +197,9 @@ | | | /tmp/pardes-snap/lsp/cwd/+Search New Del -| 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 helper(x: u32) u32 -| 3 /tmp/pardes-snap/lsp/cwd/a.zig:7:8-11 main fn main() void +| 1 a.zig:1:7-9 std +| 2 a.zig:3:4-9 helper fn helper(x: u32) u32 +| 3 a.zig:7:8-11 main fn main() void | /tmp/pardes-snap/lsp/cwd/+Hover New Del | 1 fn helper(x: u32) u32 | 2 (fn (u32) u32) @@ -238,9 +238,9 @@ | | | /tmp/pardes-snap/lsp/cwd/+Search New Del -| 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 helper(x: u32) u32 -| 3 /tmp/pardes-snap/lsp/cwd/a.zig:7:8-11 main fn main() void +| 1 a.zig:1:7-9 std +| 2 a.zig:3:4-9 helper fn helper(x: u32) u32 +| 3 a.zig:7:8-11 main fn main() void | /tmp/pardes-snap/lsp/cwd/+Hover New Del | 1 fn helper(x: u32) u32 | 2 (fn (u32) u32) @@ -279,9 +279,9 @@ | | | /tmp/pardes-snap/lsp/cwd/+Search New Del -| 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 helper(x: u32) u32 -| 3 /tmp/pardes-snap/lsp/cwd/a.zig:7:8-11 main fn main() void +| 1 a.zig:1:7-9 std +| 2 a.zig:3:4-9 helper fn helper(x: u32) u32 +| 3 a.zig:7:8-11 main fn main() void | /tmp/pardes-snap/lsp/cwd/+Hover New Del | 1 fn helper(x: u32) u32 | 2 (fn (u32) u32) diff --git a/test/snapshots/lspcomplete.golden b/test/snapshots/lspcomplete.golden index 51c11c66..8a76f824 100644 --- a/test/snapshots/lspcomplete.golden +++ b/test/snapshots/lspcomplete.golden @@ -201,8 +201,8 @@ | | | /tmp/pardes-snap/lspcomplete/cwd/+Search New Del -| 1 /tmp/pardes-snap/lspcomplete/cwd/a.zig:2:5-13 verdigris, -| 2 /tmp/pardes-snap/lspcomplete/cwd/a.zig:3:5-12 cinnabar, +| 1 a.zig:2:5-13 verdigris verdigris, +| 2 a.zig:3:5-12 cinnabar cinnabar, == snap refill grid=120x40 cursor=16,9 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill |^ /tmp/pardes-snap/lspcomplete/cwd/a.zig Save New Del @@ -242,8 +242,8 @@ | | | /tmp/pardes-snap/lspcomplete/cwd/+Search New Del -| 1 /tmp/pardes-snap/lspcomplete/cwd/a.zig:2:5-13 verdigris, -| 2 /tmp/pardes-snap/lspcomplete/cwd/a.zig:3:5-12 cinnabar, +| 1 a.zig:2:5-13 verdigris verdigris, +| 2 a.zig:3:5-12 cinnabar cinnabar, == snap step grid=120x40 cursor=19,3 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill | /tmp/pardes-snap/lspcomplete/cwd/a.zig Save New Del @@ -283,8 +283,8 @@ | | | /tmp/pardes-snap/lspcomplete/cwd/+Search New Del -| 1 /tmp/pardes-snap/lspcomplete/cwd/a.zig:2:5-13 verdigris, -| 2 /tmp/pardes-snap/lspcomplete/cwd/a.zig:3:5-12 cinnabar, +| 1 a.zig:2:5-13 verdigris verdigris, +| 2 a.zig:3:5-12 cinnabar cinnabar, == snap txtindent grid=120x40 cursor=15,2 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill |^ /tmp/pardes-snap/lspcomplete/cwd/notes.txt Save New Del @@ -343,8 +343,8 @@ | | | /tmp/pardes-snap/lspcomplete/cwd/+Search New Del -| 1 /tmp/pardes-snap/lspcomplete/cwd/c.zig:2:5-13 verdigris, -| 2 /tmp/pardes-snap/lspcomplete/cwd/c.zig:3:5-12 cinnabar, +| 1 c.zig:2:5-13 verdigris verdigris, +| 2 c.zig:3:5-12 cinnabar cinnabar, == snap nobrace grid=100x18 cursor=16,9 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill |^ /tmp/pardes-snap/lspcomplete/cwd/d.zig Save New Del @@ -362,5 +362,5 @@ | | | /tmp/pardes-snap/lspcomplete/cwd/+Search New Del -| 1 /tmp/pardes-snap/lspcomplete/cwd/d.zig:2:5-13 verdigris, -| 2 /tmp/pardes-snap/lspcomplete/cwd/d.zig:3:5-12 cinnabar, +| 1 d.zig:2:5-13 verdigris verdigris, +| 2 d.zig:3:5-12 cinnabar cinnabar, diff --git a/test/snapshots/lsprelpath.golden b/test/snapshots/lsprelpath.golden new file mode 100644 index 00000000..885860b3 --- /dev/null +++ b/test/snapshots/lsprelpath.golden @@ -0,0 +1,245 @@ +== snap absrow grid=100x34 cursor=16,6 +|New Newcol Find Grep Help Tutor Dump NextColor Debug Kill +|^ /tmp/pardes-snap/lsprelpath/cwd/sub/parent.zig Save New Del +| 1 const shade = @import("../shade.zig"); +| 2 +| 3 pub fn pick(s: shade.Shade) u8 { +| 4 return switch (s) { +| 5 . +| 6 }; +| 7 } +| 8 +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| /tmp/pardes-snap/lsprelpath/cwd/sub/+Search New Del +| 1 /tmp/pardes-snap/lsprelpath/cwd/shade.zig:2:5-13 verdigris verdigris, +| 2 /tmp/pardes-snap/lsprelpath/cwd/shade.zig:3:5-12 cinnabar cinnabar, +== snap abslook grid=100x34 cursor=16,6 +|New Newcol Find Grep Help Tutor Dump NextColor Debug Kill +| /tmp/pardes-snap/lsprelpath/cwd/sub/parent.zig Save New Del +| 1 const shade = @import("../shade.zig"); +| 2 +| 3 pub fn pick(s: shade.Shade) u8 { +| 4 return switch (s) { +| 5 . +| 6 }; +| 7 } +| 8 +| +| +| +| +| +| +| /tmp/pardes-snap/lsprelpath/cwd/shade.zig Save New Del +| 1 pub const Shade = enum { +| 2 verdigris, +| 3 cinnabar, +| 4 }; +| 5 +| +| +| +| +| +| +| +| +| +| /tmp/pardes-snap/lsprelpath/cwd/sub/+Search New Del +| 1 /tmp/pardes-snap/lsprelpath/cwd/shade.zig:2:5-13 verdigris verdigris, +| 2 /tmp/pardes-snap/lsprelpath/cwd/shade.zig:3:5-12 cinnabar cinnabar, +== style abslook +|0: 0-56 #949494,#121212, 57-99 d,#121212, +|1: 0-1 #ffffff,#626262, 2-79 #949494,#121212, 80-99 d,#121212, +|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-20 #bdbdbd,#080808, 21-27 #cf87e8,#080808,b 28-28 #bdbdbd,#080808, 29-42 #e3c78a,#080808, 43-44 #bdbdbd,#080808, 45-99 d,#080808, +|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-12 #cf87e8,#080808,b 13-38 #bdbdbd,#080808, 39-99 d,#080808, +|5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-16 #cf87e8,#080808,b 17-17 #bdbdbd,#080808, 18-23 #cf87e8,#080808,b 24-29 #bdbdbd,#080808, 30-99 d,#080808, +|6: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-15 #bdbdbd,#080808, 16-99 d,#080808, +|7: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-99 d,#080808, +|8: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-7 #bdbdbd,#080808, 8-99 d,#080808, +|9: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|10: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|11: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|12: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|13: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|14: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|15: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|16: 0-1 #ffffff,#262626, 2-79 #949494,#121212, 80-99 d,#121212, +|17: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-24 #bdbdbd,#080808, 25-28 #cf87e8,#080808,b 29-30 #bdbdbd,#080808, 31-99 d,#080808, +|18: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-19 #080808,#80a0ff, 20-20 #bdbdbd,#080808, 21-99 d,#080808, +|19: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-19 #bdbdbd,#080808, 20-99 d,#080808, +|20: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-8 #bdbdbd,#080808, 9-99 d,#080808, +|21: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|22: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|23: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|25: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|26: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|27: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|28: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|29: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|30: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|31: 0-1 #ffffff,#262626, 2-79 #949494,#121212, 80-99 d,#121212, +|32: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 #080808,#80a0ff, +|33: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #bdbdbd,#080808, 75-99 d,#080808, +== snap subrow grid=100x34 cursor=16,6 +|New Newcol Find Grep Help Tutor Dump NextColor Debug Kill +|^ /tmp/pardes-snap/lsprelpath/cwd/sub/subdir.zig Save New Del +| 1 const tint = @import("inner/tint.zig"); +| 2 +| 3 pub fn hue(t: tint.Tint) u8 { +| 4 return switch (t) { +| 5 . +| 6 }; +| 7 } +| 8 +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| /tmp/pardes-snap/lsprelpath/cwd/sub/+Search New Del +| 1 inner/tint.zig:2:5-9 ochre ochre, +| 2 inner/tint.zig:3:5-10 indigo indigo, +== snap sublook grid=100x34 cursor=16,6 +|New Newcol Find Grep Help Tutor Dump NextColor Debug Kill +| /tmp/pardes-snap/lsprelpath/cwd/sub/subdir.zig Save New Del +| 1 const tint = @import("inner/tint.zig"); +| 2 +| 3 pub fn hue(t: tint.Tint) u8 { +| 4 return switch (t) { +| 5 . +| 6 }; +| 7 } +| 8 +| +| +| +| +| +| +| /tmp/pardes-snap/lsprelpath/cwd/sub/inner/tint.zig Save New Del +| 1 pub const Tint = enum { +| 2 ochre, +| 3 indigo, +| 4 }; +| 5 +| +| +| +| +| +| +| +| +| +| /tmp/pardes-snap/lsprelpath/cwd/sub/+Search New Del +| 1 inner/tint.zig:2:5-9 ochre ochre, +| 2 inner/tint.zig:3:5-10 indigo indigo, +== style sublook +|0: 0-56 #949494,#121212, 57-99 d,#121212, +|1: 0-1 #ffffff,#626262, 2-79 #949494,#121212, 80-99 d,#121212, +|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-19 #bdbdbd,#080808, 20-26 #cf87e8,#080808,b 27-27 #bdbdbd,#080808, 28-43 #e3c78a,#080808, 44-45 #bdbdbd,#080808, 46-99 d,#080808, +|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-12 #cf87e8,#080808,b 13-35 #bdbdbd,#080808, 36-99 d,#080808, +|5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-16 #cf87e8,#080808,b 17-17 #bdbdbd,#080808, 18-23 #cf87e8,#080808,b 24-29 #bdbdbd,#080808, 30-99 d,#080808, +|6: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-15 #bdbdbd,#080808, 16-99 d,#080808, +|7: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-99 d,#080808, +|8: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-7 #bdbdbd,#080808, 8-99 d,#080808, +|9: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|10: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|11: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|12: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|13: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|14: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|15: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|16: 0-1 #ffffff,#262626, 2-79 #949494,#121212, 80-99 d,#121212, +|17: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-23 #bdbdbd,#080808, 24-27 #cf87e8,#080808,b 28-29 #bdbdbd,#080808, 30-99 d,#080808, +|18: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-15 #080808,#80a0ff, 16-16 #bdbdbd,#080808, 17-99 d,#080808, +|19: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-99 d,#080808, +|20: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-8 #bdbdbd,#080808, 9-99 d,#080808, +|21: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|22: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|23: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|25: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|26: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|27: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|28: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|29: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|30: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808, +|31: 0-1 #ffffff,#262626, 2-79 #949494,#121212, 80-99 d,#121212, +|32: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 #080808,#80a0ff, +|33: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-43 #bdbdbd,#080808, 44-99 d,#080808, +== snap clicked grid=100x34 cursor=16,19 +|New Newcol Find Grep Help Tutor Dump NextColor Debug Kill +| /tmp/pardes-snap/lsprelpath/cwd/sub/subdir.zig Save New Del +| 1 const tint = @import("inner/tint.zig"); +| 2 +| 3 pub fn hue(t: tint.Tint) u8 { +| 4 return switch (t) { +| 5 . +| 6 }; +| 7 } +| 8 +| +| +| +| +| +| +| /tmp/pardes-snap/lsprelpath/cwd/sub/inner/tint.zig Save New Del +| 1 pub const Tint = enum { +| 2 ochre, +| 3 indigo, +| 4 }; +| 5 +| +| +| +| +| +| +| +| +| +| /tmp/pardes-snap/lsprelpath/cwd/sub/+Search New Del +| 1 inner/tint.zig:2:5-9 ochre ochre, +| 2 inner/tint.zig:3:5-10 indigo indigo, diff --git a/test/snapshots/lsprelpath.snap b/test/snapshots/lsprelpath.snap new file mode 100644 index 00000000..dce26d1e --- /dev/null +++ b/test/snapshots/lsprelpath.snap @@ -0,0 +1,87 @@ +# What a language row SPELLS its path as, and that both spellings still LOOK. +# +# A row is written relative to the directory of the file the query was asked +# about (lsp.rel, fed from Req.root) when the answer lives UNDER that directory, +# and keeps its full absolute path when it does not — a `gr` list was otherwise +# the same forty-character prefix repeated down the pane with the part you came +# to read pushed off the right edge, and a path outside the tree has nothing +# short to be called. +# +# lspcomplete.snap already covers the easy middle case, a candidate in the SAME +# directory, which shortens to a bare basename. The two that a prefix strip can +# actually get wrong are here, one app each: +# +# PARENT the enum is one level UP from the asking file, so nothing is +# stripped and the row carries `/tmp/.../cwd/shade.zig`. This is +# the case that must NOT become `../shade.zig`. +# SUBDIRECTORY the enum is one level DOWN, so the strip leaves a path with a +# separator still in it — `inner/tint.zig`, not `tint.zig`. A +# strip that took the basename instead would produce a row that +# resolves to nothing. +# +# `n` is the assertion in both, not the row text: it looks row 1 and the right +# file opens with the member SELECTED on its own line. The style capture is +# where that selection shows, because focus goes back to the pane that asked, +# so the opened pane's cursor is not in the snap header. +dirmk sub +dirmk sub/inner +file shade.zig pub const Shade = enum {\n verdigris,\n cinnabar,\n};\n +file sub/inner/tint.zig pub const Tint = enum {\n ochre,\n indigo,\n};\n +file sub/parent.zig const shade = @import("../shade.zig");\n\npub fn pick(s: shade.Shade) u8 {\n return switch (s) {\n \n };\n}\n +file sub/subdir.zig const tint = @import("inner/tint.zig");\n\npub fn hue(t: tint.Tint) u8 {\n return switch (t) {\n \n };\n}\n +# ---- PARENT: outside the asking file's tree, so the row stays absolute ---- +start 34 100 sub/parent.zig +wait 8000 fn pick +stable 700 20000 +# file line 5 (grid row 6, 1-based click row 7) is the switch's empty body +press left 8 7 +release left 8 7 +stable 400 5000 +key i +key end +text . +stable 400 5000 +key tab +wait 15000 cwd/shade.zig:2: +stable 700 15000 +snap absrow +key esc +settle 100 +# An absolute row has to keep resolving — it is the spelling every row had +# before this, and the one every hit outside the tree still has. +key n +stable 700 15000 +snap abslook +snapstyle abslook +# ---- SUBDIRECTORY: under it, so the strip leaves `inner/tint.zig` ---- +start 34 100 sub/subdir.zig +wait 8000 fn hue +stable 700 20000 +press left 8 7 +release left 8 7 +stable 400 5000 +key i +key end +text . +stable 400 5000 +key tab +wait 15000 inner/tint.zig:2: +stable 700 15000 +snap subrow +key esc +settle 100 +key n +stable 700 15000 +snap sublook +snapstyle sublook +# The mouse spelling, on the OTHER row (grid row 33, 1-based click row 34). A +# right click expands to the file-ish word under the cursor +# (config.wordBounds), which has to take `inner/tint.zig:3:5-10` WHOLE — the +# separator inside a stripped path is a file char, so the scan runs back over +# `inner/` and stops on the space of the line-number prefix. A look focuses +# what it opens, so the header's cursor is the assertion: the end of `indigo` +# on line 3 of tint.zig. +press right 12 34 +release right 12 34 +stable 700 15000 +snap clicked |
