前言
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方面更好的建议,欢迎分享