ClangFormat语法1.0

基于代码格式化的 Clang Format 基本语法知识

Imagem de capa

AccessModifierOffset(Int类型)

访问修饰符偏移量

AccessModifierOffset: 0

@public
NSMutableArray *_cellHeightArray;

AccessModifierOffset: 4

    @public
NSMutableArray *_cellHeightArray;

AlignEscapedNewlinesLeft (bool)

如果是true就是左对齐,如果是false就是右对齐

true

if (foo && // Some comment
bar) {
    baz();
}

void foo() {
    someFunction();
    someOtherFunction();
}

false

if (foo && // Some Comment
    bar) {
        baz();
}

void foo() {
        someFunction();
  someOtherFunction();
}

AlignTrailingComments (bool)

注释的对齐方式 如果是true将左对齐,如果是false不会对齐

true

// Unrelated comment
void someFunction() {
    doWork();     // Does something
    doMoreWork(); // Does something else
}

false

// Unrelated comment
void someFunction() {
    doWork(); // Does something
    doMoreWork(); // Does something else
}

AllowAllParametersOfDeclarationOnNextLine (bool)

如果TRUE就让参数上下对齐 否则将是默认

true

someFunction(foo,
             bar,
             baz);

false

someFunction(foo, bar, baz);

AllowShortFunctionsOnASingleLine (bool)

是否允许方法单行

true

int f() { return 0; }

false

int f() {
    return 0;
}

AllowShortIfStatementsOnASingleLine (bool)

是否允许if单行

true

void foo() {
    if (!someVar) return;
    if (someOtherVar) return;

    if (doingSomething) {
        // Unrelated
    }
}

false

if (!someVar) {
    return;
}
if (someOtherVar) {
    return;
}

if (doingSomething) {
    // Unrelated
}

AllowShortLoopsOnASingleLine (bool)

是否允许循环单行

true

// Eat some cycles
int i = 10000;
while(i>0) i--;

false

// Eat some cycles
int i = 10000;
while(i>0) {
    i--;
}

AlwaysBreakBeforeMultilineStrings

在多行字符串之前总是打破

AlwaysBreakBeforeMultilineStrings: true or false(没找到实例)

NSString *string = @"deqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwde"
                   @"qwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeqwdeq"
                   @"wdeqwdeqw";

AlwaysBreakTemplateDeclarations (bool)

总是打破模板声明

BinPackParameters (bool)

如果为 false,函数调用或函数定义的参数将会都是在同一行上或者会有一行每个。

BreakBeforeBinaryOperators (bool)

如果为 true,则将换行符后放置二元运算符。

true

bool value = someVal
             + anotherVal
             + thirdVal
             == alternateValue
                * fooVar
                + barVar
             && anotherCondition
                > smallerCondition
                * powerMultiplier;

if (someVal
    + anotherVal
    * thirdVal
    == finalVlaue) {
    // ...
}

if (someVal) {

} else if (anotherVal && thirVal
                        > smallerVal)
{
    // ...
}

return foo::bar::baz
       == foo::bar::bop;
}

false

bool value = someVal + anotherVal + thirdVal == alternateValue * fooVar + barVar && anotherCondition > smallerCondition * powerMultiplier;

if (someVal + anotherVal * thirdVal == finalVlaue) {
    // ...
}

if (someVal) {

} else if (anotherVal && thirVal > smallerVal)
{
    // ...
}

return foo::bar::baz == foo::bar::bop;

BreakBeforeBraces (BraceBreakingStyle)

大括号打破使用的样式。

可能的值: BS_Attach (在配置: 附加) 总是将大括号附加到上下文。 BS_Linux (在配置: Linux) 像附加,但是休息前大括号对功能、 命名空间和类定义。 BS_Stroustrup (在配置: Stroustrup) 像附加,但是在函数定义之前休息。 BS_Allman (在配置: 奥尔曼) 总是休息前大括号。 BS_GNU (在配置: GNU) 总是打破前大括号和对大括号内的控制语句,而不是那些的类、 函数或其他定义中添加额外的缩进级别。

BreakBeforeTernaryOperators (bool)

如果为 true,则将换行符后放置三元运算符。

BreakConstructorInitializersBeforeComma (bool)

总是打破在逗号之前的构造函数初始值设定项和对齐以冒号逗号。

ColumnLimit (unsigned)

每一行限制字符的长度

CommentPragmas (std::string)

描述具有特殊的意义,不应分成行或以其他方式改变了评论的正则表达式。

ConstructorInitializerAllOnOneLineOrOnePerLine (bool)

如果在构造函数初始值设定项不适合在一条线,把每个初始值设定项放在自己的行上。