lsp-guidelisted
Install: claude install-skill daiminking2/router
# Using the lsp tool
The `lsp` tool answers *semantic* questions through the language's own server:
it resolves through imports, types, and aliases, where grep only matches text.
Reach for it whenever the question is about a **symbol**; keep grep for plain
strings, comments, and file types no server supports.
## Operations
| Operation | Answers | Needs |
|---|---|---|
| `definition` | where the symbol at a position is defined | `path`, `line`, `column` |
| `references` | every place the symbol at a position is used | `path`, `line`, `column` |
| `hover` | type signature + docs for the symbol at a position | `path`, `line`, `column` |
| `documentSymbol` | the outline (types, functions, methods) of one file | `path` |
| `diagnostics` | compiler/type errors and warnings for one file | `path` |
Positions are 1-based, and `column` must point **at the identifier** (its first
character works). All paths resolve against the working directory.
## Recipes
**"Where is X defined?"** — from any usage site of X:
`{"operation": "definition", "path": "<file>", "line": <L>, "column": <C>}`.
Don't know a usage site? Find one first (see next recipe's step 1).
**"Everywhere X is used"** — two steps, always:
1. Locate the declaration: `rg -n --column '\bX\b'` (the `--column` output is
exactly the coordinate the next call needs), or `documentSymbol` when you
already know the file.
2. `{"operation": "references", "path": "<decl file>", "line": <L>, "column": <C>}`.
A grep hit list is