光标锈蚀工具
A. 主控程序 服务器允许Cursor中的LLM 访问Rust分析器、板条箱文档和货物命令。
包括用于配置的UI。
它做什么
目前,各种AI代理都没有为AI提供从LSP访问Rust类型信息的能力。 这是一个障碍,因为LLM必须对潜在类型进行推理,而不是看到类型。
此外,关于依赖关系的唯一信息(比如 tokio)他们接受的训练是什么 已经过时,可能会有不同的版本。这可能会导致各种各样的问题。
Cursor Rust Tools 通过模型上下文协议使这些可用(MCP).
- 获取文档
crate或用于特定符号crate(例如。tokio或tokio::spawn) - 获取文件中特定符号的悬停信息(类型、描述)
- 获取文件中特定符号的所有引用列表
- 获取文件中符号的实现(检索包含实现的整个文件)
- 在项目文件中仅按名称查找类型,并返回悬停信息
- 获取以下输出
cargo test - 获取以下输出
cargo check
运作原理
对于LSP功能 src/lsp 它启动了一个新的Rust分析器,可以像在编辑器中运行的on一样对代码库进行索引。我们无法查询编辑器中运行的那个,因为Rust Analyzer只能由单个消费者使用(例如 open document 行动需要 close document 以正确的顺序等)
对于文档,它将运行 cargo docs 然后在本地将html文档解析为markdown。 此信息存储在项目根目录中 .docs-cache 文件夹。
安装
cargo install --git https://github.com/terhechte/cursor-rust-tools使用UI运行
cursor-rust-tools这将打开一个UI,您可以在其中添加项目、安装 mcp.json 并查看活动。
无UI运行
或者,一旦你有了 ~/.cursor-rust-tools 设置项目,您也可以通过以下方式运行它
cursor-rust-tools --no-ui配置
除了使用UI创建配置外,您还可以设置 ~/.cursor-rust-tools 你自己:
[[projects]]
root = "/Users/terhechte/Developer/Rust/example1"
ignore_crates = []
[[projects]]
root = "/Users/terhechte/Developer/Rust/example2"
ignore_crates = []ignore_crates 是您不希望为文档编制索引的crate依赖项名称列表。例如,因为它们太大了。
配置光标
应用程序运行后,您可以配置Cursor来使用它。这需要多个步骤。
- 添加a
project-dir/.cursor/mcp.json到你的项目。这Cursor Rust ToolsUI有一个按钮可以为您完成此操作。在没有UI的情况下运行它也会显示mcp.json终端中的内容。 - 保存该文件后,Cursor将检测到已添加新的MCP服务器,并要求您启用它。(在右下角的对话框中)。
- 您可以检查光标设置(在
MCP)看看它在哪里正常工作 - 要进行测试,请确保您有
Agent Mode在当前选中Chat。然后,您可以要求它使用其中一个新工具,例如cargo_check工具。 - 您可能希望添加光标规则,以告诉LLM尽可能使用这些工具。我还在试验这个。
所有内容 mcp.json 是一样的。Cursor Rust Tools通过以下方式找出正确的项目 文件路径
