【问题标题】:clang-format AlignAfterOpenBracket list paramsclang-format AlignAfterOpenBracket 列表参数
【发布时间】:2021-10-20 18:12:50
【问题描述】:

This post问了一个类似的问题,当参数太多时如何修改格式。

我非常喜欢 rust-fmt 的样式。有没有办法用 clang-format 做到这一点?

例如1:AlignAfterOpenBrackets: AlwaysBreak

return_t foo(
    some_t param_1, some_t param_2, some_t param_3, 
    some_t param_4) {
    // function body
}

例如2:所需的格式

return_t foo(
    some_t param_1, 
    some_t param_2, 
    some_t param_3, 
    some_t param_4
) {
    // function body
}

【问题讨论】:

    标签: c++ clang clang-format


    【解决方案1】:

    clang-format AlignAfterOpenBracket 刚刚获得了一个新选项 - BlockIndent(22 年 17 月 1 日登陆)。

    https://reviews.llvm.org/rG966f24e5a62a:

    [clang-format] 为 AlignAfterOpenBracket 添加 BlockIndent 选项

    这种风格类似于 AlwaysBreak,但在新行上放置了右括号。

    例如,如果你有一个多行参数列表,clang-format 目前只支持分参数,但将右括号放在最后一个参数的行上。

    Function(
      param1,
      param2,
      param3);
    

    其他代码样式工具(例如 rustfmt)支持的样式是允许将右括号放在自己的行上,帮助用户快速推断代码块的边界。

    Function(
      param1,
      param2,
      param3
    );
    

    此功能预计将以 clang-format-14 发布。
    与此同时,您可以尝试从LLVM nightly builds 获取它。

    【讨论】:

      猜你喜欢
      • 2020-03-18
      • 2020-09-15
      • 2018-10-23
      • 2015-11-30
      • 2022-12-23
      • 2014-03-24
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      相关资源
      最近更新 更多