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 插件接口使用 Clippy,这里有一些步骤可以帮助你迁移到 cargo clippy

  1. Cargo.toml: 移除所有对 clippy 依赖和 clippy feature 的引用。
  2. 完全移除所有对 feature(plugin)plugin(clippy) 的引用。
  3. 将所有 feature = "clippy" 替换为 feature = "cargo-clippy"。运行 cargo clippy 时会自动启用 cargo-clippy feature。
  4. CI:现在你需要通过 rustup 安装 Clippy,使用命令 rustup component add clippy。安装完成后,你可以运行 cargo clippy(更多使用说明,请参阅 Clippy 的 README)。请注意,Clippy 并非包含在每个 nightly 版本中,但你可以在 rustup 组件历史页面上查看其可用性。

如果我还有更多问题,应该去哪里寻求帮助?

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