使用clang-format - 在同一行保留空括号

时间:2016-10-04 17:22:44

标签: c++ clang-format

我试图配置clang格式,以便通常大括号将从他们自己的行开始:

void func()
{
    if (...)
    {
        printf("Ta Da\n");
    }
}

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

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

目前看起来像这样:

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

有什么想法吗?

(编辑使情况更加清晰)

2 个答案:

答案 0 :(得分:2)

我使用了组合 “AllowShortFunctionsOnASingleLine”:是的, 和 “BreakBeforeBraces”:“Allman”, 在声明空构造函数等时将其设置为一行。

答案 1 :(得分:2)

更新:欢乐! Clang 5.0或更高版本现在可以使用自定义BreakBeforeBraces。 请参阅documentation中的SplitEmptyFunction

配置示例:

BreakBeforeBraces: Custom
BraceWrapping:
  SplitEmptyFunction: false

不幸的是, 不可能 用Clang 4.0 来实现当前的clang-format选项(从Clang 4.0开始)

来源:我有同样的问题。在研究了每个记录的选项以及许多调整尝试之后,我无法做到这一点。根据我的经验,clang-format并不像人们希望的那样灵活。只要您想要退出预定义的样式并根据自己的喜好调整内容,它就不会削减它。