常用clang-format配置
语言: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto
Language: Cpp
BasedOnStyle: LLVM
访问说明符(public、private等)的偏移
AccessModifierOffset: -4
开括号(开圆括号、开尖括号、开方括号)后的对齐: Align, DontAlign, AlwaysBreak(总是在开括号后换行)
AlignAfterOpenBracket: Align
JSON 元素换行
BreakArrays: false
对齐数组列
AlignArrayOfStructures: Left
连续赋值时,对齐所有等号
AlignConsecutiveAssignments: None
对齐连续位字段
AlignConsecutiveBitFields: AcrossEmptyLines
连续声明时,对齐所有声明的变量名
AlignConsecutiveDeclarations: None
对齐连续宏定义
AlignConsecutiveMacros: AcrossEmptyLinesAndComments
AlignConsecutiveMacros: AcrossComments
逃脱换行(使用反斜杠换行)的反斜杠
AlignEscapedNewlines: Left
操作数对齐方式
AlignOperands: true
尾随的注释对齐
AlignTrailingComments: Always
AlignTrailingComments: false
允许函数参数在一行
AllowAllArgumentsOnNextLine: true
允许函数声明的所有参数在放在一行
AllowAllParametersOfDeclarationOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: false
允许短的块放在同一行
AllowShortBlocksOnASingleLine: Never
允许短的case标签放在同一行
AllowShortCaseLabelsOnASingleLine: false
允许短的枚举放在同一行
AllowShortEnumsOnASingleLine: false
允许短的函数放在同一行
AllowShortFunctionsOnASingleLine: Empty
允许短的if语句保持在同一行
AllowShortIfStatementsOnASingleLine: Never
允许短的匿名函数lamda表达式放在同一行
AllowShortLambdasOnASingleLine: Empty
允许短的循环while保持在同一行
AllowShortLoopsOnASingleLine: false
LINUX
AlwaysBreakAfterDefinitionReturnType: None
总是在返回类型后换行
AlwaysBreakAfterReturnType: None
总是在多行string字面量前换行
AlwaysBreakBeforeMultilineStrings: false
总是在template声明后换行
AlwaysBreakTemplateDeclarations: MultiLine
AlwaysBreakTemplateDeclarations: No
表示函数实参要么都在同一行,要么都各自一行
BinPackArguments: true
false表示所有形参要么都在同一行,要么都各自一行
BinPackParameters: true
位域冒号对齐方式
BitFieldColonSpacing: Both
在二元运算符前换行
BreakBeforeBinaryOperators: None
在大括号前换行
BreakBeforeBraces: Linux
在concept前换行
BreakBeforeConceptDeclarations: Never
LINUX
IncludeCategories:
- Regex: '.*'
Priority: 1
IncludeIsMainRegex: '(Test)?$'
在三元运算符前换行
BreakBeforeTernaryOperators: false
构造函数初始值设定项换行样式
BreakConstructorInitializers: BeforeColon
BreakConstructorInitializers: BeforeComma
继承列表样式
BreakInheritanceList: AfterColon
字符串换行样式
BreakStringLiterals: false
每行字符的限制,0表示没有限制
ColumnLimit: 100
描述具有特殊意义的注释的正则表达式,它不应该被分割为多行或以其它方式改变
CommentPragmas: '^ IWYU pragma:'
在新行上声明每个命名空间
CompactNamespaces: false
构造函数的初始化列表的缩进宽度
ConstructorInitializerIndentWidth: 4
延续的行的缩进宽度
ContinuationIndentWidth: 4
去除C++11的列表初始化的大括号{后和}前的空格
Cpp11BracedListStyle: true
Cpp11BracedListStyle: false
继承最常用的换行方式
DeriveLineEnding: false
继承最常用的指针和引用的对齐方式
DerivePointerAlignment: false
关闭格式化
DisableFormat: false
删除访问修饰符后的所有空行
EmptyLineAfterAccessModifier: Never
仅当访问修饰符开始一个新的逻辑块时才添加空行
EmptyLineBeforeAccessModifier: Never
自动检测函数的调用和定义是否被格式为每行一个参数(Experimental)
ExperimentalAutoDetectBinPacking: false
自动补充namespace注释
FixNamespaceComments: false
需要被解读为foreach循环而不是函数调用的宏
ForEachMacros: [ 'RANGES_FOR', 'FOREACH' ]
IfMacros: [ 'IF' ]
多个#include块合并在一起并排序为一个
IncludeBlocks: Merge
IncludeBlocks: Preserve
缩进访问修饰符
IndentAccessModifiers: false
缩进case标签
IndentCaseLabels: false
case 标签后面的块使用与 case 标签相同的缩进级别
IndentCaseBlocks: false
向后兼容缩进外部块
IndentExternBlock: AfterExternBlock
缩进goto标签。
IndentGotoLabels: false
缩进预处理器指令
IndentPPDirectives: BeforeHash
IndentPPDirectives: None
缩进宽度
IndentWidth: 4
函数返回类型换行时,缩进函数声明或函数定义的函数名
IndentWrappedFunctionNames: false
在控制语句(if、else、for、do和while)后插入大括号
InsertBraces: true
插入尾随逗号
InsertTrailingCommas: None
保留JavaScript字符串引号
JavaScriptQuotes: Leave
包装 JavaScript 导入/导出语句
JavaScriptWrapImports: true
保留在块开始处的空行
KeepEmptyLinesAtTheStartOfBlocks: false
相对于 lambda 签名对齐 lambda 主体
LambdaBodyIndentation: Signature
开始一个块的宏的正则表达式
MacroBlockBegin: ''
结束一个块的宏的正则表达式
MacroBlockEnd: ''
连续空行的最大数量
MaxEmptyLinesToKeep: 1
命名空间的缩进
NamespaceIndentation: All
NamespaceIndentation: None
指针的对齐: Left, Right, Middle
PointerAlignment: Right
引用的对齐
ReferenceAlignment: Pointer
允许重新排版注释
ReflowComments: true
ReflowComments: false
RemoveBracesLLVM: false
短命名空间跨越的最大展开行数
ShortNamespaceLines: 1
允许排序#include
SortIncludes: Never
java静态导入放在非静态导入之前
SortJavaStaticImport: Before
对using声明排序
SortUsingDeclarations: false
在C风格类型转换后添加空格
SpaceAfterCStyleCast: false
在!后添加空格
SpaceAfterLogicalNot: false
在Template关键字后添加空格
SpaceAfterTemplateKeyword: true
不要确保指针限定符周围有空格
SpaceAroundPointerQualifiers: Default
在赋值运算符之前添加空格
SpaceBeforeAssignmentOperators: true
不在case冒号之前添加空格
SpaceBeforeCaseColon: false
不在C++11大括号列表之前添加空格
SpaceBeforeCpp11BracedList: false
在构造函数初始化器冒号之前添加空格
SpaceBeforeCtorInitializerColon: true
在继承冒号前添加空格
SpaceBeforeInheritanceColon: true
开圆括号之前添加一个空格
SpaceBeforeParens: ControlStatements
SpaceBeforeParens: ControlStatementsExceptControlMacros
在基于范围的for循环冒号之前添加空格
SpaceBeforeRangeBasedForLoopColon: true
中括号前空格
SpaceBeforeSquareBrackets: false
{}中间空格
SpaceInEmptyBlock: false
在空的圆括号中添加空格
SpaceInEmptyParentheses: false
在尾随的评论前添加的空格数(只适用于//)
SpacesBeforeTrailingComments: 10
在尖括号的<后和>前添加空格
SpacesInAngles: Never
在C风格类型转换的括号中添加空格
SpacesInCStyleCastParentheses: false
不在if/for/switch/while条件周围插入空格
SpacesInConditionalStatement: false
在容器(ObjC和JavaScript的数组和字典等)字面量中添加空格
SpacesInContainerLiterals: true
SpacesInContainerLiterals: false
行注释开头允许有多少个空格。要禁用最大值,请将其设置为-1,除此之外,最大值优先于最小值
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
在圆括号的(后和)前添加空格
SpacesInParentheses: false
在方括号的[后和]前添加空格,lamda表达式和未指明大小的数组的声明不受影响
SpacesInSquareBrackets: false
标准
Standard: Auto
tab宽度
TabWidth: 4
使用\r\n换行替代\n
UseCRLF: false
删除非空函数的右大括号后的分号
RemoveSemicolon: true
指定使用空行来分隔定义块,包括类、结构、枚举和函数
SeparateDefinitionBlocks: Always
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 4
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: true
Taken from git's rules
PenaltyBreakAssignment: 10
PenaltyBreakBeforeFirstCallParameter: 30
PenaltyBreakComment: 10
PenaltyBreakFirstLessLess: 0
PenaltyBreakString: 10
PenaltyExcessCharacter: 100
PenaltyReturnTypeOnItsOwnLine: 60
UseTab: Always
使用tab字符:ForIndentation——仅将制表符用于缩进
UseTab: ForIndentation
用制表符填充所有前导空格,并使用空格来对齐出现在一行中的内容
UseTab: ForContinuationAndIndentation
使用制表符进行行延续和缩进,使用空格进行对齐
UseTab: AlignWithSpaces

浙公网安备 33010602011771号