我有一个像这样格式化的lambda函数:
auto cb = [](std::string const& _param)
{
std::cout << _param;
};
我想将左大括号保留在新行上,但clang-format
总是将它放在第一行的末尾。是否可以配置clang-format
以遵循上述风格?
我当前配置的相关部分如下所示:
BraceWrapping:
AfterClass: true
AfterControlStatement: true
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterStruct: true
AfterUnion: true
BeforeCatch: true
BeforeElse: true
IndentBraces: true
BreakBeforeBraces: Allman
我也想对extern
块做同样的事情:
extern "C"
{
// ...
}
答案 0 :(得分:4)
这似乎是通过clang格式11引入的BeforeLambdaBody
解决的。
答案 1 :(得分:2)
我认为这个特殊情况没有选择。如果你不认为这是一个答案,我很抱歉,但是当我有clang格式的这些“微调”问题时,我只是根据需要格式化片段并在有趣的片段之前评论clang-format off
clang-format on
之后。我经常这样做是为了维护一些空白的字符序列,用于对齐代码以便更好地阅读。效果当然是CF不会改变那个片段。所以你的代码可能是
// clang-format off
auto cb = [](std::string const& _param)
{
std::cout << _param;
};
// clang-format on