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

Tim*_*mmm 9 rust rustfmt

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

#![rustfmt::skip]
Run Code Online (Sandbox Code Playgroud)

但是你得到这个错误

错误[E0658]:非内置内部属性不稳定

这是该错误的问题。

有解决方法吗?我不感兴趣的解决方案:

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

Tim*_*mmm 9

目前 Rustfmt 遍历 mod 树本身,因此您可以将属性放在声明要忽略的模块的文件上。

#[rustfmt::skip]
mod dont_format_this_file;
Run Code Online (Sandbox Code Playgroud)

然后dont_format_this_file.rs会被跳过。

但是,Rustfmt 2改变了它的行为,使其遍历 mod 树,因此您必须dont_format_this_file.rs直接指定。在这种情况下,它似乎很可能会找到mod dont_format_this_file;声明,因此在 Rustfmt 2 发布时这可能不起作用。