3.5.1. 编辑器及其扩展

本小节的内容是纲要性的功能简介。重点是介绍 Visual Studio Code 编辑器及其扩展,其可谓目前 Rust 开发中体验最好的工具,笔者最为推荐。在 Rust 开发中,Visual Studio Code 编辑器体验极好:运行速度快、界面美观简洁、布局合理。辅以 Rust 相关扩展,开发效率很高,用起来很趁手。

Visual Studio Code 编辑器的下载、安装,以及使用,网络资料很多,笔者不做涉及。笔者重点介绍其几种常用扩展,供读者参考。

此外,同类编辑器还有Atom、Sublime:Atom 编辑器是 Visual Studio Code 的基础,插件使用方式非常类似,但性能不太好;Sublime 性能极佳,但对 Rust 开发支持方面,插件性能较弱。

这几种编辑器都是著名的工具产品,所以截图不做详细放置,请读者自行搜索比较。

3.5.1.1. rust-analyzer

目前,Visual Studio Code 编辑器下最好的 RLS 服务器扩展,在此作为重点推荐。安装界面如图 2.5-1 所示。

rust-analyzer

图 3.5.1.1-1

rust-analyzer 提供了 rls 插件的大部分功能外,还支持以下特性:

  • workspace 符号查找;
  • 当前文档符号搜索;
  • 输入辅助;
  • 代码辅助;
  • 结构体代码辅助;
  • 自动添加缺失 trait 成员方法;
  • 路径导入;
  • 改变函数可见性;
  • 填充模式匹配分支;
  • Magic 填充等。

并且,rust-analyzer 插件相较于 rls 插件,性能具有很大优势。

rust-analyzer 扩展和 IntelliJ Rust 关系密切,rust-analyzer 扩展现在的主要负责人之一,是 IntelliJ Rust 团队的前技术负责人。

3.5.1.2. rust

Rust RLS 服务器扩展还有官方最早开发支持的编辑器扩展 Rust for vsCode。历时较长,支持特性丰富,但性能和体验不如 rust-analyzer,未来应该会和 rust-analyzer 统一:

  • 代码补全;
  • 代码跳转:跳转到定义,查看定义,查找所有引用,符号搜索;
  • 悬停时的查看类型和文档;
  • 代码格式化;
  • 重构;
  • 错误提示及建议;
  • snippets;
  • 构建任务等。

特性众多,功能完善且成熟,但性能有所欠缺。后来 Rust 官方新开了 rust-analyzer 插件项目,并且计划用来替代 rust 插件。

3.5.1.3. Even Better TOML

功能丰富的 toml 语言支持插件,帮助 Rust 开发者编辑 Rust 代码中的 toml 文件。支持语法高亮、代码扩展、语义分析、代码收缩,以及代码格式化等。

  • 语法高亮,如图 3.5.1.3-1 所示;

语法高亮

图 3.5.1.3-1

  • 代码格式化,如图 3.5.1.3-2 所示。

代码格式化

图 3.5.1.3-2

3.5.1.4. crates

crates.io 中各 crate 依赖项的扩展插件,在 Rust 开发者在使用 Cargo.toml 文件时,crates 插件可以辅助开发者管理依赖项。

  • 更新单个依赖,如图 3.5.1.4-1 所示;

更新单个依赖

图 3.5.1.4-1

  • 更新所有依赖,如图 3.5.1.4-2 所示。

更新所有依赖

图 3.5.1.4-2

3.5.1.5. LLDB VSCode

支持在 vsCode 中调试 Rust,请读者自行搜索安装。

3.5.1.6. 其它插件

比如 code9 插件等,也对在 vsCode 进行 Rust 开发有帮助。

读者可以在 vsCode 插件面板搜索 rust、crate 等,将会看到众多 Rust 开发辅助支持插件,筛选使用。