LSP plugins need navigation tools, not just diagnostics

Resolved 💬 14 comments Opened Jan 7, 2026 by nazq Closed Feb 23, 2026

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>

View original on GitHub ↗

This issue has 14 comments on GitHub. Read the full discussion on GitHub ↗