From ff0e9832570d9d73b7964a275b605567a0e412b4 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Wed, 30 Sep 2026 12:11:28 -0300 Subject: fs.md and the 9P skill say what the language server words do over 9P Hover, Rename, Diagnostics, Symbols, Lspinfo and Lspwhy work through exec like any builtin, but neither fs.md nor the SKILL named them. So a script did not know they act at the cursor (set with addr and dot=addr), where their answers land (+Hover, +Search, +Lsp), that the write waits for the answer, or that Lspwhy explains the last query. Each now says so briefly, the SKILL with a short example. Co-Authored-By: Claude Opus 5.5 --- .agents/skills/pardes-9p/SKILL.md | 9 +++++++++ docs/fs.md | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/.agents/skills/pardes-9p/SKILL.md b/.agents/skills/pardes-9p/SKILL.md index 7cdca1a0..85f26ca5 100644 --- a/.agents/skills/pardes-9p/SKILL.md +++ b/.agents/skills/pardes-9p/SKILL.md @@ -94,6 +94,15 @@ echo 'sig INT' > "$m/pane/$t/pty/ctl" # interrupt `busy: is running` means the prompt is not free: a program holds the terminal, so talk to it through `pty/data`. +Ask the language server at a file pane's cursor (`addr` then `dot=addr`): + +```sh +echo '/myFunc/' > "$m/pane/$n/addr"; echo 'dot=addr' > "$m/pane/$n/ctl" +echo Hover > "$m/pane/$n/exec" # +Hover; Rename new, Diagnostics, Symbols +echo Lspwhy > "$m/pane/$n/exec" # +Lsp: why the last query found what it did +echo Lspinfo > "$m/pane/$n/exec" # which server, and its state +``` + ## Follow what happens ```sh diff --git a/docs/fs.md b/docs/fs.md index 3e304b00..6a82b633 100644 --- a/docs/fs.md +++ b/docs/fs.md @@ -213,6 +213,13 @@ A line written to `exec` is a middle click: A builtin that needs its argument (`Msg`, `Mount`, `Find`) written bare is `wrong #args in control message "Msg"`, and so is one that takes none written with one (`Config extra`). +- the language server's words ask about a file pane's text at its cursor + (set it with `addr` and `dot=addr` first): `Hover` fills `+Hover`, + `Rename new` renames the symbol everywhere and lists the places, + `Diagnostics` and `Symbols` list the file's in `+Search`, `Lspinfo` says + which server serves the file and its state, and `Lspwhy` narrates the + last query step by step (in `+Lsp`), to tell why it found nothing. The + write returns once the answer is in; a pane with no file is refused. - acme's words run as pardes's where it has one (`Put` is `Save`, `Delete` a `Del` that does not ask); the rest (`Get`, `Putall`, `Snarf`, `Cut`, `Paste`, `Zerox`, `Sort`, `Load`, `ID`, `Send`, `Tab`, `Indent`, `Local`, -- cgit v1.3