使用spacecommander代码格式化
1.cd到需要格式化的项目根目录(和.git同级文件夹)
2.执行setup-repo.sh脚本(注意脚本需要全路径),执行完后会在项目根目录多一个隐藏文件.clang-format ,这是一个替身文件。完成
spacecommander文件中的 .clang-format 文件修改后的内容
---
Language: ObjC #格式化https://clang.llvm.org/docs/ClangFormatStyleOptions.html
BasedOnStyle: LLVM #Google # 基于LLVM格式
AccessModifierOffset: -1 # 访问说明符(public、private等)的偏移
ConstructorInitializerIndentWidth: 4 #缩进
SortIncludes: false # 允许排序#include
AlignAfterOpenBracket: true # 在未封闭(括号的开始和结束不在同一行)的括号中的代码是否对齐
AlignEscapedNewlinesLeft: true
AlignOperands: false # 换行的时候对齐操作符
AlignTrailingComments: true # 对齐连续的尾随的注释
AllowAllParametersOfDeclarationOnNextLine: false # 允许函数声明的所有参数在放在下一行
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false # 允许短的case标签放在同一行
AllowShortIfStatementsOnASingleLine: true # 允许短的if语句保持在同一行
AllowShortFunctionsOnASingleLine: All # 是否允许短方法单行
AllowShortLoopsOnASingleLine: true # 允许短的循环保持在同一行
AlwaysBreakAfterDefinitionReturnType: false
AlwaysBreakTemplateDeclarations: false
AlwaysBreakBeforeMultilineStrings: false
BreakBeforeBinaryOperators: None
BreakBeforeTernaryOperators: false
BreakConstructorInitializersBeforeComma: false # 在构造函数初始化时按逗号断行,并以冒号对齐
BinPackArguments: true
BinPackParameters: true
ColumnLimit: 0 # 每行字符的限制,0表示没有限制
ConstructorInitializerAllOnOneLineOrOnePerLine: true
DerivePointerAlignment: false
ExperimentalAutoDetectBinPacking: false
IndentCaseLabels: true # 缩进case标签
IndentWrappedFunctionNames: false
IndentFunctionDeclarationAfterType: false
MaxEmptyLinesToKeep: 1 # 连续的空行保留几行
KeepEmptyLinesAtTheStartOfBlocks: false #是否保留block里面开始的空行们
NamespaceIndentation: Inner
ObjCBlockIndentWidth: 4 # 针对OC的block的缩进宽度
ObjCBreakBeforeNestedBlockParam: false
ObjCSpaceAfterProperty: true # 针对OC,属性名后加空格
ObjCSpaceBeforeProtocolList: true #OC里面,是否在Protocol名字列表前面加空格,默认为true。
PenaltyBreakBeforeFirstCallParameter: 10000
PenaltyBreakComment: 300
PenaltyBreakString: 1000
PenaltyBreakFirstLessLess: 120
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Right # 针和引用的对齐: Left, Right, Middle
SpacesBeforeTrailingComments: 1 # 在尾随的评论前添加的空格数(只适用于//)
Cpp11BracedListStyle: true
Standard: Auto
IndentWidth: 4 # 缩进宽度
TabWidth: 8 # tab键盘的宽度
UseTab: Never
# 连续声明时,多行声明语句按照=对齐
AlignConsecutiveDeclarations: true
#括号风格
BreakBeforeBraces: Attach # 圆括号的换行方式
BraceWrapping:
AfterClass: true
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: true
AfterObjCDeclaration: true
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: false
SpacesInParentheses: false #是否在(后面和)前面加空格,默认为false
SpacesInSquareBrackets: false # 中括号两边空格 []
SpacesInAngles: false # 在尖括号的<后和>前添加空格
SpaceInEmptyParentheses: false # 在空的圆括号中添加空格
SpacesInCStyleCastParentheses: false
SpaceAfterCStyleCast: false # 在C风格类型转换后添加空格
SpacesInContainerLiterals: false # 容器类的空格 例如 OC的字典
SpaceBeforeAssignmentOperators: true # 在赋值运算符之前添加空格
AlignConsecutiveMacros: true # 宏赋值对齐
ContinuationIndentWidth: 4 #在续行(# 下一行)时的缩进长度
CommentPragmas: "^ IWYU pragma:"
ForEachMacros: [foreach, Q_FOREACH, BOOST_FOREACH]
SpaceBeforeParens: ControlStatements # 开圆括号之前添加一个空格: Never, ControlStatements, Always
DisableFormat: false #决定着当前的配置文件是否起作用 (false 起作用 true 不起作用)
---