BraceWrapping
BraceWrapping (BraceWrappingFlags
)¶
Info
clang-format 3.8
控制大括号换行情况。
如果 BreakBeforeBraces 被设置为 BS_Custom
,使用这个来指定应该如何处理每个单独的大括号。否则,这将被忽略。
# Example of usage:
BreakBeforeBraces: Custom
BraceWrapping:
AfterEnum: true
AfterStruct: false
SplitEmptyFunction: false
嵌套的配置标记:
bool AfterCaseLabel
:case
标签的括号
switch (foo) {
case 1:
{
bar();
break;
}
default:
{
plop();
}
}
switch (foo) {
case 1: {
bar();
break;
}
default: {
plop();
}
}
bool AfterClass
:class
定义的括号
class foo {};
class foo
{};
BraceWrappingAfterControlStatementStyle AfterControlStatement
: 包含控制语句 (if
/for
/while
/switch
/…)
可能的值:
BWACS_Never
: 不要在控制语句后面用大括号括起来。
if (foo()) {
} else {
}
for (int i = 0; i < 10; ++i) {
}
BWACS_MultiLine
: 在多行控制语句后只使用大括号。
if (foo && bar &&
baz)
{
quux();
}
while (foo || bar) {
}
BWACS_Always
: 在控制语句后面总是用大括号括起来。
if (foo())
{
} else
{}
for (int i = 0; i < 10; ++i)
{}
bool AfterEnum
:enum
定义的括号
enum X : int
{
B
};
enum X : int { B };
bool AfterFunction
: 函数定义的括号
void foo()
{
bar();
bar2();
}
void foo() {
bar();
bar2();
}
bool AfterNamespace
: namespace
定义的括号
namespace
{
int foo();
int bar();
}
namespace {
int foo();
int bar();
}
-
bool AfterObjCDeclaration
:ObjC
定义的括号 (interfaces, implementations…).@autoreleasepool
和@synchronized
块根据 AfterControlStatement 标志进行包装 -
bool AfterStruct
:struct
定义的括号
struct foo
{
int x;
};
struct foo {
int x;
};
bool AfterUnion
:union
定义的括号
union foo
{
int x;
}
union foo {
int x;
}
bool AfterExternBlock
:extern
定义的括号
extern "C"
{
int foo();
}
extern "C" {
int foo();
}
bool BeforeCatch
:catch
之前的括号
try {
foo();
}
catch () {
}
try {
foo();
} catch () {
}
bool BeforeElse
:else
之前的括号
if (foo()) {
}
else {
}
if (foo()) {
} else {
}
bool BeforeLambdaBody
:lambda
块的括号
connect(
[]()
{
foo();
bar();
});
connect([]() {
foo();
bar();
});
bool BeforeWhile
:while
前的括号
do {
foo();
}
while (1);
do {
foo();
} while (1);
-
bool IndentBraces
: 缩进包装的括号本身 -
bool SplitEmptyFunction
: 如果为false
,则空函数体可以放在一行上。该选项仅在函数的左括号已经被包装的情况下使用,即设置了 AfterFunction 括号封装模式,并且该函数不可以/不应该放在单行上(如 AllowShortFunctionsOnASingleLine 和构造函数格式化选项)。
int f()
{
}
int f()
{}
bool SplitEmptyRecord
: 如果为false
,空记录(例如类,结构体或联合)主体可以放在一行上。此选项仅在记录的开括号已经被包装时使用,即设置了 AfterClass (对于类)括号封装模式。
class Foo
{
}
class Foo
{}
bool SplitEmptyNamespace
: 如果为false
,则空的命名空间主体可以放在一行上。该选项仅在名称空间的左大括号已经被包装时使用,即设置了AfterNamespace
大括号包装模式。
namespace Foo
{
}
namespace Foo
{}
最后更新:
2022-10-31