summaryrefslogtreecommitdiff
path: root/docs/lsp.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/lsp.md')
-rw-r--r--docs/lsp.md17
1 files changed, 10 insertions, 7 deletions
diff --git a/docs/lsp.md b/docs/lsp.md
index 097386e6..bce9b2cc 100644
--- a/docs/lsp.md
+++ b/docs/lsp.md
@@ -61,17 +61,20 @@ sub/file.zig:LINE:COL-ENDCOL text
1-based line and column. The second form carries the answer's
RANGE where the protocol gave one on a single line (a token, a symbol's name),
and a look on it SELECTS that span rather than parking at its first cell — so
-`gd` lands on the whole name and `gr` steps references with each one
-highlighted. This is the format `look.zig` already resolves, `runSearch`
-already produces and `n`/`N` already step — so:
+`gd` lands on the whole name, and a `gr` reference stepped to with `n`/`N` and
+opened with Enter arrives with the reference itself selected. This is the
+format `look.zig` already resolves, `runSearch` already produces and `n`/`N`
+already walk — so:
- **one row from a goto** → jump straight there (`lookAt`)
-- **several rows** → an output buffer, which `n`/`N` walk
+- **several rows** → an output buffer, which `n`/`N` walk: a step SELECTS a row
+ and Enter opens it
which means helix's multi-result picker required **no picker code at all**. The
`+Search` buffer *is* the picker. Non-location answers (`hover`, `code_action`,
-`format`) open `+Hover`/`+Lsp` instead and do not arm the stepper — `n` over a
-documentation blurb would step to nowhere.
+`format`) open `+Hover`/`+Lsp` instead, which are prose and not places — `n`/`N`
+find nothing look-able in a documentation blurb and walk straight past it to the
+next pane on the ring.
Rename is deliberately the one exception to rows as presentation. The backend
emits `@edit START END` records through `lsp.edit()`, using half-open byte
@@ -98,7 +101,7 @@ chain says neither, and stops being true the moment the row is read anywhere but
beside its own buffer. `test/snapshots/lsprelpath.snap` pins both directions end
to end — the enum one level up (absolute row) and one level down (`inner/tint.zig`,
a stripped path that still has a separator in it), each with the `n` step that
-opens it, plus a right click.
+selects it and the Enter that opens it, plus a right click.
This is the rule `look.grep` already follows for its own rows (`look.zig`, the
`shown` computation), written a second time; the two are now the same function