ReactiveCocoa的ClangFormat样式

时间:2016-07-07 12:27:32

标签: objective-c clang static-analysis reactive-cocoa clang-format

我正在使用ClangFormat

我希望从此

更新我的ReactiveCocoa代码的样式
   [[self.myService indexCase] subscribeNext:^(id response) {
        DDLogDebug(@"response : %@", response);
    }
        error:^(NSError *error) {
            [self.dataManager sendError:error];
        }];

到这个

  [[self.myService indexCase]
     subscribeNext:^(id response) {
        DDLogDebug(@"response : %@", response);
     } error:^(NSError *error) {
            [self.dataManager sendError:error];
        }];

我应该考虑使用哪些ClangFormat属性来实现这一目标?

我的当前.clang-format档案:

BasedOnStyle: WebKit
AlignTrailingComments: true
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: true
BreakBeforeBraces: Linux
ColumnLimit: 120
IndentCaseLabels: true
IndentWidth: 4
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 2
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: true
PointerBindsToType: false
SpacesBeforeTrailingComments: 1
TabWidth: 4
UseTab: Never

2 个答案:

答案 0 :(得分:0)

添加:

AllowAllParametersOfDeclarationOnNextLine True

BinPackParameters True

答案 1 :(得分:0)

我将//放在第一个运算符之前来实现此目的。 clang-format将其检测为注释,并在该语句的其余部分的下一行自动启动。您不需要将它放在每一行上,通常第一行足够但有时不行(它还取决于.clang-format文件中的其他设置)。

所以看起来有点像:

[[self.myService indexCase] //
    subscribeNext:^(id response) {
        DDLogDebug(@"response : %@", response);
    } error:^(NSError *error) {
        [self.dataManager sendError:error];
    }];

我使用这个技巧让clang-format打破我想要的代码。它有点hacky,甚至可能看起来有些丑陋,但我认为增加可读性的好处比偶尔的空注释语句更有价值,所以它不会伤害我的眼睛。