Skip to main content

rust-code-navigator

Navigate Rust code using LSP. Triggers on: /navigate, go to definition, find references, where is defined, 跳转定义, 查找引用, 定义在哪, 谁用了这个

Source facts

Repository
actionbook/rust-skills
Last source activity
January 22, 2026 at 03:45
Detected SKILL.md language
English
Stars
1,567
Forks
119

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
rust-code-navigator
description
Navigate Rust code using LSP. Triggers on: /navigate, go to definition, find references, where is defined, 跳转定义, 查找引用, 定义在哪, 谁用了这个
argument-hint
<symbol> [in file.rs:line]
allowed-tools
["LSP","Read","Glob"]
# 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 |
View on GitHub