在同一行上使用空大括号

Using keep empty braces on the same line

本文关键字:一行      更新时间:2023-10-16

我正在尝试配置clang-format,这样大括号通常会在自己的行上开始:

void func()
{
    if (...)
    {
        printf("Ta Dan");
    }
}

但是我希望它是这样的,当大括号为空时,它将被保存在一行中。(主要用于字符):

Bar::Bar(int val):
    _val(val)
{}

现在看起来是这样的:

Bar::Bar(int val):
    _val(val)
{
}

任何想法?

(经过编辑使情况更清楚)

更新:华友世纪!现在在Clang 5.0或更高版本中可以使用自定义BreakBeforeBraces。参见文档中的SplitEmptyFunction

配置的例子:

BreakBeforeBraces: Custom
BraceWrapping:
  SplitEmptyFunction: false

↓↓↓原答案(过期)↓↓↓

不幸的是,在Clang 4.0 中不可能实现当前的Clang -format选项(从Clang 4.0开始)。

来源:我也有同样的问题。在研究了每一个记录在案的选项和许多调整尝试之后,我无法实现这一点。根据我的经验,clang-format并不像人们希望的那样灵活。只要你想跳出预定义的样式并根据自己的喜好进行调整,它就不会剪切它。

我用的是组合"AllowShortFunctionsOnASingleLine":没错,和"BreakBeforeBraces":"奥尔曼",