Clippy 正在移除其插件接口

2019 年 11 月 4 日 · Philipp Krones 代表开发工具团队(Clippy)

今天,我们宣布 Clippy 将完全移除其插件接口。使用插件接口已在约一年半前被弃用 (rust-lang/rust-clippy#2712)。自那时起,就一直会发出无法静音的警告。现在编译器插件已正式被弃用 (rust-lang/rust#64675),Clippy 将完全移除其对插件接口的支持 (rust-lang/rust-clippy#4714)。此更改将在 1.41.0 版本中稳定发布。

这篇文章会影响我吗?

很可能不会。这篇文章仅在您仍然通过插件接口使用 Clippy 时才会影响到您。如果您这样做,您会收到警告

warning: the clippy plugin is being deprecated, please use cargo clippy or rls with the clippy feature

在编译您的 crate 时。如果您没有看到此警告,那么对您来说没有任何变化。

如何从插件接口迁移?

如果您仍然使用 Clippy 插件接口,这里有一些步骤可以帮助您迁移到 cargo clippy

  1. Cargo.toml:删除所有出现的 clippy 依赖项和 clippy 功能。
  2. 完全删除所有出现的 feature(plugin)plugin(clippy)
  3. 将所有出现的 feature = "clippy" 替换为 feature = "cargo-clippy"。当运行 cargo clippy 时,cargo-clippy 功能会自动启用。
  4. CI:您现在必须通过 rustup 安装 Clippy,使用 rustup component add clippy。安装后,您可以运行 cargo clippy (有关更多使用说明,请参阅 Clippy README)。请注意,并非每个 nightly 版本都包含 Clippy,但您可以在 rustup 组件历史记录页面上查看其可用性。

如果我有更多问题,应该去哪里?

如果您在从插件接口迁移时需要帮助,您可以通过 Discord 联系我们,或在 GitHub 上打开一个 issue。