如何自动修复 Rust 中未使用的导入?

Aks*_*hay 21 intellij-idea rust rust-cargo

有什么方法可以自动修复 Rust 中未使用的导入吗?我已经看到了cargo fix,它确实有效,但它也做了很多其他修复。有什么方法可以告诉cargo fix只修复未使用的导入(最好在指定的文件中)而不修复其他任何东西?

附带问题:有什么方法可以让 IntelliJ 做到这一点吗?通常的快捷方式(Cmd+Option+O)适用于其他语言,但对于 Rust,它只是重新排序导入。

小智 11

根据此拉取请求,JetBrains 的 Rust 插件应该能够删除未使用的导入,但默认情况下并未启用。根据此评论,开发团队似乎需要等到org.rust.macros.proc默认启用(目前默认禁用实验性功能)。

  • 要启用它,请转到“设置”>“编辑器”>“检查”>“Rust”>“Lints”>“未使用的导入”,启用它,现在“CTRL+ALT+O”将删除未使用的导入! (12认同)
  • 可以说有一个删除未使用的导入的选项是正确的。但是,当您启用该选项并运行“优化导入”时,它实际上并不会删除未使用的导入。至少从版本 0.4.180.4890-222-nightly 开始。 (2认同)

Pet*_*all 10

目前,单个 lint 只能通过源代码中的属性进行配置。无法通过命令行工具来告知cargo check或忽略某些 lint 规则。cargo fix

根据我使用 JetBrains 工具的经验,它们不太可能cargo fix在幕后使用。他们构建了自己的 Rust 工具来解析和分析代码,这就是该功能的用途。

我建议向 JetBrains 提交功能请求。


Kho*_*han 7

  1. 使能够Settings > Editor > Inspections > Rust > Lints > Unused Import。
  2. Enable inspection only if procedural macros are enabled在同一部分禁用。

版本

  • 智能IDEABuild #IU-223.7571.182
  • Rust 插件0.4.185.5086-223