当我决定自学 Rust 时,我自然而然地开始四处寻找我可以使用的编辑器。事实证明,我在网上询问的大多数人仍在使用 Visual Studio Code for Rust。但令我惊讶的是,在 Visual Studio Code 中设置完整的开发环境并不像我预期的那么简单。我需要找到并下载不同的工具才能开始。
(我假设您已经安装了 Visual Studio Code,但如果没有,请安装它。)
第 1 步:下载并安装rustup
对于大多数人来说,最简单的起点是安装rustup
。如果您来自 Node.js 开发,最接近的类似物是nvm
, rustup
不仅安装您开始 Rust 开发所需的一切,还允许您轻松地在发布渠道之间来回切换并安装其他组件。
当您安装rustup
时,您将获得一个完整的 Rust 工具链,包括编译器 ( rustc
) 和cargo
(最接近 Node.js 的类似物是npm
)。安装这些后,您可以立即开始编译 Rust 程序。
您可以在rustup
手册中阅读更多关于rustup
的信息。
第 2 步:创建项目
从技术上讲,无需创建项目即可继续执行后续步骤,但它将帮助你确保正确设置 Visual Studio Code。因此,创建一个简单的项目以开始运行:
cargo new hello-world
此命令创建一个名为hello-world
的新目录,其中包含一个 Rust 项目脚手架,包括:
-
Cargo.toml
– 相当于 Rust 的package.json
-
src/main.rs
– 要执行的 Rust 源文件
然后你可以进入cd
hello-world
并运行:
cargo run
这将执行src/main.rs
文件,如果一切安装正确,应该打印出“Hello world”。 (您可以将cargo run
视为npm start
的类比。)
现在我们准备好为 Rust 开发准备 Visual Studio Code!
第 3 步:安装rust-analyzer
Visual Studio Code 扩展
要安装的最重要的 Visual Studio Code 扩展是rust-analyzer
。您可以将rust-analyzer
视为默认的 Visual Studio Code JavaScript 语言服务器(包括 TypeScript)和 ESLint。如果没有rust-analyzer
,您基本上只是将 Visual Studio Code 用作文本编辑器,而没有您期望的所有其他类型检查、lints 和代码完成。
安装后,您可以打开src/main.rs
(或任何其他 Rust 文件),您将获得您期望的 Visual Studio Code 体验。 (如果你收到一条错误消息说rust-analyzer
找不到 Rust 工作空间,那只是意味着Cargo.toml
文件丢失或无效。)
重要提示:确保在 Visual Studio 代码中打开.rs
文件之前至少cargo run
一次项目。 rust-analyzer
扩展需要target
目录中的构建信息才能执行代码完成和符号查找等操作。如果您似乎没有在 Visual Studio Code 中获得任何信息,请停止并运行cargo run
。
第 4 步:安装 CodeLLDB Visual Studio Code 扩展
开箱即用,您将无法在 Visual Studio Code 中调试 Rust 代码。您需要安装CodeLLDB扩展或Microsoft C/C++ 工具扩展。因为 Rust 编译器是建立在LLVM之上的,所以您需要这两个扩展之一来生成调试信息,您需要在 Visual Studio Code 中调试 Rust 程序。大多数人似乎更喜欢 CodeLLDB,因为它与 Microsoft 无关,但两者都可以。
额外步骤:安装crates
Visual Studio Code 扩展
虽然这个扩展不是绝对必要的,但crates
扩展有助于确保您使用的是最新版本的依赖项。它通过在Cargo.toml
文件中每个依赖项的右侧放置一个小的绿色复选标记来实现。
结论
我花了好几天的时间,通过找到所有需要安装才能正常工作的各种工具和扩展,为 Rust 开发设置 Visual Studio Code。但是,一旦设置好,Visual Studio Code 就像任何其他编辑器或 IDE 一样适合 Rust 的开发环境。特别是rust-analyzer
扩展,它几乎为您提供了在 Visual Studio Code 中像 JavaScript 一样快速开发 Rust 所需的一切。添加其他扩展确实将 Visual Studio Code 推入了 Rust 开发的“伟大”类别。
原文: https://humanwhocodes.com/blog/2022/12/rust-development-environment-visual-studio-code/