在项目根目录下(workroot)添加文件.clang-format
# 基于哪个配置文件
BasedOnStyle: Google
# 访问说明符的偏移(public private)
AccessModifierOffset: -4
# 括号之后,水平对齐参数: Align DontAlign AlwaysBreak
AlignAfterOpenBracket: AlwaysBreak
# 水平对齐二元和三元表达式的操作数
AlignOperands: false
# 允许函数声明的所有参数在放在下一行
AllowAllParametersOfDeclarationOnNextLine: false
# 允许短的块放在同一行
AllowShortBlocksOnASingleLine: false
# 允许短的case标签放在同一行
AllowShortCaseLabelsOnASingleLine: false
# 允许短的函数放在同一行: None, InlineOnly(定义在类中), Empty(空函数), Inline(定义在类中,空函数), All
AllowShortFunctionsOnASingleLine: Empty
# 是否允许短if单行 If true, if (a) return; 可以放到同一行
AllowShortIfStatementsOnASingleLine: false
# 允许短的循环保持在同一行
AllowShortLoopsOnASingleLine: false
# 总是在返回类型后换行: None, All, TopLevel(顶级函数,不包括在类中的函数),
# AllDefinitions(所有的定义,不包括声明), TopLevelDefinitions(所有的顶级函数的定义)
AlwaysBreakAfterReturnType: None
# 总是在template声明后换行
AlwaysBreakTemplateDeclarations: true
# false表示函数实参要么都在同一行,要么都各自一行
BinPackArguments: false
# false表示所有形参要么都在同一行,要么都各自一行
BinPackParameters: false
# 在构造函数的初始化列表的冒号之后换行
BreakConstructorInitializers: AfterColon
# 每行字符的限制
ColumnLimit: 80
# 构造函数的初始化列表的缩进宽度
ConstructorInitializerIndentWidth: 8
# 延续的行的缩进宽度
ContinuationIndentWidth: 8
# 继承最常用的指针和引用的对齐方式
DerivePointerAlignment: true
# true 自动检测补全命名空间尾部的大括号
FixNamespaceComments: true
# case 是否缩进一级
IndentCaseLabels: false
# 缩进宽度
IndentWidth: 4
# 连续最大空行数
MaxEmptyLinesToKeep: 1
# 命名空间的缩进: None, Inner(缩进嵌套的命名空间中的内容), All
NamespaceIndentation: None
PenaltyBreakAssignment: 2
# 在call(后对函数调用换行的处罚
PenaltyBreakBeforeFirstCallParameter: 1
# 在一个注释中引入换行的处罚
PenaltyBreakComment: 500
# 第一次在<<前换行的处罚
PenaltyBreakFirstLessLess: 120
# 在一个字符串字面量中引入换行的处罚
PenaltyBreakString: 1000
# 对于每个在行字符数限制之外的字符的处罚
PenaltyExcessCharacter: 1000000
# 将函数的返回类型放到它自己的行的处罚
PenaltyReturnTypeOnItsOwnLine: 400
# 指针和引用的对齐: Left(int* a;), Right(int *a;), Middle(int * a;)
PointerAlignment: Left
# 允许排序#include,首字母排序
SortIncludes: false
MAC 对文件执行格式化 option+command+L
个人习惯修改以下配置
# 继承最常用的指针和引用的对齐方式
DerivePointerAlignment: false
# 允许排序#include,首字母排序
SortIncludes: true
# 在构造函数的初始化列表的逗号前换行
BreakConstructorInitializersBeforeComma: true
# 在构造函数的初始化列表的冒号之后换行
BreakConstructorInitializers: BeforeColon
# 在二元运算符前换行: None(在操作符后换行), NonAssignment(在非赋值的操作符前换行), All(在操作符前换行)
BreakBeforeBinaryOperators: NonAssignment
网友评论