1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# The protocol client end to end, against the deterministic mock server the
# harness pins via PARDES_LSP_RS (test/lspmock.zig). What this exercises is
# everything BETWEEN the keymap and the analyser: spawn, handshake, the reader
# thread, $/progress narration onto the transient message row, and the
# location shapes coming back as +Search rows.
# gd on a cross-file Location -> a look: lib.rs opens with `add` selected,
# and the message row still carries the server's settled state
# ("lsp lspmock: ready") because nothing has cleared it yet.
# gr -> sorted rows, selecting the next occurrence; n/N continue there.
file main.rs mod lib;\n\nfn main() {\n let x = add(1, 2);\n let y = add(3, 4);\n let _ = x + y;\n}\n
file lib.rs // mock fixture\npub fn add(a: i32, b: i32) -> i32 {\n a + b\n}\n
start 25 100 main.rs
wait 8000 add(1, 2)
stable 700 20000
# cursor into the first `add` call, then helix's goto-definition
press left 13 6
release left 13 6
key g
key d
wait 10000 pub fn add
stable 700 15000
snap gd-jumped
# references from the definition the look landed on (cursor sits on `add`)
key g
key r
wait 10000 add(3, 4)
stable 700 15000
snap gr-list
# step from the selected middle row to the last hit, then return
key n
key enter
stable 700 15000
snap gr-opened
key N
key enter
stable 700 15000
snap gr-back
|