Objective-C lang式格式大括号

时间:2018-10-16 04:09:15

标签: objective-c xcode lint clang-format

我正在为我的Objective-C项目使用clang格式,但是我很难正确设置它。

这是我想要的结果:

- (NSString *)someMethod
{
  return @"My String";
}

这是格式化后的实际结果:

- (NSString *)someMethod {
  return @"My String";
}

这是我的.clang-format文件:

BasedOnStyle: WebKit
AlignTrailingComments: true
ColumnLimit: 120
IndentWidth: 2
KeepEmptyLinesAtTheStartOfBlocks: false
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: true
PointerBindsToType: false
SpacesBeforeTrailingComments: 1
TabWidth: 2
UseTab: Never
BreakBeforeBraces: Custom
BraceWrapping:
  AfterClass: true
  AfterControlStatement: false
  AfterEnum: true
  AfterExternBlock: true
  AfterFunction: true
  AfterNamespace: true
  AfterObjCDeclaration: true
  AfterStruct: true
  AfterUnion: true
  BeforeCatch: false
  BeforeElse: false
  IndentBraces: false
  SplitEmptyFunction: true
  SplitEmptyRecord: true
  SplitEmptyNamespace: true

我需要更改什么设置才能使格式化程序在Objective-C方法的大括号之前放一个换行符?

1 个答案:

答案 0 :(得分:1)

对于您的clang-format的任何微调,您最好不要使用BasedOnStyle,因为这对我来说只会产生随机且难以调试的结果。

最简单的方法可能是进行设置:BreakBeforeBraces: Custom,然后按照the documentation中的说明设置所需的所有内容:

BraceWrapping:   
  AfterClass:      false
  AfterControlStatement: false
  AfterEnum:       false
  AfterFunction:   true
  AfterNamespace:  false
  AfterObjCDeclaration: false
  AfterStruct:     false
  AfterUnion:      false
  BeforeCatch:     false
  BeforeElse:      false
  IndentBraces:    false