clang-format:在lambda函数和extern块的大括号之前中断

问题描述 投票:13回答:1

我有一个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"
{
  // ...
}
c++ c++11 lambda clang-format
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
© www.soinside.com 2019 - 2024. All rights reserved.