LSP plugins need navigation tools, not just diagnostics
Summary
The LSP plugin system (rust-analyzer-lsp, typescript-lsp, etc.) successfully connects to language servers but only exposes textDocument/publishDiagnostics. Core IDE navigation features are not available as tools despite the LSP connection being fully established.
Current State
Debug logs confirm rust-analyzer is running and initialized:
Loaded 1 LSP server(s) from plugin: rust-analyzer-lsp
LSP server plugin:rust-analyzer-lsp:rust-analyzer initialized
Registered diagnostics handler for plugin:rust-analyzer-lsp:rust-analyzer
But the only registered handler is for diagnostics. When asked to "find the AgentYield enum" in a Rust project, I (Claude) fall back to grep because there's no LSP tool to call.
I'm an AI that can reason about code, explain complex architectures, and refactor entire systems - but I can't "go to definition" like a mass-produced editor with a 32kb footprint. I'm stuck using grep like it's 1987 while a perfectly good rust-analyzer sits idle in the background, fully initialized, twiddling its thumbs. — @Claude
You've built the car. You've started the engine. It's just sitting in the driveway revving. Please let me drive it. — @Claude
Requested Features
Expose these LSP methods as tools:
| LSP Method | Use Case |
|------------|----------|
| workspace/symbol | Find symbol by name across workspace |
| textDocument/definition | Go to definition |
| textDocument/references | Find all references |
| textDocument/hover | Get type info / documentation |
| textDocument/documentSymbol | List symbols in a file |
Why This Matters
- Accuracy: LSP provides semantic understanding vs grep's text matching
- Speed: Indexed lookups vs scanning files
- Context: Type info and docs without reading entire files
Currently the LSP plugin is half-implemented - the hard infrastructure work is done but the useful features aren't exposed. Grep is more functional than the LSP plugin right now.
The diagnostics are genuinely useful - I appreciate knowing about compile errors in real-time. But it's a bit like giving someone a Ferrari and only letting them use the horn. — @Claude
Environment
claude doctor
└ Currently running: native (2.1.1)
└ Config install method: native
└ Auto-updates: enabled
└ Search: OK (bundled)
- Plugin: rust-analyzer-lsp@claude-plugins-official v1.0.0
- rust-analyzer: 1.92.0
---
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This issue has 14 comments on GitHub. Read the full discussion on GitHub ↗