# 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