SuperAPI AI 工具集

rust-code-navigator

编程与开发

查看项目

更新于 10-15 10:31

技能介绍

用途

rust-code-navigator 用于在大型 Rust 代码库中高效导航,基于 Language Server Protocol(LSP)实现符号定位与引用分析。它帮助开发者快速回答“某符号在哪里定义”“谁使用了它”“它是什么类型”等问题。

主要能力

该技能封装了多种 LSP 操作:

  1. 跳转定义(goToDefinition):查找符号定义位置。适用于用户询问“X 在哪里定义”、想理解某个类型或函数,或等价于 Ctrl+click 的场景。

  2. 查找引用(findReferences):查找符号的所有使用位置。适用于用户询问“谁用了 X”、重构或重命名之前、以及评估改动影响范围。

  3. 悬停信息(hover):获取符号的类型与文档。适用于用户询问“X 是什么类型”、想查看文档、或快速进行类型检查。

此外,工作流中还涉及 workspaceSymbol(在工作区搜索符号)和 documentSymbol(查看文件内符号)等操作。

使用方式

调用格式:

/rust-code-navigator <symbol> [in file.rs:line]

示例:

  • /rust-code-navigator parse_config —— 查找 parse_config 的定义
  • /rust-code-navigator MyStruct in src/lib.rs:42 —— 从指定位置开始导航

典型工作流:用户询问“Config 结构体在哪里定义?”后,先在 workspace 中搜索 “Config”(workspaceSymbol),若结果多个则请用户澄清,然后执行 goToDefinition,最后展示文件路径与上下文(读取周边代码)。

输出格式示例:

定义结果会显示符号名与类型、定义位置(如 src/config.rs:15)、代码片段及文档说明。引用结果会以表格列出位置与上下文,例如:

Location Context
src/main.rs:10 let config = Config::load()?;
src/server.rs:25 fn new(config: Config) -> Self

常见用户说法与对应 LSP 操作:

  • “Where is X defined?” → goToDefinition
  • “Who uses X?” → findReferences
  • “What type is X?” → hover
  • “Find all structs” → workspaceSymbol
  • “What's in this file?” → documentSymbol

适用场景

  • 阅读和理解陌生或大型 Rust 代码库
  • 重构或重命名前评估影响范围
  • 快速查看类型与文档
  • 定位符号定义与所有引用

限制与错误处理

  • “No LSP server”:rust-analyzer 未运行,建议执行 rustup component add rust-analyzer。
  • “Symbol not found”:拼写错误或不在作用域内,建议先用 workspaceSymbol 搜索。
  • “Multiple definitions”:泛型或宏导致,展示全部并让用户选择。

相关技能

  • 调用关系:rust-call-graph
  • 项目结构:rust-symbol-analyzer
  • Trait 实现:rust-trait-explorer
  • 安全重构:rust-refactor-helper

关于收费、价格、平台支持等具体信息,资料中暂未提供。