clang-format:总是打破所有参数,每行一个

时间:2018-06-02 19:32:59

标签: c++ formatting clang-format

我希望我的函数原型/定义总是将参数分成单独的行,而不管总长度如何。否则默认.clang-format包含选项

BasedOnStyle: Chromium
AlignAfterOpenBracket: 'AlwaysBreak'
BinPackArguments: 'false'
BinPackParameters: 'false'
ColumnLimit: '80'

提供以下格式

  void foo(float a, float b);

  void foo(float a, float b, float c, float d, float e, float f, float g);

  void
  foo(float a, float b, float c, float d, float e, float f, float g, float h);

  void foo(
      float a,
      float b,
      float c,
      float d,
      float e,
      float f,
      float g,
      float h,
      float i);

我希望他们能够始终如一地被打破,每行一个参数,如下:

  void foo(
      float a,
      float b);

  void foo(
      float a,
      float b,
      float c,
      float d,
      float e,
      float f,
      float g);

  void foo(
      float a,
      float b,
      float c,
      float d,
      float e,
      float f,
      float g,
      float h);

  void foo(
      float a,
      float b,
      float c,
      float d,
      float e,
      float f,
      float g,
      float h,
      float i);

有没有机制可以做到这一点?

赏金的奖励:我还希望我的成员函数实现能够拆分返回类型,类名和函数名,例如,而不是这个:

float A::foo(float a, float b)
{
// ...
}

我喜欢这个:

float
A::
foo(float a,
    float b)
{
// ...
}

1 个答案:

答案 0 :(得分:1)

不可能。

唯一可以调整的是拆分返回类型时。通过设置惩罚PenaltyReturnTypeOnItsOwnLine: 1000,它变成了这一行

void
foo(float a, float b, ...

进入

void foo(
    float a, float b, ...

AlwaysBreakAfterReturnType: TopLevelDefinitions格式

float A::foo(float a, float b)
{
// ...
}

float
A::foo(float a, float b) {
  // ...
}