【问题标题】:Function argument continuation函数参数延续
【发布时间】:2020-01-07 13:27:20
【问题描述】:

我正在查看Clang-Format Style Options,但找不到以下选项。如果一个函数及其参数破坏了ColumnLimit,我想在新行上继续参数。

// Good
SomeLongFunction(first_argument,
                 second_argument,
                 third_argument,
                 fourth_argument,
                 fifth_argument);

// Bad
SomeLongFunction(first_argument, second_argument, third_argument,
                 fourth_argument, fifth_argument);

看起来AlignAfterOpenBracket 至少可以让我在它决定继续下一行时配置缩进的位置,但我找不到让我指定来分解参数的东西。

【问题讨论】:

    标签: c++ clang-format


    【解决方案1】:

    你可能想要:

    BinPackParameters: false
    

    有了这个,你的坏例子被格式化成好例子。文档:

    BinPackParameters (bool)

    如果为 false,则为函数声明或函数定义的参数 要么都在同一行,要么各有一行。

    true:
    void f(int aaaaaaaaaaaaaaaaaaaa, int aaaaaaaaaaaaaaaaaaaa,
           int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
    
    false:
    void f(int aaaaaaaaaaaaaaaaaaaa,
           int aaaaaaaaaaaaaaaaaaaa,
           int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
    

    另外:

    AllowAllParametersOfDeclarationOnNextLine: false
    

    如果您希望中断所有参数,即使它们在单个中断后适合单行,这可能会很有用。文档:

    AllowAllParametersOfDeclarationOnNextLine (bool)

    如果函数声明不适合一行,允许将函数声明的所有参数放到下一行,即使 BinPackParameters 为假。

    true:
    void myFunction(
        int a, int b, int c, int d, int e);
    
    false:
    void myFunction(int a,
                    int b,
                    int c,
                    int d,
                    int e);
    

    【讨论】:

      猜你喜欢
      • 2016-12-11
      • 2012-04-19
      • 2019-12-17
      • 2015-09-30
      • 2013-09-02
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多