# 工具 https://github.com/mapbox/XcodeClangFormat # 函数名详细地址 英文 http://clang.llvm.org/docs/ClangFormatStyleOptions.html # 函数名详细地址 中文 https://www.cnblogs.com/PaulpauL/p/5929753.html # 语言: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto # Language: ObjC # 基于样式 BasedOnStyle: LLVM # 标准: Cpp11, Cpp03, Cpp11, Auto Standard: Auto # 对齐注释 # AlignTrailingComments: true # 指针和引用的对齐方式 PointerAlignment: Right # 缩进宽度 # 使用tab字符: Never, ForIndentation, ForContinuationAndIndentation, Alway IndentWidth: 4 # switch的case缩进 IndentCaseLabels: true # OC里面,在@property后加空格 ObjCSpaceAfterProperty: true # OC里面,在Protocol前后加空格 ObjCSpaceBeforeProtocolList: true # 针对 OC 的 block 的缩进宽度 ObjCBlockIndentWidth: 4 # OC的block嵌套参数不换行 ObjCBreakBeforeNestedBlockParam: false # OC 协议根据 ColumnLimit 长度 换行 ObjCBinPackProtocolList: Auto # 单行注释前的空格数 SpacesBeforeTrailingComments: 1 # 连续的空行保留几行 MaxEmptyLinesToKeep: 1 # 保留block里面的空行 KeepEmptyLinesAtTheStartOfBlocks: false NamespaceIndentation: Inner # 每行字符的限制,0表示没有限制 ColumnLimit: 200 CommentPragmas: '^ IWYU pragma:' # []中添加空格 SpacesInSquareBrackets: false # 括号后加空格 SpaceAfterCStyleCast: false # ()中添加空格 SpacesInParentheses : false # 容器类前添加空格 SpacesInContainerLiterals: true # 赋值运算符前加空格 SpaceBeforeAssignmentOperators: true # 在空括号中加空格 SpaceInEmptyParentheses: false # 在<>中间插入空格 SpacesInAngles: false # 换行的时候对齐操作符 AlignOperands: true # 括号中的(),{},[]代码对齐方式 AlignAfterOpenBracket: Align # 在续行(\ # 下一行)时的缩进长度 # ContinuationIndentWidth: 0 AlignConsecutiveMacros: true # 赋值=对齐 AlignConsecutiveAssignments: false # define 换行时反斜杠位置:左对齐 AlignEscapedNewlines: Left # 声明参数对齐 AlignConsecutiveDeclarations: false # 运算符位置 BreakBeforeBinaryOperators: None # 如果为真(true), 三元运算符将被放置在换行后 BreakBeforeTernaryOperators: false # 允许短的函数放在同一行 AllowShortFunctionsOnASingleLine: true # 允许case在同一行 AllowShortCaseLabelsOnASingleLine: false # 允许if在同一行 AllowShortIfStatementsOnASingleLine: true # 允许while在同一行 AllowShortLoopsOnASingleLine: false # 允许将简单的语句块放到同一行 AllowShortBlocksOnASingleLine: true # 总是在返回类型后换行 AlwaysBreakAfterReturnType: None # 总是在多行string字面量前换行 AlwaysBreakBeforeMultilineStrings: false # 总是在template声明后换行 AlwaysBreakTemplateDeclarations: MultiLine # 缩进函数名 IndentWrappedFunctionNames: false # 形参 如果为false要么都在同一行,要么各有一行 BinPackParameters: false # 实参 如果为false要么都在同一行,要么各有一行 BinPackArguments: false # 在大括号前换行: Attach(始终将大括号附加到周围的上下文), Linux(除函数、命名空间和类定义,与Attach类似), # Mozilla(除枚举、函数、记录定义,与Attach类似), Stroustrup(除函数定义、catch、else,与Attach类似), # Allman(总是在大括号前换行), GNU(总是在大括号前换行,并对于控制语句的大括号增加额外的缩进), WebKit(在函数前换行), Custom # 注:这里认为语句块也属于函数 BreakBeforeBraces: Custom # 大括号换行,只有当BreakBeforeBraces设置为Custom时才有效 BraceWrapping: # class定义后面 AfterClass: true # 控制语句后面 AfterControlStatement: false AfterCaseLabel: false # enum定义后面 AfterEnum: false # 函数定义后面(OC 无效) AfterFunction: false # 命名空间定义后面 AfterNamespace: false # OC 定义后面 AfterObjCDeclaration: false # struct定义后面 AfterStruct: false # union定义后面 AfterUnion: false # catch之前 BeforeCatch: false # else之前 BeforeElse: false # 缩进大括号 IndentBraces: false #false 时,空方法体 {} 放在一行 SplitEmptyFunction: true #false 时,空记录(例如,类,结构或联合){} 放在一行 SplitEmptyRecord: true # false 且 AfterNamespace == true 时 空命名空间体可放到一行: {} SplitEmptyNamespace: true