如何为代码区域而不是单个项目关闭rustfmt?
#[rustfmt::skip]允许您在格式化时跳过“代码块”,但这需要skip在每个代码块上{}而不是 Clang 样式on/off
考虑这个代码:
fn add(a : i32, b : i32) -> i32 { a + b }
fn sub(a : i32, b : i32) -> i32 { a - b }
rustfmt 将其格式化为:
fn add(a: i32, b: i32) -> i32 {
a + b
}
fn sub(a: i32, b: i32) -> i32 {
a - b
}
一个需要两个#[rustfmt::skip]属性而不是单个on/off.
单行函数有一个 rustfmt 选项,但此示例仅用于演示目的。我想控制该地区任何可能的 rustfmt 设置。
回答
您可以将不想格式化的函数放在一个模块中,用 标记整个模块#[rustfmt::skip],然后用 将项目拉入父模块use。
#[rustfmt::skip]
mod unformatted {
pub fn add(a : i32, b : i32) -> i32 { a + b }
pub fn sub(a : i32, b : i32) -> i32 { a - b }
}
use unformatted::*;
fn main() {
dbg!(add(2, 3));
}