mcpField
R
rust-lsp

rust-lsp

github.com/fedemagnani开发1082 次安装30 周前更新
代码仓库

关于 rust-lsp

rust-lsp 是供 Agent 使用的技能,指导通过 Rust LSP 工具导航和分析 Rust 工作区,涵盖符号查找、类型检查与安全重命名等语义任务。

主要功能

  1. 01查找符号定义与引用
  2. 02检查声明类型和推断类型
  3. 03搜索工作区符号
  4. 04跨使用位置重命名符号
  5. 05管理内存文档和工作区

适用场景

  1. 01跨 crate 跟踪 Rust 符号
  2. 02查看函数的调用位置
  3. 03检查推断类型或 trait 实现
  4. 04在工作区内安全重命名符号

MCP 相关

使用 Rust LSP MCP 工具进行语义分析和工作区操作。若工具不可用,技能会指导先运行安装脚本。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fedemagnani/rust-lsp-plugin --skill rust-lsp

安装后在 Claude Code 中输入/rust-lsp确认已加载。

附带文件scripts/install.sh

详细介绍

Rust Analyzer Agent 技能

使用时机

必须在任务涉及以下内容时使用 MCP 工具:

  • 确定符号的定义位置,包括跨 crate 的情况
  • 查找某个函数、类型、字段或 trait 方法的所有引用
  • 检查类型签名、推断类型或 trait 实现
  • 在工作区中按名称搜索符号
  • 在所有使用位置重命名符号

应当优先使用 MCP 工具,而非 grep 或读取文件,前提是任务需要理解 Rust 语义(作用域、导入、trait 分派、宏展开)。

如果任务并非特定于 Rust、目标是字符串字面量或注释,或涉及 Rust 编译范围之外的文件,则改用 grep 或读取文件。

安装

如果 Rust LSP 工具尚不可用,请先运行此技能中的 scripts/install.sh,再使用 MCP 工具。如果当前会话未提供 Rust LSP MCP 工具 API,则将这些工具视为“尚不可用”:先尝试安装或设置流程,然后确认工具是否可用。

常见工作流

跳转到定义
  1. 在符号所在位置调用 definitions
  2. 在返回的位置读取目标文件
查找所有调用方
  1. 在函数名所在位置调用 references
  2. 检查返回的位置
检查类型
  1. 在相应位置调用 hover——即使是推断类型、trait 对象和泛型实例化,也会返回解析后的类型
按名称查找符号
  1. 使用名称作为查询内容调用 workspace_symbols
  2. 如有需要,读取返回位置的内容
安全地重命名符号
  1. 使用文件内容调用 open_document
  2. 在相应位置使用新名称调用 rename_symbol
  3. 将返回的工作区编辑应用到磁盘
  4. 完成后调用 close_document
更新用于分析的内存中内容

基于位置的工具可在未调用 open_document 的情况下处理已保存的文件。只有在分析未保存或内存中的内容时,才使用文档生命周期:

  1. 调用 open_document,将内容与 rust-analyzer 同步
  2. 调用 replace_document 更新内容(版本会自动递增)
  3. 完成后调用 close_document(可重复调用)
响应项目结构变更
  1. 编辑 Cargo.toml 或添加/移除 crate 后调用 reload_workspace
  2. proc-macro 源码变更后调用 rebuild_proc_macros

评论

支持 Markdown