如何固定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
-正则表达式:'^