Как отформатировать objective-c блок с clang-format?

У меня есть следующий код, например:

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

Когда я применяю к нему формат clang, он превращается в:

[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

Ответ 1

Наконец, я закончил писать такие блоки:

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

}];

Пустая строка в конце работает нормально. Или вам нужно отключить ограничение столбца:

#ColumnLimit: 120

Ответ 2

Просто добавьте это в файл настроек (.clang-format).

ObjCBlockIndentWidth: 4

Тогда блок понравится.

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

Надеюсь помочь вам.

В то же время я хотел бы добавить:

UseTab: Never
IndentWidth: 4