C ++

我正在尝试配置clang格式,以便通常使用大括号从自己的行开始:

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

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

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

目前它看起来像这样:

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

有任何想法吗?

(编辑使情况更清楚)


我使用了“AllowShortFunctionsOnASingleLine”:true和“BreakBeforeBraces”:“Allman”的组合,以便在声明空构造函数时将它放到一行中。


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

配置示例:

BreakBeforeBraces: Custom
BraceWrapping:
  SplitEmptyFunction: false

不幸的是,用Clang 4.0实现当前的铛格式选项是不可能的 (从Clang 4.0开始)。

来源:我有同样的问题。 在研究了每个记录的选项和许多调整尝试之后,我无法实现这一点。 根据我的经验,clang格式不如人们希望的那么灵活。 一旦你想要走出预定义的样式并根据自己的喜好调整它,它就不会削减它。

链接地址: http://www.djcxy.com/p/93585.html

上一篇: c++

下一篇: Rails & Heroku: How many workers/dynos do I need