首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VSCode中的保存中自动运行“货修复”?

如何在VSCode中的保存中自动运行“货修复”?
EN

Stack Overflow用户
提问于 2022-03-04 01:16:43
回答 1查看 1.2K关注 0票数 2
  • 目前,在编写Rust程序时,我使用VSCode作为我的IDE。
  • 我使用rust-analyzer VSCode扩展,因为它似乎是锈病最好的扩展(从2022年起)。

我在VSCode的“VSCode”中有以下两个条目:

代码语言:javascript
复制
{
  "rust-analyzer.checkOnSave.command": "clippy",

  "[rust]": {
    "editor.formatOnSave": true,
  },
}
  • 这使得clippy ( linter)在按Ctrl +s以保存文件时自动运行。
  • 它还使rustfmt (格式化程序)在按Ctrl +s以保存文件时自动运行。

除了这两件事之外,我还希望cargo fix在按Ctrl +s保存文件时自动运行,因为这样做会自动清除未使用的导入。

我怎样才能做到这一点?

(我希望自动清除未使用的导入,其原因与需要自动格式化程序的原因相同。手动删除未使用的导入是乏味的,完全浪费了我的时间,就像手动添加适当数量的制表符或空格一样。)

EN

回答 1

Stack Overflow用户

发布于 2022-03-04 01:55:56

Clippy有一个--fix选项,它自动应用建议的修补程序。因此,您所需要的只是更改命令。但是,您需要两个参数clippy--fix,为此您不能使用rust-analyzer.checkOnSave.command,必须重写完整命令:

代码语言:javascript
复制
{
  "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 -修正即使工作空间有变化。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71345592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档