如何使用clang格式格式化objective-c块?

时间:2014-09-23 08:55:41

标签: objective-c xcode clang-format

我有以下代码,例如:

[cardRegistrationVC setCancelBlock:^{
  [weakSelf.navigationController popViewControllerAnimated:YES];
}];

当我对它应用clang-format时,它会变成:

[cardRegistrationVC setCancelBlock:^{ [weakSelf.navigationController popViewControllerAnimated:YES]; }];

如您所见,块内的代码出现在同一行。但我应该总是站在新的一条线上。

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

BasedOnStyle: LLVM
AllowShortIfStatementsOnASingleLine: false
AllowShortBlocksOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakBeforeMultilineStrings: false
IndentCaseLabels: true
ColumnLimit: 120
ObjCSpaceAfterProperty: true
KeepEmptyLinesAtTheStartOfBlocks: true
PenaltyBreakString: 1000000
SpacesInContainerLiterals: false

2 个答案:

答案 0 :(得分:8)

只需将其添加到设置文件(.clang-format)。

ObjCBlockIndentWidth: 4

然后该块就会这样。

 [cardRegistrationVC setCancelBlock:^{
     [weakSelf.navigationController popViewControllerAnimated:YES];
 }];
希望能帮到你。

同时我想添加:

UseTab: Never
IndentWidth: 4

答案 1 :(得分:1)

最后,我最终编写了这样的块:

[cardRegistrationVC setCancelBlock:^{   
  [weakSelf.navigationController popViewControllerAnimated:YES];

}];

最后的空行正常。 或者您必须禁用列限制:

#ColumnLimit: 120