首页 > 其他分享 >clang-format

clang-format

时间:2024-11-21 15:57:18浏览次数:1  
标签:建议 false format 换行 是否 clang 对齐 true


Language:        Cpp
 
# 基于的编码规范, 可选:
# - LLVM: https://llvm.org/docs/CodingStandards.html
# - Google: https://google.github.io/styleguide/cppguide.html
# - Chromium: https://chromium.googlesource.com/chromium/src/+/refs/heads/main/styleguide/styleguide.md
# - Mozilla: https://firefox-source-docs.mozilla.org/code-quality/coding-style/index.html
# - WebKit: https://www.webkit.org/coding/coding-style.html
# - Microsoft: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference
# - GNU: https://www.gnu.org/prep/standards/standards.html
# - InheritParentConfig: 继承父目录的编码规范, 如果有的话, 不是一个真正的编码规范
# - None: 不使用, 即自动配置, 也就是本文件中的自定义内容
# BasedOnStyle:  LLVM
 
#访问声明符缩进
AccessModifierOffset: -4
# 开括号后的对齐(包括小括号/大括号/尖括号), 建议使用Align
# - Align: 对于开括号, 即在换行情况下, 换行的参数跟开括号对齐, 建议使用
# - DontAlign: 不对于开括号, 即换行时使用配置的空格数
# - AlwaysBreak: 永远换行, 即第一个参数都不允许粘连括号, 会强制换行, 换行后使用配置空格数对齐
# - BlockIndent: 同AlwaysBreak, 多了一个操作: 如果参数不固定在同一行, 闭括号将在下一行
AlignAfterOpenBracket: Align
 
# - 结构休数组统一初始化对齐, 建议不配置, 没过多必要, 详见clang-format doc
# - None: 不做处理, 即保留开发者的代码
# - Left: 左对齐
# - Right: 右对齐
AlignArrayOfStructures: None
 
# 连续赋值语句的对齐,即多个赋值语句连续出现时的对齐策略配置, 包含多个子配置项
AlignConsecutiveAssignments:
  # 是否启用, 建议不启用
  Enabled:         false
  # 是否跨过空行, 即多个对齐语句中间有空行时, 是否跨过, 如果要开启连续赋值语句的配置, 建议为false
  AcrossEmptyLines: false
  # 同AcrossComments: 即是否跨过注释, 建议false
  AcrossComments:  false
  # 是否跨过复合语句(包括空行及注释), 建议False
  AlignCompound:   false
  # 是否(右)对齐赋值操作的操作符, 建议true
  PadOperators:    true
 
# 同AlignConsecutiveAssignments, 表示连续位定义语句出现时, 是否需要对齐:符号, 位变量定义用得少, 可以不开启
AlignConsecutiveBitFields:
  # 是否启用, 建议不启用
  Enabled:         false
  # 同AlignConsecutiveAssignments
  AcrossEmptyLines: false
  # 同AlignConsecutiveAssignments
  AcrossComments:  false
  # 只在AlignConsecutiveAssignments配置中有效, 自动生成的clang-format有此项, 忽略
  AlignCompound:   false
  # 只在AlignConsecutiveAssignments配置中有效, 自动生成的clang-format有此项, 忽略
  PadOperators:    false
 
# 是否对齐连续声明, 同AlignConsecutiveDeclarations
AlignConsecutiveDeclarations:
  Enabled:         false
  AcrossEmptyLines: false
  AcrossComments:  false
  AlignCompound:   false
  PadOperators:    false
AlignConsecutiveMacros:
  Enabled:         false
  AcrossEmptyLines: false
  AcrossComments:  false
  # 只在AlignConsecutiveAssignments配置中有效, 自动生成的clang-format有此项, 忽略
  AlignCompound:   false
  # 只在AlignConsecutiveAssignments配置中有效, 自动生成的clang-format有此项, 忽略
  PadOperators:    false
 
# 续行符(\\)对齐:
# - DontAlign: 不做操作
# - Left: 尽可能向左对齐, 即最长一行代码为准
# - Right: 跟开发都写的最远的\\对齐(即不会自动缩减你的空格), 建议使用这个
AlignEscapedNewlines: Right
 
# 在二元/一元表达式中的操作数对齐, 可选值:
# - DontAlign: 不做对齐, 在操作数换行后, 将使用ContinuationIndentWidth来对齐
# - Align: 即换行时, 操作数(or 操作符加操作数)跟上一行的第一个操作数左对齐, 具体操作符要不要换行, 由BreakBeforeBinaryOperators配置决定
AlignOperands:   Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortEnumsOnASingleLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
# 允许短的函数放在同一行, 可选值: None, InlineOnly(定义在类中), Empty(空函数), Inline(定义在类中,空函数), All
AllowShortFunctionsOnASingleLine: All
# 允许lambda在一行中, 同上, 建议All
AllowShortLambdasOnASingleLine: All
# 是否将简单的if(else/else if)语句中的body跟if(else/else if)放置于同一行,可选值
# - Never: 永远不, 建议值
# - WithoutElse: 没有else/else if时, 允许
# - OnlyFirstIf: 只有第一个if允许
# - AllIfAndElse: 所有的if/else都允许
AllowShortIfStatementsOnASingleLine: Never
# 是否允许loop语句体跟loop语句共行, true/false, 建议false
AllowShortLoopsOnASingleLine: false
# Deprecated, 废弃定义, 设置为None即可
AlwaysBreakAfterDefinitionReturnType: None
# Return类型后是否换行, 诡异的定义, 请设置为None即可
AlwaysBreakAfterReturnType: None
# 多常量字符串定义是, 是否在第一个字符串常量前换行, true/false, 建议false
AlwaysBreakBeforeMultilineStrings: false
# 模板声明换行风格, 可选值:
# - No: 永远不对开发者的风格作处理
# - MultiLine: 建议值, 即仅在开发者写的模板声明(包括函数)跨越多行时, 进行换行, 否则维持原样
# - Yes: 不管如何都进行分行, 不建议
AlwaysBreakTemplateDeclarations: MultiLine
# 属性宏列表, 自定义, 用于语言扩展或静态分析注解, 可忽略
AttributeMacros:
  - __capability
# 函数调用时的参数(Arguments)是否放置于一行, false不放置, true强制一个调用参数一行, 建议false
BinPackArguments: false
# 函数定义参数(Parameters)是否放置于一行, 同BinPackArguments
BinPackParameters: false
 
# 大括号换行
BraceWrapping:
  # 在case后的大括号是否换行
  AfterCaseLabel:  false
  # class后
  AfterClass:      false
  # 控制语句(if/for/while/switch/...)后是否换行
  # - Never: 永远不, 即永远将语句体的大括号放置于控制语句同一行
  # - MultiLine: 多行控制语句才进行换行
  # - Always: 永远换行, 建议
  AfterControlStatement: Never
  # 下面比较容易理解, 不再作无意义的解释
  AfterEnum:       false
  AfterFunction:   false
  AfterNamespace:  false
  AfterObjCDeclaration: false
  AfterStruct:     false
  AfterUnion:      false
  AfterExternBlock: false
  BeforeCatch:     false
  BeforeElse:      false
  BeforeLambdaBody: false
  BeforeWhile:     false
  IndentBraces:    false
  SplitEmptyFunction: false
  SplitEmptyRecord: false
  SplitEmptyNamespace: false
# 二元操作符前是否换行, 建议为None
BreakBeforeBinaryOperators: None
# 概念声明前是否换行, 建议Always
BreakBeforeConceptDeclarations: Never
# 大括号换行风格,Custom即可, 具体值可参考上方文档
BreakBeforeBraces: Custom
# 继承列表括号前换行, false即可
BreakBeforeInheritanceComma: false
# 是否将整个继承列表换行
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: false
# 是否在构造函数初始化列表的,前换行
BreakConstructorInitializersBeforeComma: false
# 继承列表换行风格, 使用BeforeComma适合
BreakConstructorInitializers: BeforeComma
# Java注解相关, 跳过
BreakAfterJavaFieldAnnotations: false
# 字面字符串是否换行, true
BreakStringLiterals: false
# 代码列字符上限
ColumnLimit:     120
# pragma注释
CommentPragmas:  '^ IWYU pragma:'
# 注释关键字对齐(const/volatile), 建议Leave
# - Leave: - 不改变开发者定义
# - Left: 位于类型前
# - Right: 位于类型后
# - Custom: 自定义
QualifierAlignment: Leave
# 未在文档中找到
CompactNamespaces: false
# 构造函数初始化列表缩进, 建议0
ConstructorInitializerIndentWidth: 0
# 函数调用续行对齐, 建议4
ContinuationIndentWidth: 4
# C++11的统一初始化列表大括号风格, 建议true
Cpp11BracedListStyle: true
# 提取行结束符并标准化, 建议false, 不要进行分析及自动运用, 而是强制使用UseCRLF设定来做
DeriveLineEnding: true
# 是否开启文件分析, 根据文件中的*/&使用情况更新clang-format设定, 在无法决定时, 使用PointerAlignment代替, 不建议开启
DerivePointerAlignment: false
DisableFormat:   false
# 访问限定后是否添加空行, 建议Never
EmptyLineAfterAccessModifier: Never
# 访问限定前是否要求空行, 建议LogicalBlock
EmptyLineBeforeAccessModifier: LogicalBlock
# 实验性的自动检测同行并进行操作, 建议false
ExperimentalAutoDetectBinPacking: false
# 是否打包构造函数初始化列表, 建议Never, 可选:
# - Never: 永远不做操作, 即一个参数一行
# - BinPack: 两个参数一行
# - CurrentLine: 所有参数放置于一行, 如果放不下, 就一个参数一行
# - NextLine: 同CurrentLine有点像, 唯一不同就是如果放不行, 将剩余参数放置于下一行(即不自动一参一行)
PackConstructorInitializers: Never
BasedOnStyle:    ''
# 废弃配置
ConstructorInitializerAllOnOneLineOrOnePerLine: false
# 废弃配置
AllowAllConstructorInitializersOnNextLine: true
# 是否强制在namespace结尾增加 // namespace xxx, 建议为true
FixNamespaceComments: true
# 大于多少行namespace内的代码行时才在namespace结尾添加 // namespace xxx, 建议0,即无论如何都添加
ShortNamespaceLines: 0
# Macro宏
ForEachMacros:
  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
#If宏
IfMacros:
  - KJ_IF_MAYBE
# include代码块操作, 前提是SortIncludes开启:
# - Preserve: 只对每个代码块排序
# - Merge: 对所有代码块合并, 并在合并后排序
# - Regroup: 对所有include块进行分析, 并重新分块, 不建议!
IncludeBlocks:   Preserve
# Include Sort选项, 可选:
# - Never: 永远不, 建议
# - CaseSensitive: 大小写敏感排序
# - CaseInsensitive: 大小写不敏感排序
SortIncludes:    Never
# Include种类, 默认即可
IncludeCategories:
  - Regex:           '^"(llvm|llvm-c|clang|clang-c)/'
    Priority:        2
    SortPriority:    0
    CaseSensitive:   false
  - Regex:           '^(<|"(gtest|gmock|isl|json)/)'
    Priority:        3
    SortPriority:    0
    CaseSensitive:   false
  - Regex:           '.*'
    Priority:        1
    SortPriority:    0
    CaseSensitive:   false
IncludeIsMainRegex: '(Test)?$'
IncludeIsMainSourceRegex: ''
# 缩进访问控制
IndentAccessModifiers: false
# 缩进case语句, 建议false
IndentCaseLabels: false
# 缩进case body, 建议true
IndentCaseBlocks: true
# 缩进goto标签
IndentGotoLabels: true
# 预处理指示(PPD-PreProcessor Directive)缩进, 建议None
# - None: 不缩进
# - AfterHash: #不缩进, #后面的指示缩进
# - BeforeHash: #跟前缩进
IndentPPDirectives: None
# extern "C"缩进, 建议AfterExternBlock
IndentExternBlock: AfterExternBlock
# 模板require是否缩进
IndentRequiresClause: true
# 缩进宽度
IndentWidth:     4
# 函数名换行时, 是否缩进(即返回值跟名字不同行时), 建议false
IndentWrappedFunctionNames: false
# 是否在代码块中(if/else/for/do/while)强制插入大括号, 建议false
InsertBraces:    false
# 是否强制插入拖尾的',', 建议为None
InsertTrailingCommas: None
# Java相关, 跳过
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
# 是否block开始前有一个empty line, 诡异, 直接false
KeepEmptyLinesAtTheStartOfBlocks: false
# 未找到定义
LambdaBodyIndentation: Signature
# 宏开始的正则, 不使用
MacroBlockBegin: ''
# 宏结束的正则, 不使用
MacroBlockEnd:   ''
# 空行保持, 建议为1
MaxEmptyLinesToKeep: 1
# Namespace内的对齐, 直接使用None即可, 即所有namespace内(包括内嵌的)都不indent
NamespaceIndentation: None
# Obj-C语言设置, 跳过
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 4
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
# 罚分设定(根据你的"违规"值选择罚分少的)
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PenaltyIndentedWhitespace: 0
# 指针对齐, 建议Right
PointerAlignment: Right
# 引用对齐, 可选:
# - Pointer: 使用'PointerAlignment'配置, 建议使用
# - Left: Left
# - Right: Right
ReferenceAlignment: Pointer
# 预处理对齐宽度
PPIndentWidth:   -1
# 是否允许clang-format尝试重新粘合注释(true/false), 不建议使用
ReflowComments:  false
# 是否移除多余的{}, 不建议
RemoveBracesLLVM: false
# 模板中的require语句位置, 建议OwnLine
RequiresClausePosition: OwnLine
# 分隔不同定义块, 建议Always, 可选:
# - Leave - 不处理, 建议, 即由业务决定, 也可以使用Always
# - Always - 永远进行分隔
# - Never: 永远 不进行, 不建议
SeparateDefinitionBlocks: Leave
# Java项, 跳过
SortJavaStaticImport: Before
# 排序using语句(true/false), 不建议开启
SortUsingDeclarations: false
# C风格cast的类型括号后面是否增加space(true/false), 比较诡异, 建议false
SpaceAfterCStyleCast: false
# 逻辑非操作(!)后面是否加space(true/false), 比较诡异, 建议false
SpaceAfterLogicalNot: false
# template关键字后面是否加space(true/false), 建议true, 即template <xxx>, 而不是template<xxx>
SpaceAfterTemplateKeyword: true
# 赋值语句操作符前是否添加space(true/false), 建议true
SpaceBeforeAssignmentOperators: true
# case语句:前是否增加space(true/false), 建议false
SpaceBeforeCaseColon: false
# c++11的统一初始化列表的大括号中是否添加space(true/false), 建议false
SpaceBeforeCpp11BracedList: false
# 构造函数初始化列表:前是否加space(true/false), 建议false
SpaceBeforeCtorInitializerColon: false
# 继承列表的:前是否加space(true/false), 建议true
SpaceBeforeInheritanceColon: true
# 圆括号前是否增加空格: 建议只在控制语句的贺括号前增加, 即配置为ControlStatements即可
SpaceBeforeParens: ControlStatements
# SpaceBeforeParens为Custom时使用
SpaceBeforeParensOptions:
  AfterControlStatements: true
  AfterForeachMacros: true
  AfterFunctionDefinitionName: false
  AfterFunctionDeclarationName: false
  AfterIfMacros:   true
  AfterOverloadedOperator: false
  AfterRequiresInClause: false
  AfterRequiresInExpression: false
  BeforeNonEmptyParentheses: false
# 指针修饰的space添加, 建议Default, 即使用PointerAlignment代替
SpaceAroundPointerQualifiers: Default
# Loop关键字前前是否增加space, 建议true
SpaceBeforeRangeBasedForLoopColon: true
# 空body是否添加space, 建议true
SpaceInEmptyBlock: true
# 圆括号前是否增加space, 建议false, true太多影响代码紧凑
SpaceInEmptyParentheses: false
# Trailing注释前的空格数, 建议1
SpacesBeforeTrailingComments: 1
# <>里面是否增加space, 不建议, 配置成Never即可
SpacesInAngles:  Never
# 条件语句()里面是否增加space, 不建议, 配置成Never即可
SpacesInConditionalStatement: false
# 容器初始化列表[]/{}里面是否增加space, 不建议(跟C++11风格保持一致)
SpacesInContainerLiterals: false
# C风格的转换()里面是否增加space, 不建议
SpacesInCStyleCastParentheses: false
# 行注释前的空格范围数量, 建议Maximum关闭, 设置成-1, 即//到你的注释内容前的空格数量至少是1, 至多是无穷
SpacesInLineCommentPrefix:
  Minimum:         1
  Maximum:         -1
# 贺括号内是否加space, false
SpacesInParentheses: false
# 中括号内是否加space, false
SpacesInSquareBrackets: false
# 大括号内是否加space, false
SpaceBeforeSquareBrackets: false
# 位定义:前后是否增加空格, 可选:
# - Both: 前后都添加
# - Before: 只在前增加
# - After: 只在后增加
# - None: 不增加, 建议, 没有必要因为过多的space(s)影响代码紧凑
BitFieldColonSpacing: None
# C++标准, Latest即可
Standard:        Latest
StatementAttributeLikeMacros:
  - Q_EMIT
StatementMacros:
  - Q_UNUSED
  - QT_REQUIRE_VERSION
# Tab宽度, 建议4
TabWidth:        4
# 不使用CRLF, 强制关闭, 如果DeriveLineEnding为true却未自动决策出来, 此项用于fallback策略
UseCRLF:         false
# Tab使用, 没有必要使用, 直接Never
UseTab:          Never
# 空格敏感宏列表
WhitespaceSensitiveMacros:
  - STRINGIZE
  - PP_STRINGIZE
  - BOOST_PP_STRINGIZE
  - NS_SWIFT_NAME
  - CF_SWIFT_NAME

标签:建议,false,format,换行,是否,clang,对齐,true
From: https://www.cnblogs.com/liuchanglc/p/18560961

相关文章

  • format 命令是 Windows 操作系统中的一个命令行工具,用于格式化磁盘、分区或驱动器。格
     format|MicrosoftLearn format命令是Windows操作系统中的一个命令行工具,用于格式化磁盘、分区或驱动器。格式化过程会清除磁盘上的所有数据,并准备磁盘用于存储文件。它可以通过命令提示符(CMD)或者PowerShell来执行。format 命令的功能:清除数据:格式化磁盘会删除该......
  • git提交提示本地分支 '(no branch)' (远程分支 = '(no branch)') 是无效的。引用名称
    这个错误提示表明你正在使用一个没有有效分支的Git仓库,或者是Git无法识别当前的分支(通常是由于HEAD被指向了一个无效或空的引用)。具体来说,`'(nobranch)'`是因为你当前处于一个`detachedHEAD`状态(即没有指向一个有效的分支),通常在你检出一个提交(而不是分支)时会出现这种情......
  • Uncertainty of Thoughts: Uncertainty-Aware Planning Enhances Information Seeking
    目录概UoT代码HuZ.,LiuC.,FengX.,ZhaoY.,NgS.,LuuA.T.,HeJ.,KohP.W.andHooiB.Uncertaintyofthoughts:Uncertainty-awareplanningenhancesinformationseekinginlargelanguagemodels.NeurIPS,2024.概通过判断问题所导致的不确定性降低程度来......
  • 金蝶云插件:列表插件单元格格式化事件FormatCellValue --- 采购申请单--列表自动刷新即
    region<<版本注释>>采购申请单--列表自动刷新即时库存/*===================================================类名称:PUR_Requisition_ListJSKCQTY类描述:采购申请单--列表自动刷新即时库存创建人:luohong创建时间:2024/11/1514:59:47电子邮箱:it_luo@finecables......
  • CloudFormation部署Amazon Bedrock Connector
    AmazonBedrockConnector(简称BRConnector)是一个开源项目,旨在简化AmazonBedrock生成式AI服务的集成过程。本文将指导您如何使用CloudFormation模板快速部署BRConnector。支持的区域目前,CloudFormation模板已在以下区域验证:us-east-1us-west-2©ivwdcwso(ID:u01217......
  • C++中clang tidy静态变量检查:Constructor does not initialize these fields
    这条警告通常表示在一个类的构造函数中,某些成员变量(如object和th_cfg)没有被显式初始化。编译器或静态分析工具(例如clang-tidy)可能会给出这样的警告,以帮助开发者避免潜在的未定义行为。可能原因缺少初始化:构造函数中没有对这些成员变量进行初始化,它们的值可能是未定义的。......
  • 内核源码+vscode+bear+clang实现函数任意跳转,无缝跳转,无缝阅读,无缝开发
    一、准备工作1、内核源码版本选择务必有一份能编译通过的《内核源码》,本次选择5.10版本的。#说明:5.10版本的《内核源码》里,在scripts/clang-tools目录下有《gen_compile_commands.py》文件,这个脚本也能生成《compile_commands.json》文件。已确定4.19版本没有,请尽量选择高版......
  • ffmpeg Video and Audio file format conversion
    Anysupportedfileformatandprotocolcanserveasinputtoffmpeg:Examples:YoucanuseYUVfilesasinput:ffmpeg-i/tmp/test%d.Y/tmp/out.mpgItwillusethefiles:/tmp/test0.Y,/tmp/test0.U,/tmp/test0.V,/tmp/test1.Y,/tmp/test1.U,/tmp/test1.V,etc......
  • 70_api_intro_text_formatarticle
    中英文排版规范化API接口自动中英文排版、标点符号格式化。1.产品功能支持中英文混排格式化;自动在汉字与英文字符、英文标点、数字间添加空格;中文标点符号自动规范化,遵从[标点符号用法GB/T158342011];无意义的全角标点以及英文字符、数字等自动修正;全接口支持HTTP......
  • mysql的 information_schema 数据库介绍
    information_schema是MySQL中的一个系统数据库,它提供了关于数据库元数据的信息。元数据是指描述数据库结构和内容的数据,例如表、列、索引、用户权限等。information_schema数据库是只读的,用户不能对其进行修改。位置information_schema数据库存在于每个MySQL实例中,不需要......