关于 rust-lsp
rust-lsp 是供 Agent 使用的技能,指导通过 Rust LSP 工具导航和分析 Rust 工作区,涵盖符号查找、类型检查与安全重命名等语义任务。
主要功能
- 01查找符号定义与引用
- 02检查声明类型和推断类型
- 03搜索工作区符号
- 04跨使用位置重命名符号
- 05管理内存文档和工作区
适用场景
- 01跨 crate 跟踪 Rust 符号
- 02查看函数的调用位置
- 03检查推断类型或 trait 实现
- 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,则将这些工具视为“尚不可用”:先尝试安装或设置流程,然后确认工具是否可用。
常见工作流
跳转到定义
- 在符号所在位置调用
definitions - 在返回的位置读取目标文件
查找所有调用方
- 在函数名所在位置调用
references - 检查返回的位置
检查类型
- 在相应位置调用
hover——即使是推断类型、trait 对象和泛型实例化,也会返回解析后的类型
按名称查找符号
- 使用名称作为查询内容调用
workspace_symbols - 如有需要,读取返回位置的内容
安全地重命名符号
- 使用文件内容调用
open_document - 在相应位置使用新名称调用
rename_symbol - 将返回的工作区编辑应用到磁盘
- 完成后调用
close_document
更新用于分析的内存中内容
基于位置的工具可在未调用 open_document 的情况下处理已保存的文件。只有在分析未保存或内存中的内容时,才使用文档生命周期:
- 调用
open_document,将内容与 rust-analyzer 同步 - 调用
replace_document更新内容(版本会自动递增) - 完成后调用
close_document(可重复调用)
响应项目结构变更
- 编辑
Cargo.toml或添加/移除 crate 后调用reload_workspace - proc-macro 源码变更后调用
rebuild_proc_macros
评论
支持 Markdown