在这篇文章中,我们以VSCode作为Rust开发的IDE。VSCode 是我的首选,因为它可以在所有主流操作系统上使用,并且具有高度可配置性。
在本文中,会涉及到以下内容:
1.安装6个VSCode扩展插件;
2.设置3个Cargo工具,用于配置自动检查、格式化和实时加载;
3.使用github action进行持续集成;
VSCode扩展插件
1,rust-analyzer
首先,是rust analyzer,它是rust的官方语言服务器,提供代码补全、跳转、嵌入提示等功能。
2,CodeLLDB
接下来是CodeLLDB这个扩展,它允许你调试rust代码。
3,Even Better TOML
接下来是Even Better TOML扩展,它为toml文件提供语法高亮显示。
4,Error Lens
Error Lens扩展,可以将错误和警告突出显示

示例代码如下:

正如你在这个示例中看到的,它将使错误更加突出,并在行中显示错误消息
5,Todo Tree
接下来是Todo Tree,它将帮助你快速找到代码中的to do项
6,crates
最后是crates扩展,它可以轻松检查Cargo.toml文件中的依赖项是否过期。

如果一个依赖项过期了,你会看到一个红色的X,后面跟着该依赖项的最新版本。示例如下:
配置Cargo工具
1,Clippy
Clippy是一个可配置的过滤器,可以捕获常见错误并改进rust代码。你可以通过在终端中手动运行clippy,但是更我喜欢配置为自动运行。在VSCode中打开Settings,在搜索栏中键入“rust-analyzer check”。然后向下滚动,直到看到check命令,然后将check更改为Clippy。
2,Rust format
要将rust format 配置为自动运行,我们将setting并切换为Json格式,然后加入以下配置:
3,cargo watch
接下来让我们看一下如何使用cargo watch设置实时加载,Cargo watch是一个Cargo插件,用于监视项目源文件中的更改。
在项目根目录下,运行如下命令安装cargo watch:
cargo add cargo-watch
然后运行以下命令来运行cargo watch:
cargo watch -q -c -w src/ -X 'run -q'
-q 代表安静,它会抑制cargo watch的输出
-c 将清除屏幕,
-w 允许我们指定要监视的文件和文件夹,在这个例子中,只监视src目录
-x 允许我们指定要执行的cargo命令,在本例中我们执行“cargo run -q”,如果我们执行这个命令,那么将阻止打印cargo日志消息。
然后,如果我们改变代码,它将自动被重新编译。
持续集成
现在让我们看一下如何设置与GitHub action的持续集成。为我们的项目设置持续集成,我们需要做的就是在根目录下,创建一个包含workflows文件夹的.gitHub文件夹,其中又包含定义workflows的yaml文件,如图:

这里有一个简单的workflows的例子,叫做rust-ci.yml,内容如下:
name: Rust CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set up Rust
uses: actions/checkout@v2
- name: Install cargo-audit
uses: cargo install cargo-audit
- name: Build
uses: cargo build --verbose
- name: Test
uses: cargo test --verbose
- names: Clippy
uses: cargo clippy --verbose -- -D warnings
- names: Audit
uses: cargo audit
当代码变更被推送到主分支,或者拉取请求指向主分支时,它就会运行这个workflows。一般包含几个步骤的作业。
1,首先,我们的代码被check out
2,然后,安装cargo-audit,这将允许我们审计代码库中的漏洞
3,构建并测试代码
4,运行cargo clippy,如果出现任何警告,则构建失败
5,最后,我们运行cargo audit,
如果我们的项目依赖包含任何已知的漏洞,那么构建将失败
至此,Rust开发环境的最佳设置已经完成了,希望对你有所帮助。