rust-code-navigator
Uses Language Server Protocol to find definitions and references in Rust codebases.
Install
mkdir -p .claude/skills/rust-code-navigator && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6404" && unzip -o skill.zip -d .claude/skills/rust-code-navigator && rm skill.zipInstalls to .claude/skills/rust-code-navigator
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Navigate Rust code using LSP. Triggers on: /navigate, go to definition, find references, where is defined, 跳转定义, 查找引用, 定义在哪, 谁用了这个Key capabilities
- →Locate symbol definitions in Rust code
- →Find all references to a specific symbol
- →View type information and documentation via hover
- →Explore workspace symbols
How it works
The skill uses the Language Server Protocol to query the codebase for symbol definitions, usages, and metadata.
Inputs & outputs
When to use rust-code-navigator
- →Find definition of a Rust struct
- →List all references to a function
- →View type information via hover
- →Explore code dependencies
About this skill
Rust Code Navigator
Navigate large Rust codebases efficiently using Language Server Protocol.
Usage
/rust-code-navigator <symbol> [in file.rs:line]
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 |
When not to use it
- →When rust-analyzer is not running
- →When the symbol is not in the current scope
Prerequisites
Limitations
- →May return multiple results for generics or macros
- →Requires a functional LSP server
How it compares
It provides a natural language interface for LSP operations, allowing users to query code structure without manual IDE navigation.
Compared to similar skills
rust-code-navigator side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| rust-code-navigator (this skill) | 3 | 6mo | No flags | Beginner |
| deepwiki-rs | 25 | 9mo | Review | Intermediate |
| rust-tests-guidelines | 7 | 5mo | No flags | Beginner |
| check-rust-coverage | 5 | 5mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by actionbook
View all by actionbook →You might also like
deepwiki-rs
sopaco
AI-powered Rust documentation generation engine for comprehensive codebase analysis, C4 architecture diagrams, and automated technical documentation. Use when Claude needs to analyze source code, understand software architecture, generate technical specs, or create professional documentation from any programming language.
rust-tests-guidelines
RediSearch
Guidelines for writing Rust tests.
check-rust-coverage
RediSearch
Check which Rust lines are not covered by Rust tests.
debug-cli
antinomyhq
Use when users need to debug, modify, or extend the code-forge application's CLI commands, argument parsing, or CLI behavior. This includes adding new commands, fixing CLI bugs, updating command options, or troubleshooting CLI-related issues.
fix-clippy
quickwit-oss
Fix all clippy lint warnings in the project
handling-rust-errors
hashintel
HASH error handling patterns using error-stack crate. Use when working with Result types, Report types, defining custom errors, propagating errors with change_context, adding context with attach, implementing Error trait, or documenting error conditions in Rust code.