使用 clang-format - 将空括号保持在同一行
Using clang-format - keep empty braces on the same line
我正在尝试配置 clang-format,这样大括号通常会在它们自己的行开始:
void func()
{
if (...)
{
printf("Ta Da\n");
}
}
但我希望它在大括号为空时保持在一行中。 (主要用于ctors):
Bar::Bar(int val):
_val(val)
{}
目前看起来像这样:
Bar::Bar(int val):
_val(val)
{
}
有什么想法吗?
(已编辑以使情况更清楚)
我使用了
"AllowShortFunctionsOnASingleLine":是的,
和
"BreakBeforeBraces": "Allman",
在声明空构造函数等时将其放在一行..
更新:万岁!现在可以使用 Clang 5.0 或更高版本的自定义 BreakBeforeBraces
。
请参阅 documentation 中的 SplitEmptyFunction
。
配置示例:
BreakBeforeBraces: Custom
BraceWrapping:
SplitEmptyFunction: false
↓↓↓原答案(已过时)↓↓↓
不幸的是,无法使用 Clang 4.0 实现当前的 clang 格式选项(截至铿锵声 4.0).
来源: 我也有同样的问题。在研究了每个记录的选项和许多调整尝试之后,我无法实现这一点。根据我的经验,clang-format 并不像人们希望的那样灵活。一旦您想跳出预定义的样式并根据自己的喜好进行调整,它就不会削减它。
我正在尝试配置 clang-format,这样大括号通常会在它们自己的行开始:
void func()
{
if (...)
{
printf("Ta Da\n");
}
}
但我希望它在大括号为空时保持在一行中。 (主要用于ctors):
Bar::Bar(int val):
_val(val)
{}
目前看起来像这样:
Bar::Bar(int val):
_val(val)
{
}
有什么想法吗?
(已编辑以使情况更清楚)
我使用了 "AllowShortFunctionsOnASingleLine":是的, 和 "BreakBeforeBraces": "Allman", 在声明空构造函数等时将其放在一行..
更新:万岁!现在可以使用 Clang 5.0 或更高版本的自定义 BreakBeforeBraces
。
请参阅 documentation 中的 SplitEmptyFunction
。
配置示例:
BreakBeforeBraces: Custom
BraceWrapping:
SplitEmptyFunction: false
↓↓↓原答案(已过时)↓↓↓
不幸的是,无法使用 Clang 4.0 实现当前的 clang 格式选项(截至铿锵声 4.0).
来源: 我也有同样的问题。在研究了每个记录的选项和许多调整尝试之后,我无法实现这一点。根据我的经验,clang-format 并不像人们希望的那样灵活。一旦您想跳出预定义的样式并根据自己的喜好进行调整,它就不会削减它。