我在使用 clang 格式和块时遇到了一些问题。我想为带有尾随块的方法调用维护以下格式:
[self presentViewController:alertController animated:YES completion:^{
NSLog(@"Output");
// Do something
}];
我已将 ColumnLimit 设置为 0,它适用于任何地方,但它的副作用是不格式化块内的任何内容(if 语句、其他调用等)。我能找到的在块内格式化代码的唯一方法是将 ColumnLimit 设置为 > 0,但是,即使我将其设置为 100000 之类的巨大值,它也会为每个参数添加中断,这是我不想要的:
[self presentViewController:alertController
animated:YES
completion:^{
NSLog(@"Output");
// Do something
}];
因此,我想要的组合是让块内的代码正确格式化,同时不涉及方法调用的任何其他内容。
我的 clang 格式配置:
Language: Cpp
ColumnLimit: 0
AllowShortBlocksOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortLoopsOnASingleLine: false
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 1
IndentWidth: 4
TabWidth: 4
UseTab: Never
PointerAlignment: Right
DerivePointerAlignment: false
ObjCSpaceAfterProperty: true
BreakBeforeBraces: Stroustrup
AllowShortIfStatementsOnASingleLine: false
BreakBeforeTernaryOperators: false
IndentCaseLabels: true
AllowShortCaseLabelsOnASingleLine: false
AlignTrailingComments: true
BinPackParameters: false
BinPackArguments: false
AllowShortFunctionsOnASingleLine: false
IndentWrappedFunctionNames: false
ObjCSpaceBeforeProtocolList: true
SpacesInParentheses: false
SpacesInAngles: false
SpaceInEmptyParentheses: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: true
SpaceBeforeAssignmentOperators: true
SpacesBeforeTrailingComments: 1
ObjCBlockIndentWidth: 4
Clang 格式版本是 3.6。
任何帮助都会很棒,不确定这是否可以实现。