rust-analyzer VSCode扩展,因为它似乎是锈病最好的扩展(从2022年起)。我在VSCode的“VSCode”中有以下两个条目:
{
"rust-analyzer.checkOnSave.command": "clippy",
"[rust]": {
"editor.formatOnSave": true,
},
}clippy ( linter)在按Ctrl +s以保存文件时自动运行。rustfmt (格式化程序)在按Ctrl +s以保存文件时自动运行。除了这两件事之外,我还希望cargo fix在按Ctrl +s保存文件时自动运行,因为这样做会自动清除未使用的导入。
我怎样才能做到这一点?
(我希望自动清除未使用的导入,其原因与需要自动格式化程序的原因相同。手动删除未使用的导入是乏味的,完全浪费了我的时间,就像手动添加适当数量的制表符或空格一样。)
发布于 2022-03-04 01:55:56
Clippy有一个--fix选项,它自动应用建议的修补程序。因此,您所需要的只是更改命令。但是,您需要两个参数clippy和--fix,为此您不能使用rust-analyzer.checkOnSave.command,必须重写完整命令:
{
"rust-analyzer.checkOnSave.overrideCommand": [
"cargo",
"clippy",
"--fix",
"--workspace",
"--message-format=json",
"--all-targets",
"--allow-dirty"
],
}但是,要小心,它将应用所有自动适用的建议,而不仅仅是删除未使用的导入。
所有这些标志都是生锈分析器自动添加到rust-analyzer.checkOnSave.command中的标志,但是当您使用rust-analyzer.checkOnSave.overrideCommand时,您必须自己指定它们。下面是对它们的简短描述(医生们有更多详细信息):
--workspace --将命令应用于货运工作区中的所有成员,而不仅仅是一个包。--message-format=json -发出JSON作为响应,而不是人类可读的输出,这样锈蚀分析器就可以分析响应并显示错误。--all-targets -检查所有事物,即二进制文件、库、示例、测试和基准测试。--allow-dirty -修正即使工作空间有变化。https://stackoverflow.com/questions/71345592
复制相似问题