有没有一种稳定的方法来告诉Rustfmt跳过整个文件

csbfibhn  于 2023-04-06  发布在  其他
关注(0)|答案(2)|浏览(166)

让Rustfmt跳过一个项目的官方方法是#[rustfmt::skip],但我希望它跳过整个文件。我试过这个:

#![rustfmt::skip]

但是你得到这个错误
错误[E0658]:非内置内部属性不稳定
Here is the issue for that error.
是否有解决方法?我不感兴趣的解决方案:

  • 使用不稳定的Rust
  • 告诉Rustfmt不要使用文件外部的东西来处理文件(例如rustfmt.toml
uxhixvfz

uxhixvfz1#

目前,Rustfmt会遍历mod树本身,这样你就可以把属性放在声明了你想要忽略的模块的文件上。

#[rustfmt::skip]
mod dont_format_this_file;

然后dont_format_this_file.rs将被跳过。
然而,Rustfmt 2 changed its behaviour,所以它 * 不 * 遍历mod树,所以你必须直接指定dont_format_this_file.rs。在这种情况下,它似乎会找到mod dont_format_this_file;声明,所以当Rustfmt 2发布时,这可能不起作用。

nbnkbykc

nbnkbykc2#

要跳过整个文件,您可以将以下内容添加到文件的顶部:

#![cfg_attr(rustfmt, rustfmt_skip)]

这个属性在rustfmt nightly docs的tips部分有介绍,它在我的例子中起作用,但我不确定这是因为我在使用nightly还是别的什么。

相关问题