使用 clang 格式的“BreakConstructorInitializers: AfterColon”

Sil*_*cer 5 c++ llvm clang-format

我尝试使用 clang-format(版本 6.0.0)重新格式化一些 C++ 代码。大多数事情似乎工作正常。但是我在构造函数初始化列表中失败了。

这就是我所拥有的:

A::A(const char* message) : B(message)
{
}
Run Code Online (Sandbox Code Playgroud)

这就是我要的:

A::A(const char* message) : 
   B(message)
{
}
Run Code Online (Sandbox Code Playgroud)

我尝试了一个带有两个选项的 clang 格式文件:

ColumnLimit: '160'
BreakConstructorInitializers: AfterColon
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

A::A(const char *message) : B(message) {}
Run Code Online (Sandbox Code Playgroud)

但我想在冒号后换行。

事实证明,删除该ColumnLimit选项(或将其设置为0)可以解决问题,并且我得到了我想要的格式。但我打算限制行长,所以我需要ColumnLimit.

我的错误在哪里?该ColumnLimit选项是否应该BreakConstructorInitializers以如此戏剧性的方式影响行为?或者这是一个错误?

更新:刚刚尝试了 7.0.1 版。结果一样。