首页 > 其他分享 >c语言 clang-format

c语言 clang-format

时间:2024-08-09 14:05:21浏览次数:4  
标签:false 语言 format 换行 clang 空格 对齐 true 大括号

setting.json中加入

 // format 配置路径
    "clang-format.assumeFilename": "${workspaceFolder}/.vscode/format/.clang-format",

配置路径放在:"${workspaceFolder}/.vscode/format/.clang-format"

# https://blog.csdn.net/Once_day/article/details/127761573 配置参考
---
# 语言: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto
Language: Cpp
BasedOnStyle: LLVM
# 访问说明符(public、private等)的偏移
AccessModifierOffset: -4
# 开括号(开圆括号、开尖括号、开方括号)后的对齐: Align, DontAlign, AlwaysBreak(总是在开括号后换行)
AlignAfterOpenBracket: DontAlign
# 对齐数组列
AlignArrayOfStructures: Left
# 连续赋值时,对齐所有等号
AlignConsecutiveAssignments:
  #默认的连续赋值对齐在以下的情况下生效:
  Enabled: true
  # 可以跨越空白行进行对齐
  AcrossEmptyLines: false
  # 可以跨越注释行进行对齐
  AcrossComments: true
  # 混合运算符+=会对齐于=
  AlignCompound: true
  # 混合运算符填补对齐到所有左值的最右边边界
  PadOperators: false

# 对齐连续位字段
AlignConsecutiveBitFields:
  Enabled: true
  AcrossEmptyLines: false
  AcrossComments: true

# 连续声明时,对齐所有声明的变量名
AlignConsecutiveDeclarations:
  Enabled: true
  AcrossEmptyLines: false
  AcrossComments: true

# 对齐连续宏定义
AlignConsecutiveMacros:
  Enabled: true
  AcrossEmptyLines: false
  AcrossComments: true

# 左对齐逃脱换行(使用反斜杠换行)的反斜杠
AlignEscapedNewlines: Left
# 水平对齐二元和三元表达式的操作数
AlignOperands: Align
# 对齐连续的尾随的注释 可以选择为:Leave,Always,Never
AlignTrailingComments: Always
# 允许参数在下一行上
AllowAllArgumentsOnNextLine: true
# 允许短的块放在同一行
AllowShortBlocksOnASingleLine: Empty
# 允许短的枚举放在同一行
AllowShortEnumsOnASingleLine: true
# 允许短的case标签放在同一行
AllowShortCaseLabelsOnASingleLine: false
# 允许短的函数放在同一行
AllowShortFunctionsOnASingleLine: Empty
# 允许短的匿名函数放在同一行
AllowShortLambdasOnASingleLine: All
# 允许短的if语句保持在同一行
AllowShortIfStatementsOnASingleLine: Never
# 允许短的循环保持在同一行
AllowShortLoopsOnASingleLine: false
# 总是在返回类型后换行
AlwaysBreakAfterReturnType: None
# 总是在多行string字面量前换行
AlwaysBreakBeforeMultilineStrings: false
# 总是在template声明后换行
AlwaysBreakTemplateDeclarations: MultiLine
AttributeMacros:
  - __capability
# false表示函数实参要么都在同一行,要么都各自一行
BinPackArguments: true
# false表示所有形参要么都在同一行,要么都各自一行
BinPackParameters: true
# 位域:每边都添加空格
BitFieldColonSpacing: Both
# 在java字段的注释后换行
BreakAfterJavaFieldAnnotations: false
# Json数组断行
BreakArrays: false
# 在二元运算符前换行
BreakBeforeBinaryOperators: All
# 大括号换行,只有当BreakBeforeBraces设置为Custom时才有效
BraceWrapping:
  # 对case后面的大括号换行
  AfterCaseLabel: false
  # 类定义换行
  AfterClass: false
  # 对语句if/for/while/switch/...的换行风格控制
  AfterControlStatement: Never
  # 枚举定义后大括号换行
  AfterEnum: false
  # 在函数定义之后大括号换行
  AfterFunction: false
  # 命名空间后换行
  AfterNamespace: false
  # 在ObjC定义之后换行,@autoreleasepool 和 @synchronized 块根据AfterControlStatement标志换行
  AfterObjCDeclaration: false
  # 构体定义之后换行。
  AfterStruct: false
  # 联合定义之后换行。
  AfterUnion: false
  # extern声明之后换行
  AfterExternBlock: false
  # BeforeCatch在catch之前换行
  BeforeCatch: false
  # 在else之前换行
  BeforeElse: false
  # 在Lambda表达式块之前换行
  BeforeLambdaBody: false
  # 在while之前换行
  BeforeWhile: false
  # 对换行的大括号缩进
  IndentBraces: false
  # 如果为false,空函数体可以放在单行上此选项仅在函数的左大括号已经被换行的情况下使用,
  # 即设置了AfterFunction大括号换行模式,并且函数不应该放在单行上(根据AllowShortFunctionsOnASingleLine和构造函数格式选项)。
  SplitEmptyFunction: true
  # 如果为false,空记录(例如类、结构或联合)主体可以放在单行上。
  # 此选项仅在记录的开始大括号已经被换行的情况下使用,即设置了AfterClass(用于类)大括号换行模式。
  SplitEmptyRecord: true
  # 如果为false,空的namespace主体可以放在单行上。
  # 此选项仅在命名空间的开始大括号已经被换行的情况下使用,即设置了AfterNamespace大括号换行模式。
  SplitEmptyNamespace: true
# 在大括号前换行: Attach(始终将大括号附加到周围的上下文)
BreakBeforeBraces: Attach
# 在concept前换行
BreakBeforeConceptDeclarations: Never
# 继承列表样式
BreakInheritanceList: AfterColon
# 字符串常量断行
BreakStringLiterals: false
# 在三元运算符前换行
BreakBeforeTernaryOperators: true
# 构造函数初始值设定项换行样式
BreakConstructorInitializers: BeforeComma
# 每行字符的限制,0表示没有限制
ColumnLimit: 240
# 描述具有特殊意义的注释的正则表达式,它不应该被分割为多行或以其它方式改变
CommentPragmas: "^ IWYU pragma:"
# 紧凑命名空间
CompactNamespaces: false
# 构造函数的初始化列表的缩进宽度
ConstructorInitializerIndentWidth: 4
# 延续的行的缩进宽度
ContinuationIndentWidth: 4
# 去除C++11的列表初始化的大括号{后和}前的空格
Cpp11BracedListStyle: true
# 继承最常用的换行方式
DeriveLineEnding: true
# 继承最常用的指针和引用的对齐方式
DerivePointerAlignment: false
# 关闭格式化
DisableFormat: false
# 删除访问修饰符后的所有空行
EmptyLineAfterAccessModifier: Never
# 仅当访问修饰符开始一个新的逻辑块时才添加空行
EmptyLineBeforeAccessModifier: LogicalBlock
# 自动检测函数的调用和定义是否被格式为每行一个参数(Experimental)
ExperimentalAutoDetectBinPacking: false
# 自动补充namespace注释
FixNamespaceComments: true
# 需要被解读为foreach循环而不是函数调用的宏
ForEachMacros:
  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
IfMacros:
  - KJ_IF_MAYBE
# 多个#include块合并在一起并排序为一个
IncludeBlocks: Merge
# 可以定义负数优先级从而保证某些#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: true
# 缩进case标签
IndentCaseLabels: false
# case 标签后面的块使用与 case 标签相同的缩进级别
IndentCaseBlocks: false
# 缩进goto标签。
IndentGotoLabels: false
# 缩进预处理器指令
IndentPPDirectives: None
# 向后兼容缩进外部块
IndentExternBlock: AfterExternBlock
# 缩进模板中的requires子句
IndentRequires: false
# 缩进宽度
IndentWidth: 4
# 函数返回类型换行时,缩进函数声明或函数定义的函数名
IndentWrappedFunctionNames: false
# 插入尾随逗号
InsertTrailingCommas: None
# 保留JavaScript字符串引号
JavaScriptQuotes: Leave
# 包装 JavaScript 导入/导出语句
JavaScriptWrapImports: true
# 保留在块开始处的空行
KeepEmptyLinesAtTheStartOfBlocks: false
# 相对于 lambda 签名对齐 lambda 主体
LambdaBodyIndentation: Signature
# 开始一个块的宏的正则表达式
MacroBlockBegin: ""
# 结束一个块的宏的正则表达式
MacroBlockEnd: ""
# 连续空行的最大数量
MaxEmptyLinesToKeep: 1
# 命名空间的缩进
NamespaceIndentation: All
# 命名空间宏
# NamespaceMacro:
ObjCBinPackProtocolList: Auto
# 使用ObjC块时缩进宽度
ObjCBlockIndentWidth: 4
ObjCBreakBeforeNestedBlockParam: true
# 在ObjC的@property后添加一个空格
ObjCSpaceAfterProperty: false
# 在ObjC的protocol列表前添加一个空格
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PenaltyIndentedWhitespace: 0
# 指针的对齐: Left, Right, Middle
PointerAlignment: Right
# 说明/限定符顺序
# QualifierOrder: ['inline', 'static', 'type', 'const', 'volatile' ]
# 缩进预处理器语句的列数
PPIndentWidth: -1
# 引用的对齐
ReferenceAlignment: Pointer
# 允许重新排版注释
ReflowComments: true
# 短命名空间跨越的最大展开行数
ShortNamespaceLines: 1
# 允许排序#include
SortIncludes: CaseSensitive
# java静态导入放在非静态导入之前
SortJavaStaticImport: Before
# 对using声明排序
SortUsingDeclarations: true
# 在C风格类型转换后添加空格
SpaceAfterCStyleCast: false
# 在!后添加空格
SpaceAfterLogicalNot: false
# 在Template关键字后添加空格
SpaceAfterTemplateKeyword: true
# 在赋值运算符之前添加空格
SpaceBeforeAssignmentOperators: true
# 不在case冒号之前添加空格
SpaceBeforeCaseColon: false
# 不在C++11大括号列表之前添加空格
SpaceBeforeCpp11BracedList: false
# 在构造函数初始化器冒号之前添加空格
SpaceBeforeCtorInitializerColon: true
# 在继承冒号前添加空格
SpaceBeforeInheritanceColon: true
# 开圆括号之前添加一个空格: Never, ControlStatements, Always
SpaceBeforeParens: Always
# 不要确保指针限定符周围有空格,而是使用 PointerAlignment
SpaceAroundPointerQualifiers: Default
# 在基于范围的for循环冒号之前添加空格
SpaceBeforeRangeBasedForLoopColon: true
# {}中间不添加空格
SpaceInEmptyBlock: false
# 在空的圆括号中添加空格
SpaceInEmptyParentheses: false
# 在尾随的评论前添加的空格数(只适用于//)
SpacesBeforeTrailingComments: 1
# 在尖括号的<后和>前添加空格
SpacesInAngles: Never
# 不在if/for/switch/while条件周围插入空格
SpacesInConditionalStatement: false
# 在容器(ObjC和JavaScript的数组和字典等)字面量中添加空格
SpacesInContainerLiterals: true
# 在C风格类型转换的括号中添加空格
SpacesInCStyleCastParentheses: false
# 行注释开头允许有多少个空格。要禁用最大值,请将其设置为-1,除此之外,最大值优先于最小值
SpacesInLineCommentPrefix:
  Minimum: 1
  Maximum: -1
# 在圆括号的(后和)前添加空格
SpacesInParentheses: false
# 在方括号的[后和]前添加空格,lamda表达式和未指明大小的数组的声明不受影响
SpacesInSquareBrackets: false
# 不在[前添加空格
SpaceBeforeSquareBrackets: false

# 标准
Standard: c++11
# 在语句前面被忽略的宏定义,就好像它们是一个属性一样
StatementAttributeLikeMacros:
  - Q_EMIT
# 应该被解释为完整语句的宏定义
StatementMacros:
  - Q_UNUSED
  - QT_REQUIRE_VERSION
# tab宽度
TabWidth: 4
# 使用tab字符:ForIndentation——仅将制表符用于缩进
UseTab: Never
# 使用\n换行
UseCRLF: false
VerilogBreakBetweenInstancePorts: true
# 对空格敏感的宏定义
WhitespaceSensitiveMacros:
  - STRINGIZE
  - PP_STRINGIZE
  - BOOST_PP_STRINGIZE
  - NS_SWIFT_NAME
  - CF_SWIFT_NAME
---

标签:false,语言,format,换行,clang,空格,对齐,true,大括号
From: https://www.cnblogs.com/pbblogs/p/18350651

相关文章

  • C语言(三)函数与文件
    C语言(三)函数与文件1.函数定义与声明作用:将一段经常使用的代码封装起来,减少重复代码函数的定义一般主要有5个步骤:返回值类型:一个函数可以返回一个值。在函数定义中;函数名:给函数起个名称;参数列表:使用该函数时,传入的数据;函数体语句:花括号内的代码,函数内需要执行的语句;retur......
  • C语言 | printf、scanf及库函数
    目录一、关于printf和scanf1、输入输出的概念2、语句2.1printf()函数2.2.1print输出格式2.2.2占位符  2.2.3限定宽度2.2.3.1对于小数以外的2.2.3.2对于小数2.2.4显示符号2.2scanf()函数2.2.1基本用法2.2.2基本格式2.2.3限定宽度2.2.4scanf的返回......
  • 大神Andrej Karpathy亲授:大语言模型入门
    前言OpenAI大家熟知的技术大神有两位,一位是首席科学家Ilya,很多人这几天可能因为OpenAI董事会风波而反复听过这个名字;另外一位则是温文儒雅的AndrejKarpathy。如果说Ilya的标签是ChatGPT之父,神级大牛;那么AndrejKarpathy的额外标签则是当之无愧这世界上最优秀的AI导师之一。本......
  • 预训练语言模型公平性-公平性度量、去偏方法
    一、内在偏见与外在偏见1、内在偏见:训练前数据集中存在的刻板印象;2、外在偏见:用来衡量偏差如何在下游任务中传播。通常包括微调,然后评估其关于性别和种族等敏感属性的表现;3、许多NLP应用程序对现有的语言模型进行了微调,这些模型将外在偏见和内在偏见交织在一起。......
  • nodejs语言,MySQL数据库;springboot的个性化资讯推荐系统66257(免费领源码)计算机毕业设计
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,个性化资讯推荐系统当然也不能排除在外。个性化资讯推荐系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用springboot技术构建的一个管理系统。整......
  • c#语言,SQL server数据库;基于Web的社区人员管理系统的设计与实现36303(免费领源码)计算机
    目 录摘要1绪论1.1慨述1.2课题意义1.3B/S体系结构介绍1.4ASP.NET框架介绍2 社区人员管理系统分析2.1可行性分析2.2系统流程分析2.2.1数据增加流程2.2.2数据修改流程52.2.3数据删除流程52.3系统功能分析62.3.1功能性分析62.3.2非功能性......
  • 哪种编程语言更适合学习数据结构和算法:C++、Java 还是 Python?
    作为一名工程专业的学生,​​我正在尝试决定使用哪种编程语言来学习数据结构和算法(DSA)。我正在考虑C++,它提供高性能和强大的标准模板库,但对于初学者来说可能很复杂。Java具有强大的语法和内置集合,使DSA概念更容易掌握,尽管我不确定它与C++相比的性能。Python以其简单性和......
  • (C语言)四舍五入
     题目:题解:#include<stdio.h>doublefun(doubleh){}main(){doublea;voidNONO();printf("Entera:");scanf("%lf",&a);printf("Theoriginaldatais:");printf("%f\......
  • C语言进阶——一文带你深度了解“C语言关键字”(中篇3)
    这篇文章记录我学习C语言关键字的相关知识,旨在记录一些进阶的知识。目录一、if、else之间的组合(一)、bool变量与零值之间的比较(二)、float变量与零值之间的比较 (三)、指针变量与零值之间的比较 (四)、else究竟与哪个if进行配对呢?二、结语 一、if、else之间的组合(一......
  • 获取窗口大小 极语言
    程序段窗体启动整数width,height;矩形类矩形;取客户区(窗体,&矩形);width=矩形.宽-矩形.左;height=矩形.高-矩形.顶;文本x[5]=width;文本y[5]=height;信息框(0,x,"你好",信息图标);信息框(0,y,"你好",信息图标);结束使用[取客户区]获取的是窗口内部的尺寸,......