ClangFormat语法1.0

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

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

if (doingSomething) {
    // Unrelated
}

}


#AllowShortLoopsOnASingleLine (bool)

>是否允许循环单行

##true

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


##false

void foo() {
// 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 foo() {
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 foo() {
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)

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

推荐阅读更多精彩内容