clang 格式:大括号前换行,左大括号后空行和右大括号前空行

clang format: break before braces, empty line after opening brace and empty line before closing brace

我正在尝试按以下方式在名称空间内格式化 类 (BreakBeforeBraces: Allman):

namespace test_a::test_b
{

struct A
{
    int a;
    int b;
};

}  // namespace test_a::test_b

但 clang 格式不断将其更改为

namespace test_a::test_b
{
struct A
{
    int a;
    int b;
};

}  // namespace test_a::test_b

解决方法 问题仅适用于 BasedOnStyle: Google no brakes before open braces 例如

namespace test_a::test_b {

struct A {
    int a;
    int b;
};

}  // namespace test_a::test_b

也一样

我希望 clang-format 总是在命名空间左大括号之后和右大括号之前添加一个空行,这可能吗?

为清楚起见,这是我使用的 clang 格式

---
BasedOnStyle: Google
AccessModifierOffset: -4
AlignConsecutiveDeclarations: 'true'
BinPackArguments: 'false'
BinPackParameters: 'false'
IndentWidth: '4'
AlignConsecutiveAssignments: 'true'
ColumnLimit: 120
BreakBeforeBraces: Allman
AllowShortIfStatementsOnASingleLine: false
...

clang 格式目前不能专门针对命名空间执行此操作,但您可以使用 KeepEmptyLinesAtTheStartOfBlocks 为所有块放置空行。如果你使用 BreakBeforeBraces: Custom 怎么办?