前言
Visual Studio Code 一出场便在JavaScript
生态系统中占据着举足轻重的地位,Rust
的插件虽然不如JavaScript
那般丰富,但增长的势头也是显而易见的,其中一些重要的功能已经支持的较好:
- 代码补充/智能提示
- 警告提示
- 调试
- 自动化的代码重构
- 自动化的文档提示
- 跳转到定义处、代码执行、类型支持等
核心配置
Visual Studio Code
下的Rust
生态有两个比较重要的插件:Rust 和 rust-analyzer 。二者的功能类似,不过后者的可靠性更好一些,更新也更加活跃。需要留意的是这两个插件不能同时使用,如果都安装了,你需要禁用其中一个。
rust-analyzer 下载完毕之后就能使用了,不过注意他还需要从github
下载额外的文件,此时留意你的github token
是否过期,过期的话会导致安装失败,重新输入token
即可。
可视化配置
可以通过UI
界面或者JSON
方式对插件进行配置,执行Ctrl+Shift+P
命令后可以进行选择
额外的lint工具
默认情况下rust-analyzer
会在文件保存时通过运行cargo check
来收集错误信息,cargo check
的本质是通过编译项目获取报错的。如果你想更近一步,你需要clippy
,clippy
类似ESLint
,我们可以通过rustup component add clippy
命令进行安装(默认情况下已安装)。
我们可以手动运行cargo clippy
或是通过rust-analyzer
运行clippy
来获取额外的报错信息。当然代价是速度会更慢一些,不过还是值得的。在实践中发现clippy
是学习Rust
不可获取的工具之一,它经常会给出一些更自然高效的写法。
我们可以通过如下方式配置clippy
:
{
"rust-analyzer.checkOnSave.command": "clippy"
}
关闭额外的提示
有些人可能会觉得
rust-analyzer
的内嵌提示过细,内容太多,我们可以通过如下方式来关闭提示:
{
"rust-analyzer.inlayHints.enable": false,
"rust-analyzer.inlayHints.chainingHints": false,
"rust-analyzer.inlayHints.parameterHints": false
}
自动更新
默认情况下rust-analyzer
会自动更新到最新版,如果你不希望如此,可以通过下面的配置更改:
{
"rust-analyzer.updates.askBeforeDownload": true
}
更多的拓展
vscode-lldb
vscode-lldb 可以帮助你更好地帮助你调试Rust
应用
better-toml
better-toml 提供了TOML
文件的语法高亮以及lint
功能
crates
crates 会展示出最新版本的依赖并提供了更新的快捷方式
search-crates-io
search-crates-io 会尝试帮助你补全Cargo.toml
中依赖包的名称
总结
工欲善其事,必先利其器。IDE
不是编程的全部,但一个好的IDE
会让编程更加得心应手,如果大家有关于IDE
方面更好的建议,欢迎分享