Rust Code Navigator

actionbook/rust-skills/skills/rust-code-navigator

作者 actionbook5c40d3ad7851無授權條款1.5K 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫6 週前更新

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

AI 產生的概覽

使用 LSP 操作(例如跳至定義、尋找參照、懸停資訊)瀏覽 Rust 程式碼。

功能
此技能引導代理使用語言伺服器協定操作來瀏覽 Rust 程式碼庫。涵蓋跳至定義、尋找參照、懸停資訊、工作區符號搜尋與文件符號,並規定回報定義與參照的輸出格式。它也列出常見使用者說法與對應 LSP 操作的對照,以及伺服器缺少或符號不明確時的錯誤處理。
適用情境
適用於有人詢問某個 Rust 符號在哪裡定義、誰在使用它,或它是什麼型別時。也適合重構前的影響評估,以及瀏覽大型 Rust 專案。
執行需求
需要 LSP 工具與執行中的 rust-analyzer 伺服器,以及對工作區的 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 SaysLSP 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

ErrorCauseSolution
"No LSP server"rust-analyzer not runningSuggest: rustup component add rust-analyzer
"Symbol not found"Typo or not in scopeSearch with workspaceSymbol first
"Multiple definitions"Generics or macrosShow all and let user choose

Related Skills

WhenSee
Call relationshipsrust-call-graph
Project structurerust-symbol-analyzer
Trait implementationsrust-trait-explorer
Safe refactoringrust-refactor-helper

來源與署名

來源:actionbook/rust-skills位於skills/rust-code-navigator提交5c40d3a

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架