rust-code-navigator

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

INSTALLATION
npx skills add https://github.com/actionbook/rust-skills --skill rust-code-navigator
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

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

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card