#rustfmt #formatting #block #best #mangled #macro #pls

nofmt

这个crate提供nofmt::pls,一个宏,旨在最大程度地防止代码块被破坏

1个稳定版本

1.0.0 2021年5月14日

Rust模式中排名1262

每月下载25
用于 2 crate

MIT许可证

5KB

此crate提供nofmt::pls,一个宏,旨在最大程度地防止代码块被破坏。

[dependencies]
nofmt = "1.0"
nofmt::pls! {
    //                                      R      G      B      A
    pub const MAIN_WINDOW_BG:  [f32; 4] = [0.187, 0.187, 0.187, 1.  ];
    pub const DEBUG_WINDOW_BG: [f32; 4] = [0.   , 0.   , 0.   , 0.85];
    pub const INPUT_BOX_BG:    [f32; 4] = [0.011, 0.022, 0.055, 1.  ];
}

如何绕过rustfmt 101

在crate上执行cargo fmt可能会剧烈改变每个文件,不可逆。所以我们的唯一选择就是接受它。

  • 要跳过单个项声明,使用#[rustfmt::skip]
  • 要跳过块,使用nofmt::pls!
  • 要跳过整个文件,使用#![cfg_attr(rustfmt, rustfmt_skip)]

请注意,不能通过rustfmt.toml来退出rustfmt。
由于disable_all_formatting = trueignore = ["/"]都不是稳定特性。

已知限制

这种方法本身并不完美,在nofmt::pls块内部

  • 每一行都会被修剪。
  • 制表符缩进会被替换为空格。

请注意,rustfmt 的格式宏是一个开放的问题。因此,这个crate可能在任何时间停止工作。

全力以赴

为了绕过限制,您可以使用与宏一起使用的rustfmt::skip属性。

#[rustfmt::skip]	  	nofmt::pls!	  	{	  	
	  	let	absolute_preservation_of_whitespace	=	"achieved";	 	
  	}

无运行时依赖