Rust开发工具

Cursor Rust Tools 是一个为LLM提供Rust语言支持的服务器,允许访问Rust Analyzer、Crate文档和Cargo命令,适用于Rust开发环境。

  • by terhechte
  • Rust
  • 本地部署
  • 83 星标
  • 更新于
在 GitHub 查看 terhechte/cursor-rust-tools

使用说明

光标锈蚀工具

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来使用它。这需要多个步骤。

  1. 添加a project-dir/.cursor/mcp.json 到你的项目。这 Cursor Rust Tools UI有一个按钮可以为您完成此操作。在没有UI的情况下运行它也会显示 mcp.json 终端中的内容。
  2. 保存该文件后,Cursor将检测到已添加新的MCP服务器,并要求您启用它。(在右下角的对话框中)。
  3. 您可以检查光标设置(在 MCP)看看它在哪里正常工作
  4. 要进行测试,请确保您有 Agent Mode 在当前选中 Chat。然后,您可以要求它使用其中一个新工具,例如 cargo_check 工具。
  5. 您可能希望添加光标规则,以告诉LLM尽可能使用这些工具。我还在试验这个。

所有内容 mcp.json 是一样的。Cursor Rust Tools通过以下方式找出正确的项目 文件路径

全部打开

  • []创建一个 泽德 扩展以允许使用此
  • []正确关机,无错误
  • []现在删除项目有点脆弱(在UI中)
  • []显示更多LSP命令
  • []允许LLM执行 砂砾作业