函数参数延续



我正在查看 Clang 格式样式选项,但我找不到是否有以下选项。如果一个函数及其参数破坏了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至少会让我配置当它决定继续下一行时缩进的位置,但我找不到让我指定的东西来分解参数。

您可能希望:

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);

最新更新