--- # 语言: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto Language: Cpp BasedOnStyle: Google # 访问说明符(public、private等)的偏移 AccessModifierOffset: -4 # 开括号(开圆括号、开尖括号、开方括号)后的对齐: Align, DontAlign, AlwaysBreak(总是在开括号后换行) AlignAfterOpenBracket: Align # 对齐数组列 AlignArrayOfStructures: None # 对齐连续宏定义 AlignConsecutiveMacros: #AcrossEmptyLinesAndComments Enabled: true AcrossEmptyLines: true AcrossComments: false AlignCompound: false PadOperators: false # 连续赋值时,对齐所有等号 AlignConsecutiveAssignments: Enabled: true AcrossEmptyLines: false AcrossComments: false AlignCompound: false PadOperators: false # 对齐连续位字段 AlignConsecutiveBitFields: Enabled: true AcrossEmptyLines: false AcrossComments: false AlignCompound: false PadOperators: false # 连续声明时,对齐所有声明的变量名 AlignConsecutiveDeclarations: Enabled: true AcrossEmptyLines: false AcrossComments: false AlignCompound: false PadOperators: false # 左对齐逃脱换行(使用反斜杠换行)的反斜杠 AlignEscapedNewlines: Left # 水平对齐二元和三元表达式的操作数 AllowAllArgumentsOnNextLine: true AllowAllConstructorInitializersOnNextLine: true AlwaysBreakAfterDefinitionReturnType: None AlignOperands: true #Align # 对齐连续的尾随的注释 AlignTrailingComments: true # 允许函数声明的所有参数在放在下一行 AllowAllParametersOfDeclarationOnNextLine: false # 允许短的枚举放在同一行 AllowShortEnumsOnASingleLine: true # 允许短的块放在同一行 AllowShortBlocksOnASingleLine: Never # 允许短的case标签放在同一行 AllowShortCaseLabelsOnASingleLine: false # 允许短的函数放在同一行 AllowShortFunctionsOnASingleLine: false #All # 允许短的匿名函数放在同一行 AllowShortLambdasOnASingleLine: All # 允许短的if语句保持在同一行 AllowShortIfStatementsOnASingleLine: Never # 允许短的循环保持在同一行 AllowShortLoopsOnASingleLine: false # 总是在返回类型后换行 AlwaysBreakAfterReturnType: None # 总是在多行string字面量前换行 AlwaysBreakBeforeMultilineStrings: false # 总是在template声明后换行 AlwaysBreakTemplateDeclarations: MultiLine # 属性声明相关配置 AttributeMacros: - __capability # false表示函数实参要么都在同一行,要么都各自一行 BinPackArguments: true # false表示所有形参要么都在同一行,要么都各自一行 BinPackParameters: true # 是否允许短方法单行,只有一行的函数将不会分行,直接写在函数名后 # 括号是分行,还是不分行,只有当 BreakBeforeBraces 设置为 Custom 时才有效 BraceWrapping: AfterCaseLabel: true # class 定义后面 AfterClass: true # 控制语句后面 AfterControlStatement: true AfterEnum: true AfterFunction: true AfterNamespace: true AfterObjCDeclaration: true AfterStruct: true AfterUnion: true AfterExternBlock: false BeforeCatch: true BeforeElse: true # 缩进大括号 IndentBraces: false SplitEmptyFunction: true SplitEmptyRecord: true SplitEmptyNamespace: true BreakBeforeBinaryOperators: None # BreakAfterAttributes: Never # BreakArrays: true # BreakBeforeConceptDeclarations: Always BreakBeforeBraces: Custom BreakBeforeInheritanceComma: false BreakInheritanceList: BeforeColon # 三元运算符换行后在前 BreakBeforeTernaryOperators: true BreakConstructorInitializersBeforeComma: false # 构造函数初始化列表换行规则 BreakConstructorInitializers: BeforeColon BreakAfterJavaFieldAnnotations: false BreakStringLiterals: true # 代码最大列数 ColumnLimit: 0 CommentPragmas: "^ IWYU pragma:" CompactNamespaces: false ConstructorInitializerAllOnOneLineOrOnePerLine: false # 构造函数初始化列表和继承列表换行后缩进的字符数,无符号整数。 ConstructorInitializerIndentWidth: 4 # 当一行代码放不下,自动换行后的缩进 ContinuationIndentWidth: 4 # 大括号列表附近是否有空格{ 1, 2 }/{1, 2} Cpp11BracedListStyle: true DeriveLineEnding: true DerivePointerAlignment: false # 设置位false后可以使用// clang-format off .. // clang-format on注释禁用某段代码格式化 DisableFormat: false # 类中访问修饰符后放置空行 EmptyLineAfterAccessModifier: Never # 类中访问修饰符之前放置空行 EmptyLineBeforeAccessModifier: LogicalBlock ExperimentalAutoDetectBinPacking: false # 自动修复命名空间注释名称 FixNamespaceComments: true ForEachMacros: - forever - foreach - Q_FOREACH - BOOST_FOREACH IfMacros: - KJ_IF_MAYBE # 头文件分类排序 IncludeBlocks: Preserve IncludeCategories: - Regex: '^"(llvm|llvm-c|clang|clang-c)/' Priority: 2 SortPriority: 0 - Regex: '^(<|"(gtest|gmock|isl|json)/)' Priority: 3 SortPriority: 0 - Regex: ".*" Priority: 1 SortPriority: 0 IncludeIsMainRegex: "(Test)?$" IncludeIsMainSourceRegex: "" # 指定访问修饰符是否应具有自己的缩进级别 IndentAccessModifiers: false # case的{}缩进 IndentCaseBlocks: true # case的标签是否缩进 IndentCaseLabels: true IndentExternBlock: AfterExternBlock IndentGotoLabels: true # 预处理器指令缩进样式 IndentPPDirectives: None IndentRequiresClause: true # 换行缩进字符数 IndentWidth: 4 IndentWrappedFunctionNames: false # 控制语句(if、else、for、do和while)后面自动插入大括号(危险,可能导致代码错误) InsertBraces: false # InsertNewlineAtEOF: false # 仅适用于 JavaScript # InsertTrailingCommas: None # IntegerLiteralSeparator: # 格式化整数文字分隔符 # Binary: 4 # 二进制文本中的分隔符格式,按4位分割 # BinaryMinDigits: 0 # 达到多少位二进制文本才进行分割 # Decimal: 3 # 以十进制文字格式设置分隔符的格式。 # DecimalMinDigits: 0 # 十进制最小分割位数 # Hex: 2 # 十六进制文字格式分割个数 # HexMinDigits: 0 JavaScriptQuotes: Leave JavaScriptWrapImports: true KeepEmptyLinesAtTheStartOfBlocks: true # lambda表达式换行、缩进样式样式 LambdaBodyIndentation: Signature # 换行符样式 # LineEnding: DeriveLF MacroBlockBegin: "" MacroBlockEnd: "" # 要保留的最大连续空行数 MaxEmptyLinesToKeep: 1 # 命名空间缩进 NamespaceIndentation: None ObjCBinPackProtocolList: Auto ObjCBlockIndentWidth: 0 ObjCBreakBeforeNestedBlockParam: true ObjCSpaceAfterProperty: false ObjCSpaceBeforeProtocolList: true # 设置初始化列表,和BreakConstructorInitializers 有一定冲突 PackConstructorInitializers: BinPack PenaltyBreakAssignment: 2 PenaltyBreakBeforeFirstCallParameter: 19 PenaltyBreakComment: 300 PenaltyBreakFirstLessLess: 120 PenaltyBreakString: 1000 PenaltyBreakTemplateDeclaration: 10 PenaltyExcessCharacter: 1000000 PenaltyReturnTypeOnItsOwnLine: 60 # 指针对齐风格 PointerAlignment: Right ReflowComments: true PPIndentWidth: -1 # 不同的排列说明符和限定符的方法(危险,可能改变代码含义) QualifierAlignment: Leave # 引用对齐风格 # ReferenceAlignment: Pointer # RemoveBracesLLVM: false # RemoveSemicolon: false # RequiresClausePosition: OwnLine # RequiresExpressionIndentation: OuterScope # 指定使用空行分隔定义块,包括 类、结构、枚举和函数。 SeparateDefinitionBlocks: Always ShortNamespaceLines: 1 # 头文件排序规则 SortIncludes: CaseSensitive SortJavaStaticImport: Before # using声明排序 Lexicographic SortUsingDeclarations: true # 定义在哪些情况下在左括号之前放置空格 SpaceBeforeParens: Custom # 在C语言风格的强制类型转换后插入空格 SpaceAfterCStyleCast: true # 不在逻辑运算符 !后插入控制 SpaceAfterLogicalNot: false SpaceAfterTemplateKeyword: true SpaceAroundPointerQualifiers: Default # 赋值运算符前是否有空格 SpaceBeforeAssignmentOperators: true # case的:前是否有空格 SpaceBeforeCaseColon: false # 调用构造函数时初始化列表的大括号前面是否有空格 SpaceBeforeCpp11BracedList: false # 构造函数的:前面是否有空格 SpaceBeforeCtorInitializerColon: true # 继承的:前面是否有空格 SpaceBeforeInheritanceColon: true # 函数调用时括号前添加空格 # SpaceBeforeParentheses: true # 括号内部添加空格 SpacesInParentheses: false # 范围的for循环冒号之前删除空格 SpaceBeforeRangeBasedForLoopColon: true SpaceInEmptyBlock: false SpaceInEmptyParentheses: false # 尾部//注释之前的空格 SpacesBeforeTrailingComments: 1 SpacesInAngles: false SpacesInConditionalStatement: false SpacesInContainerLiterals: true SpacesInCStyleCastParentheses: false SpacesInSquareBrackets: false # 不在[前添加空格 SpaceBeforeSquareBrackets: false # 单独控制不同情况下括号前面的空格,在SpaceBeforeParens==Custom时生效 SpaceBeforeParensOptions: AfterControlStatements: true AfterForeachMacros: true AfterFunctionDefinitionName: false AfterFunctionDeclarationName: false AfterIfMacros: true AfterOverloadedOperator: true AfterRequiresInClause: true AfterRequiresInExpression: true BeforeNonEmptyParentheses: true # 位域:每边都添加空格 BitFieldColonSpacing: Both # 标准 解析和格式化与此标准兼容的c++结构 Standard: Latest # 在语句前面被忽略的宏定义,就好像它们是一个属性一样 StatementAttributeLikeMacros: - Q_EMIT # 应该被解释为完整语句的宏定义 StatementMacros: - Q_UNUSED - QT_REQUIRE_VERSION - Q_CLASSINFO - Q_ENUM - Q_ENUM_NS - Q_FLAG - Q_FLAG_NS - Q_GADGET - Q_GADGET_EXPORT - Q_INTERFACES - Q_MOC_INCLUDE - Q_NAMESPACE - Q_NAMESPACE_EXPORT - Q_OBJECT - Q_PROPERTY - Q_REVISION - Q_DISABLE_COPY - Q_SET_OBJECT_NAME - QT_BEGIN_NAMESPACE - QT_END_NAMESPACE - QML_ADDED_IN_MINOR_VERSION - QML_ANONYMOUS - QML_ATTACHED - QML_DECLARE_TYPE - QML_DECLARE_TYPEINFO - QML_ELEMENT - QML_EXTENDED - QML_EXTENDED_NAMESPACE - QML_EXTRA_VERSION - QML_FOREIGN - QML_FOREIGN_NAMESPACE - QML_IMPLEMENTS_INTERFACES - QML_INTERFACE - QML_NAMED_ELEMENT - QML_REMOVED_IN_MINOR_VERSION - QML_SINGLETON - QML_UNAVAILABLE - QML_UNCREATABLE - QML_VALUE_TYPE # tab宽度 TabWidth: 4 # 使用\n换行 UseCRLF: false # 使用tab字符:ForIndentation——仅将制表符用于缩进 UseTab: Never # 对空格敏感的宏定义 WhitespaceSensitiveMacros: - STRINGIZE - PP_STRINGIZE - BOOST_PP_STRINGIZE - NS_SWIFT_NAME - CF_SWIFT_NAME ---