在这篇文章中,我们以VSCode作为Rust开发的IDE。VSCode 是我的首选,因为它可以在所有主流操作系统上使用,并且具有高度可配置性。
在本文中,会涉及到以下内容:
首先,是rust analyzer,它是rust的官方语言服务器,提供代码补全、跳转、嵌入提示等功能。
接下来是CodeLLDB这个扩展,它允许你调试rust代码。
接下来是Even Better TOML扩展,它为toml文件提供语法高亮显示。
Error Lens扩展,可以将错误和警告突出显示
示例代码如下:
正如你在这个示例中看到的,它将使错误更加突出,并在行中显示错误消息
接下来是Todo Tree,它将帮助你快速找到代码中的to do项
最后是crates扩展,它可以轻松检查Cargo.toml文件中的依赖项是否过期。
如果一个依赖项过期了,你会看到一个红色的X,后面跟着该依赖项的最新版本。示例如下:
Clippy是一个可配置的过滤器,可以捕获常见错误并改进rust代码。你可以通过在终端中手动运行clippy,但是更我喜欢配置为自动运行。
在VSCode中打开Settings,在搜索栏中键入“rust-analyzer check”。然后向下滚动,直到看到check命令,然后将check更改为Clippy。
要将rust format 配置为自动运行,我们将setting并切换为Json格式,然后加入以下配置:
接下来让我们看一下如何使用cargo watch设置实时加载,Cargo watch是一个Cargo插件,用于监视项目源文件中的更改。
在项目根目录下,运行如下命令安装cargo watch:
cargo add cargo-watch
然后运行以下命令来运行cargo watch:
cargo watch -q -c -w src/ -X 'run -q'
然后,如果我们改变代码,它将自动被重新编译。
现在让我们看一下如何设置与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。一般包含几个步骤的作业。
如果我们的项目依赖包含任何已知的漏洞,那么构建将失败
至此,Rust开发环境的最佳设置已经完成了,希望对你有所帮助。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8