如何固定Objective-c块';s格式与clang格式

如何固定Objective-c块';s格式与clang格式,objective-c,clang-format,Objective C,Clang Format,例如,我有以下代码: [self.service loadDataForId:@"id" successBlock:^(NSDictionary *dictionary) { NSLog(@"%@", dictionary); } errorBlock:^(NSError *error) {

例如,我有以下代码:

    [self.service loadDataForId:@"id"
                   successBlock:^(NSDictionary *dictionary) {
                       NSLog(@"%@", dictionary);
                   }
                     errorBlock:^(NSError *error) {
                         NSLog(@"%@", error);
                     }];
当我对其应用clang格式时,它会变成:

    [self.service loadDataForId:@"id"
        successBlock:^(NSDictionary *dictionary) {
            NSLog(@"%@", dictionary);
        }
        errorBlock:^(NSError *error) {
            NSLog(@"%@", error);
        }];
如您所见,代码未与冒号对齐

如果我有一个没有errorBlock的代码,那么clang格式就可以了

    [self.service loadDataForId:@"id"
                   successBlock:^(NSDictionary *dictionary) {
                       NSLog(@"%@", dictionary);
                   }
                     errorBlock:nil];
我使用了clang格式的8.0.0版(tags/google/stable/2019-01-18)。如果我使用预定义的样式(LLVM、Google、Chromium、Mozilla、WebKit),那么我也会遇到同样的问题

如何正确设置clang格式?我的以下设置文件:

---
Language: ObjC
AccessModifierOffset: 0
ConstructorInitializerIndentWidth: 4
ObjCBlockIndentWidth: 4
ContinuationIndentWidth: 4
AlignEscapedNewlinesLeft: false
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AlwaysBreakTemplateDeclarations: false
AlwaysBreakBeforeMultilineStrings: false
BreakBeforeBinaryOperators: All
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BinPackParameters: true
ColumnLimit: 0
IndentWidth: 4
ConstructorInitializerAllOnOneLineOrOnePerLine: false
DerivePointerBinding: false
ExperimentalAutoDetectBinPacking: false
IndentCaseLabels: true
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: false
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakString: 1000
PenaltyBreakFirstLessLess: 120
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerBindsToType: false
SpacesBeforeTrailingComments: 1
Cpp11BracedListStyle: true
Standard: Cpp11
TabWidth: 4
UseTab: Never
IndentFunctionDeclarationAfterType: true
SpacesInParentheses: false
SpacesInAngles:  false
SpaceInEmptyParentheses: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: false
SpaceBeforeAssignmentOperators: true
CommentPragmas:  '^ IWYU pragma:'
SpaceBeforeParens: ControlStatements
AlignOperands: true
BinPackArguments: false
BinPackParameters: false
AlignAfterOpenBracket: Align
ObjCBinPackProtocolList: Never
AllowShortBlocksOnASingleLine: false
BreakBeforeBraces: Custom
BraceWrapping:
  AfterEnum: false
  AfterStruct: false
  SplitEmptyFunction: false
  AfterClass: false
  AfterControlStatement: false
  AfterFunction: false
  AfterNamespace: false
  AfterObjCDeclaration: false
  BeforeCatch: false
  AfterExternBlock: false
  AfterUnion: false
  AfterStruct: false
  BeforeElse: false
  SplitEmptyFunction: true
  SplitEmptyRecord: true
  SplitEmptyNamespace: true
IncludeBlocks: Merge
IncludeCategories:
  - Regex:           '^<.*\.h>'
    Priority:        -1
  - Regex:           '^<.*'
    Priority:        2
  - Regex:           '.*'
    Priority:        3


---
语言:ObjC
AccessModifierRoffset:0
构造函数InitializerInDentWidth:4
对象宽度:4
连续缩进宽度:4
AlignEscapedNewlinesLeft:false
AlignTrailingComments:正确
AllowWallParametersOfDeclarationOnNextline:true
AllowShortIfStatementsOnASingleLine:false
AllowShortLoopsOnASingleLine:false
AllowShortFunctionsOnSingleLine:false
AlwaysBreakTemplate声明:false
AlwaysBreakbefore多重限制:false
BreakBeforeBaryOperators:全部
BreakBeforeTernaly运算符:true
BreakConstructorInitializersBeforeComa:false
BinPackParameters:正确
列数限制:0
缩进宽度:4
构造函数初始化LonOneLine或NeperLine:false
派生指针绑定:false
实验自动检测打包:错误
IndentCaseLabels:true
MaxEmptyLinesToKeep:1
名称空间缩进:全部
ObjCSpaceAfterProperty:true
ObjCSpaceBeforeProtocolList:错误
PenaltyBreakBeforRefirstCall参数:19
处罚理由:300
罚金罚金串:1000
无过错处罚:120
罚金超出字符:1000000
处罚回复类型:60
PointerBindsToType:false
返回前的空间指令:1
Cpp11BracedListStyle:true
标准:Cpp11
标签宽度:4
从来没有
IndentFunctionDeclarationAfterType:true
空格和括号:false
空间角度:错误
SpaceInEmptyparenthesis:false
SpaceSincStyleCast圆括号:false
SpacesInContainerLiterals:false
SpaceBeforeAssignmentOperators:true
注释pragma:“^IWYU pragma:”
SpaceBeforeParens:ControlStatements
对齐操作数:true
BinPackArguments:false
BinPackParameters:false
AlignAfterOpen支架:对齐
ObjCBinPackProtocolList:永远不会
AllowShortBlocksOnASingleLine:false
BreakBeforeBraces:自定义
大括号包装:
AfterEnum:false
战后:假
SplitEmptyFunction:false
课后:假
AfterControlStatement:错误
后功能:false
AfterNamespace:false
声明:false
捕获前:错误
AfterExternBlock:错误
联合后:假
战后:假
在其他之前:错误
SplitEmptyFunction:true
SplitEmptyRecord:正确
SplitEmptyNamespace:true
includeblock:合并
IncludeCategories:
-正则表达式:“^”
优先权:-1
-正则表达式:'^