如何配置Rust格式化工具将单行impl定义拆分为多行带缩进格式?
如何配置Rust格式化工具将单行impl定义拆分为多行带缩进格式?
当然可以!要让rustfmt把你的单行impl定义拆成这种清晰的多行缩进格式,只需要调整它的配置规则就行。我来一步步告诉你怎么做:
创建/修改rustfmt配置文件
在你的项目根目录下创建(或已有则修改)rustfmt.toml文件;如果想要全局生效,就把这个文件放在你的用户主目录下(比如~/.rustfmt.toml)。添加以下配置项
在配置文件里写入这些规则:# 让impl的各部分垂直分行并缩进 impl_layout = "Vertical" # 让where子句的条件垂直分行并缩进 where_layout = "Vertical" # 让大括号单独占一行 brace_style = "AlwaysNextLine" # 设置缩进的空格数,可根据习惯调整为2或其他数值 indent_width = 4配置项说明
impl_layout = "Vertical":这个规则会强制把impl的泛型声明、要实现的Trait、for关键字、目标类型分别放在单独的行,并且后续行自动缩进,完美匹配你想要的impl<T>单独成行、MyTrait<T>缩进的效果。where_layout = "Vertical":让where子句的约束条件单独成行并缩进,避免和impl挤在一行。brace_style = "AlwaysNextLine":确保代码块的大括号单独占一行,而不是跟在最后一个表达式后面。indent_width = 4:控制缩进的空格数量,你可以根据自己的编码习惯改成2或者其他数值。
运行格式化命令
完成配置后,在项目目录下执行:cargo fmt你的原始代码:
/// comment impl<T> MyTrait<T> for I<T> where T: SomeTrait {}就会被格式化成你期望的样子:
/// comment impl<T> MyTrait<T> for I<T> where T: SomeTrait { }
另外提醒一句:如果你的rustfmt版本比较旧,可能不支持某些配置项,建议通过rustup update更新到最新的Rust工具链,确保配置能正常生效。
备注:内容来源于stack exchange,提问作者xjn xjn
相关产品推荐
相关产品推荐

