clang-format 是一款代码格式化工具,可以导出配置到文件,以下是配置属性的作用:
(翻译自:https://clang.llvm.org/docs/ClangFormatStyleOptions.html )
(PS:功能还没有全测过,翻译可能有误,后续实践时需要订正)
---
# 语言 : None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto
Language: Cpp
# BasedOnStyle: LLVM
# 访问权限说明符的偏移(public\private等)
AccessModifierOffset: -2
# 开括号后的对齐(开圆括号、尖括号、方括号),
# 对齐方式有:Align, DontAlign, AlwaysBreak(总是在开括号后换行)
AlignAfterOpenBracket: Align
##################################################
# 对齐方式之 AlignConsecutiveStyle
# 连续相同操作时的对齐方式
# -- None - 不对齐
# -- Consecutive - 对齐所有连续操作(遇到空行或注释则不再对齐)
# -- AcrossEmptyLines - 在 Consecutive 的基础上,遇到空行时继续对齐,遇到注释时不再对齐
# -- AcrossComments - 在 Consecutive 的基础上,遇到注释时继续对齐,遇到空行时不再对齐
# -- AcrossEmptyLinesAndComments - 在 Consecutive 的基础上,遇到空行或注释时,继续对齐
##################################################
# 连续宏定义时的对齐方式 (@ref AlignConsecutiveStyle)
AlignConsecutiveMacros: Consecutive
# 连续赋值时的对齐方式(@ref AlignConsecutiveStyle)
AlignConsecutiveAssignments: AcrossEmptyLinesAndComments
# 连续位域的对齐方式(@ref AlignConsecutiveStyle)
AlignConsecutiveBitFields: Consecutive
# 连续声明时,变量名的对齐方式(@ref AlignConsecutiveStyle)
AlignConsecutiveDeclarations: Consecutive
# 反斜杆换行的对齐方式
# -- DontAlign - 不进行对齐
# -- Left - 反斜杠靠左对齐
# -- Right - 反斜杠靠右对齐
AlignEscapedNewlines: Left
# 二元、三元表达式的对齐方式(当表达式需要占用多行时)
# -- DontAlign - 不进行对齐
# -- Align - 从操作符开始对齐
# -- AlignAfterOperator - 从操作数开始对齐
AlignOperands: Align
# 是否对齐行尾注释?
# -- true - 启用对齐
# -- false - 无需对齐
AlignTrailingComments: true
# 当函数调用和参数无法放在同一行时,是否将参数全部放在下一行
# -- true - 全部放在下一行
# -- false - 不全部放在下一行
AllowAllArgumentsOnNextLine: true
# 当构造函数的成员变量初始化无法放在同一行时,是否将成员变量的初始化放在下一行?
# -- true - 全部放在下一行
# -- false - 不全部放在下一行
# NOTE : 本配置仅在 ConstructorInitializerAllOnOneLineOrOnePerLine 为 true 时有效
AllowAllConstructorInitializersOnNextLine: true
# 当函数声明和参数无法放在同一行时,是否将所有参数放在下一行?
# -- true - 所有参数放在下一行
# -- false - 不全部放在下一行
AllowAllParametersOfDeclarationOnNextLine: true
# 是否允许短的枚举放在同一行?
# -- true - 允许放在同一行
# -- false - 不允许放在同一行
AllowShortEnumsOnASingleLine: false
# 是否允许短的代码块放在同一行?
# -- Never - 不允许放在同一行
# -- Empty - 只有空的代码块允许放在同一行
# -- Always - 允许短的代码块放在同一行
AllowShortBlocksOnASingleLine: Empty
# 允许短的 case 标签和语句放在同一行?
# -- true - 允许放在同一行
# -- false - 不允许放在同一行
AllowShortCaseLabelsOnASingleLine: false
# 是否允许短的函数放在同一行?
# -- None - 不把短的函数放在同一行
# -- InlineOnly - 只把类内的内联函数放在同一行,全局的空函数不放在同一行
# -- Empty - 只把空的函数放在同一行
# -- Inline - 把类内的内联函数放在同一行,全局的空函数不放在同一行
# -- All - 都允许放在同一行
AllowShortFunctionsOnASingleLine: InlineOnly
# 允许短的 lambda 语句放在同一行?
# -- None - 不把短的 lambda 语句放在同一行
# -- Empty - 只把空的lambda 语句放在同一行
# -- Inline - 当短的 lambda 语句作为函数参数时,放在同一行
# -- All - 将短的 lambda 语句放在同一行
AllowShortLambdasOnASingleLine: All
# 是否允许短的 if 语句放在同一行?
# -- Never - 不把短的if语句放在同一行
# -- WithoutElse - 当没有