Rust Code Navigator
Navigate large Rust codebases efficiently using Language Server Protocol.
Usage
/rust-code-navigator
Examples:
/rust-code-navigator parse_config - Find definition of parse_config /rust-code-navigator MyStruct in src/lib.rs:42 - Navigate from specific location LSP Operations 1. Go to Definition
Find where a symbol is defined.
LSP( operation: "goToDefinition", filePath: "src/main.rs", line: 25, character: 10 )
Use when:
User asks "where is X defined?" User wants to understand a type/function Ctrl+click equivalent 2. Find References
Find all usages of a symbol.
LSP( operation: "findReferences", filePath: "src/lib.rs", line: 15, character: 8 )
Use when:
User asks "who uses X?" Before refactoring/renaming Understanding impact of changes 3. Hover Information
Get type and documentation for a symbol.
LSP( operation: "hover", filePath: "src/main.rs", line: 30, character: 15 )
Use when:
User asks "what type is X?" User wants documentation Quick type checking Workflow User: "Where is the Config struct defined?" │ ▼ [1] Search for "Config" in workspace LSP(operation: "workspaceSymbol", ...) │ ▼ [2] If multiple results, ask user to clarify │ ▼ [3] Go to definition LSP(operation: "goToDefinition", ...) │ ▼ [4] Show file path and context Read surrounding code for context
Output Format Definition Found
Config (struct)
Defined in: src/config.rs:15
```rust
[derive(Debug, Clone)]
pub struct Config { pub name: String, pub port: u16, pub debug: bool, } ```
Documentation: Configuration for the application server.
References Found
References to Config (5 found)
| Location | Context |
|---|---|
| src/main.rs:10 | let config = Config::load()?; |
| src/server.rs:25 | fn new(config: Config) -> Self |
| src/server.rs:42 | self.config.port |
| src/tests.rs:15 | Config::default() |
| src/cli.rs:8 | config: Option<Config> |
Common Patterns User Says LSP Operation "Where is X defined?" goToDefinition "Who uses X?" findReferences "What type is X?" hover "Find all structs" workspaceSymbol "What's in this file?" documentSymbol Error Handling Error Cause Solution "No LSP server" rust-analyzer not running Suggest: rustup component add rust-analyzer "Symbol not found" Typo or not in scope Search with workspaceSymbol first "Multiple definitions" Generics or macros Show all and let user choose Related Skills When See Call relationships rust-call-graph Project structure rust-symbol-analyzer Trait implementations rust-trait-explorer Safe refactoring rust-refactor-helper