Visual Studio Code 中的 Rust
Rust 是一种强大的编程语言,常用于系统编程,其中性能和正确性是首要任务。如果你是 Rust 的新手并希望了解更多信息,Rust 编程语言 在线书籍是一个很好的起点。本主题详细介绍了在 Visual Studio Code 中设置和使用 Rust 的方法,使用 rust-analyzer 扩展。

在 VS Code 市场上还有一个很受欢迎的 Rust 扩展 (扩展 ID: rust-lang.rust),但这个扩展已被弃用,rust-analyzer 是 rust-lang.org 推荐的 VS Code Rust 扩展。
安装
1. 安装 Rust
首先,您需要在机器上安装Rust工具集。Rust是通过rustup安装程序安装的,该程序支持在Windows、macOS和Linux上安装。按照您的平台的rustup安装指南进行操作,并确保安装任何额外的工具以构建和运行Rust程序。
和在机器上安装任何新的工具集一样,您需要重启终端/Commands提示符和VS Code实例,以便在平台的PATH变量中使用更新的工具集位置。
2. 安装 rust-analyzer 扩展
您可以通过 VS Code 的扩展视图(⇧⌘X(Windows, Linux Ctrl+Shift+X))并搜索 'rust-analyzer' 来查找和安装 rust-analyzer 扩展。您应该安装 发布版本。

我们将在本主题中讨论许多 rust-analyzer 的功能,但您也可以参考 https://rust-analyzer.github.io 上的扩展文档。
检查您的安装
安装Rust后,您可以通过打开一个新的终端/Commands提示符,并输入以下内容来检查一切是否安装正确:
rustc --版本
这将输出Rust编译器的版本。如果你想获得更多的细节,你可以添加--详细 论证。如果你遇到问题,你可以查阅 Rust 安装指南。
您可以通过运行以下命令来保持您的 Rust 安装与最新版本保持最新:
rustup 更新
每6周发布新的稳定版本的Rust,所以这是一个好习惯。
本地 Rust 文档
当您安装Rust时,您还会在本地安装完整的Rust文档集,您可以通过输入来查看rustup 文档。Rust 文档,包括 Rust 编程语言 和 Cargo 手册,将会在你的本地浏览器中打开,这样你就可以在离线时继续你的 Rust 之旅。
Hello World
货物
当您使用 rustup 安装 Rust 时,工具集包括 rustc 编译器、rustfmt 源代码格式化器和 clippy Rust 代码检查工具。您还会得到 Cargo,Rust 包管理器,帮助下载 Rust 依赖项并构建和运行 Rust 程序。您会发现您最终会使用 货物在处理 Rust 时,几乎适用于一切。
货物新
创建第一个 Rust 程序的好方法是使用 Cargo 通过输入来构建一个新的项目 cargo new这将创建一个简单的 Hello World 程序以及一个默认的Cargo.toml依赖文件。您传递 cargo new您希望创建项目的位置。
让我们创建 Hello World。导航到您希望创建项目的位置的文件夹并键入:
货物 新 你好_世界
要在一个新的项目中打开 VS Code,请导航到新的文件夹并启动 VS Code 通过代码输入:
cd 你好_世界
代码 .
启用 工作区信任 对于新文件夹,因为你是作者。你可以通过勾选选项来为整个项目文件夹的父文件夹启用工作区信任,以避免在创建新项目时被提示,信任父文件夹 'my_projects' 中所有文件的作者。
cargo new创建一个简单的Hello World项目main.rs源代码文件和Cargo.toml 货物清单 文件。
src\
main.rs
.gitignore
Cargo.toml
main.rs程序的入口函数主函数()并使用 在控制台上打印“Hello, world!”打印行!输入:.
```plaintext
fn main() {
println!("Hello, world!");
}
```
这个简单的 Hello World 程序没有依赖,但在下面你会添加 Rust 包(crate)引用[依赖项]输入:.
货物构建
Cargo 可以用来构建你的 Rust 项目。打开一个新的 VS Code 集成终端 (⌃⇧` (Windows, Linux Ctrl+Shift+`)) 并输入 cargo 构建输入:.
货物 构建

你现在将拥有目标\调试包含构建输出的文件夹包括一个名为的可执行文件你好_世界.exe输入:.
运行 Hello World
Cargo 也可以用于运行你的 Rust 项目,通过 cargo 运行输入:.
货物 运行
你也可以运行你好_世界.exe在终端中手动输入./target/debug/hello_world输入:.

智能感知
IntelliSense 功能由 Rust 语言服务器提供,rust-analyzer,它提供详细的代码信息和智能建议。
当你第一次打开一个 Rust 项目时,你可以在状态栏的左下角查看 rust-analyzer 的进度。你希望等待 rust-analyzer 完全审查完你的项目,以获得语言服务器的全部功能。

镶嵌提示
你可能会注意到的第一件事是 rust-analyzer 提供内联提示,在编辑器中以浅色文本显示推断出的类型、返回值和命名参数。

虽然内联提示对理解你的代码很有帮助,但你也可以通过编辑器 > 内联提示:已启用 设置来配置此功能 (
悬停信息
将鼠标悬停在任何变量、函数、类型或关键字上,将显示该条目的信息,例如文档、签名等。您还可以跳转到自己代码中的类型定义或标准的Rust库。

自动完成
在您输入 Rust 文件时,IntelliSense 会为您提供建议的完成和参数提示。

使用⌃Space(Windows, LinuxCtrl+Space)手动触发建议。
语义语法高亮显示
rust-analyzer 能够使用语义语法突出显示和样式,因为它对项目源代码有丰富的理解。例如,您可能已经注意到可变变量在编辑器中是带下划线的。

能够快速判断哪些 Rust 变量是可变的或不可变的有助于理解源代码,但你也可以通过 VS Code 改变样式。
在settings.json,你会添加:
{
"editor.semanticTokenColorCustomizations": {
"rules": {
"*.mutable": {
"fontStyle": "", // 设置为空字符串以禁用下划线,这是默认值
},
}
},
}
您可以在 rust-analyzer 文档的 编辑器功能 部分了解更多关于 rust-analyzer 的语义语法自定义信息。
代码导航
代码导航功能在编辑器的上下文菜单中可用。
- 转到定义 F12 - 转到类型定义的源代码。
- 预览定义 ⌥F12 (Windows Alt+F12, Linux Ctrl+Shift+F10) - 显示带有类型定义的预览Windows。
- 转到引用 ⇧F12 (Windows, Linux Shift+F12) - 显示该类型的全部引用。
- 显示调用层次 ⇧⌥H (Windows, Linux Shift+Alt+H) - 显示从或到函数的所有调用。
您可以通过符号搜索使用 转到符号 命令从 命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P))进行导航。
- 转到文件中的符号 - ⇧⌘O (Windows, Linux Ctrl+Shift+O)
- 转到工作区中的符号 - ⌘T (Windows, Linux Ctrl+T)
代码检查
Rust 工具集包括由 rustc 和 clippy 提供的 linting,用于检测源代码的问题。

默认启用的 rustc linter 会检测基本的 Rust 错误,但您可以使用 clippy 来获取更多的 lint。要启用 rust-analyzer 中的 clippy 集成,请更改 Rust-analyzer > Check: Command (rust-analyzer.check.command) 设置为剪贴板助手而不是默认的检查. rust-analyzer 扩展现在将运行货物夹子当您保存文件并在编辑器和问题视图中直接显示Clippy警告和错误。
快速修复
当 linter 在你的源代码中发现错误和警告时,rust-analyzer 通常可以提供建议的快速修复(也称为代码操作),这些操作可以通过在编辑器中悬停的灯泡来访问。你可以通过以下方式快速打开可用的快速修复:`⌘`(Windows, Linux `Ctrl+.`)。
此外,代码操作小部件:包含附近的快速修复 (
编辑器操作快速修复),无论你的光标在那行的哪个位置。
该命令会突出显示将被快速修复或优化的源代码。正常代码操作和非修复的优化仍然可以在光标位置激活。

重构
由于 rust-analyzer 对您的源代码进行了语义理解,它还可以在您的 Rust 文件之间提供智能重命名。将光标放在变量上,从上下文菜单、命令面板或通过 F2 选择 重命名符号。
rust-analyzer 扩展还支持其他代码重构和代码生成,扩展称之为Assists。
以下是一些可用的重构方法:
- 将if语句转换为受保护的返回
- 内联变量
- 提取函数
- 添加返回类型
- 添加导入
格式化
Rust 工具集包括一个格式化工具,rustfmt,它可以将你的源代码格式化为符合 Rust 规约。你可以使用⇧⌥F(Windows Shift+Alt+F,Linux Ctrl+Shift+I)或通过运行格式化文档命令从命令面板或编辑器中的上下文菜单来格式化你的 Rust 文件。
你还可以选择在每次保存时运行格式化器 (编辑器:保存时格式化) 或粘贴 (粘贴时格式化),以便在你工作时自动保持你的 Rust 代码正确格式化。
调试
rust-analyzer 扩展支持在 VS Code 内调试 Rust。
安装调试支持
要开始调试,您首先需要安装其中一个带有调试支持的语言扩展:
- Microsoft C++ (ms-vscode.cpptools) – 在 Windows 上
- CodeLLDB (vadimcn.vscode-lldb) – 在 macOS/Linux 上
如果你忘记安装其中一个扩展,当你尝试开始一个调试会话时,rust-analyzer 将会提供一个带有 VS Code 市场链接的通知。

使用 Rust Analyzer: 调试
rust-analyzer 扩展通过 Rust Analyzer: Debug 命令在命令面板中提供基本的调试支持 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 和编辑器中的 Run|Debug CodeLens。
让我们调试之前创建的 Hello World 程序。首先,我们在main.rs输入:.
-
你需要启用设置 调试:允许在任何地方设置断点,你可以在设置编辑器中找到它 (⌘, (Windows, Linux Ctrl+,)) 通过搜索 'everywhere'。

-
打开
main.rs并在编辑器中点击左侧的边缘以设置断点打印行!线。它应该显示为一个红色的点。
-
要开始调试,请使用 Rust Analyzer: Debug 命令或选择 调试 代码分析器
主函数()输入:.
下一步
这是一次简要的概述,展示了 VS Code 中 rust-analyzer 扩展功能。欲了解更多信息,请参阅 rust-analyzer 扩展中提供的详细信息用户手册,包括如何调整特定的VS Code 编辑器配置。
要了解 rust-analyzer 扩展的最新功能/错误修复,请参阅 CHANGELOG。您还可以通过在扩展视图中安装 rust-analyzer 预发布版本 来尝试新功能和修复,并在 安装 下拉菜单中进行选择。
如果您有任何问题或功能请求,请随时在 rust-analyzer 扩展的 GitHub 仓库中提交。
如果您想了解更多关于 VS Code 的信息,请尝试这些主题:
常见问题
链接器错误
如果你看到链接器错误,如 "错误:链接器 link.exe not found" 当你尝试构建你的 Rust 程序时,你可能缺少必要的 C/C++ 工具集。根据你的平台,你需要安装一个带有 C/C++ 链接器的工具集来组合 Rust 编译器的输出。
Windows
在 Windows 上,您还需要安装 Microsoft C++ Build Tools 以获取 C/C++ 链接器link.exe在运行Visual Studio安装程序时,请确保选择桌面开发与C++。
您可以使用Visual Studio Build Tools中的C++工具集以及Visual Studio Code来编译、构建和验证任何代码库,只要您拥有有效的Visual Studio许可证(无论是Community、Pro还是Enterprise)。
macOS
您可能需要通过运行来安装XCode工具集xcode-select --install在终端中。
Linux
您可能需要通过安装GCC工具集来解决此问题。构建必需品通过运行进行打包请将以下文本翻译成中文: sudo apt-get install build-essential在终端中。
如需更多故障排除建议,请参阅Rust安装指南。