铛格式:括号为lambda函数和extern块
问题描述:
我有格式化像这样的lambda函数前暂停:铛格式:括号为lambda函数和extern块
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"
{
// ...
}
答
我不认为有一个选项对于这个特殊情况。我很抱歉,如果你不认为这是一个答案,但是当我使用clang格式的这些“微调”问题时,我只是按照我的意愿格式化代码段,并在clang-format off
之前评论。我经常这样做来保留一些空白字符序列,用于对齐代码以获得更好的阅读效果。效果当然是CF不会改变这个片段。所以你的代码可能是
// clang-format off
auto cb = [](std::string const& _param)
{
std::cout << _param;
};
// clang-format on
你使用的是什么版本的'clang-format'?这可能是一个错误:https://www.mail-archive.com/[email protected]/msg05471.html – syntagma
我使用5.0.0版本(tags/google/stable/2017-03- 17) –
我刚刚发现错误报告,跟踪lambda的问题https://bugs.llvm.org//show_bug.cgi?id=32151和extern块https://bugs.llvm.org//show_bug.cgi?id = 26689 –