如何将 rustfmt 配置为不为匹配的不安全块模式发出对齐空格?

How can rustfmt be configured to not emit aligning spaces for the match unsafe block pattern?

我的 rustfmt 配置当前将以下代码格式化为具有对齐空格,如下所示。我在下面的代码中用 . 替换了空格,用 ---> 替换了制表符。

fn main() {
--->match unsafe {
--->--->......0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1
--->--->.....} {
--->--->0 => println!("0"),
--->--->_ => println!("not 0 or 1"),
--->}
}

我的 rustfmt 配置(rustfmt.toml 文件)生成了上面的代码示例:

tab_spaces = 4
hard_tabs = true
array_layout = "Block"
reorder_imports = true
newline_style = "Unix"
spaces_within_angle_brackets = false
spaces_within_parens = false
spaces_within_square_brackets = false
fn_args_layout = "Block"
fn_call_style = "Block"
fn_return_indent = "WithArgs"
fn_brace_style = "SameLineWhere"
generics_indent= "Block"
item_brace_style = "PreferSameLine"
control_style = "Rfc"
match_style = "Rfc"
unsafe_style = "Rfc"
where_layout = "Horizontal"
where_pred_indent = "Block"
where_style = "Rfc"

如何将 rustfmt 配置为不为前面的代码发出对齐空格(标记为:.),以便 rustfmt 仅使用制表符缩进,如下面的代码?

fn main() {
--->match unsafe {
--->--->0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1
--->--->} {
--->--->0 => println!("0"),
--->--->_ => println!("not 0 or 1"),
--->}
}

这是一个错误。我创建了一个 PR 来解决这个问题,所以在它合并后 rustfmt 不会在你的配置中发出空格。