qtcreator+ClangFormat格式化代码

2023-05-16

 1 前言

        希望能够格式化代码,令代码更加的整齐漂亮。

2 设置

       1、工具-选项。

       2、然后选择Beautifier-General,Tool选择ClangFormat。

 图1  General

       3、点击ClangFormat选择Use customized style,选择Edit,格式化代码规范如下:

 图2 Clang Format

         4、选择Edit,格式化代码规范如下

# 语言: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto
Language: Cpp
 
BasedOnStyle: LLVM
 
# 访问说明符(public、private等)的偏移
AccessModifierOffset: -4
 
# 左括号(左圆括号、左尖括号、左方括号)后的对齐:
# Align, DontAlign, AlwaysBreak(总是在左括号后换行)
AlignAfterOpenBracket: Align
 
# 多维数组中数据的对齐方式
# AlignArrayOfStructure: Right
 
# 连续赋值时,对齐所有等号
AlignConsecutiveAssignments: true
 
# 对齐连续位域字段的风格
#AlignConsecutiveBitFields:AcrossEmptyLinesAndComments
 
# 连续声明时,对齐所有声明的变量名
AlignConsecutiveDeclarations: true
 
# 对齐连续宏定义的风格
# AlignConsecutiveMacros: true
 
# 用于在使用反斜杠换行中对齐反斜杠的选项
# AlignEscapedNewlines: Left
 
# 水平对齐二元和三元表达式的操作数
AlignOperands: true
 
# 对齐连续的尾随的注释
AlignTrailingComments: true
 
# 如果函数调用或带括号的初始化列表不适合全部在一行时
# 允许将所有参数放到下一行,即使BinPackArguments为false
# AllowAllArgumentsOnNextLine: true
 
# 允许构造函数的初始化参数放在下一行
# AllowAllConstructorInitializersOnNextLine: true
 
# 允许函数声明的所有参数在放在下一行
AllowAllParametersOfDeclarationOnNextLine: true
  
# 允许短的块放在同一行(Always 总是将短块合并成一行,Empty 只合并空块)
AllowShortBlocksOnASingleLine: false
 
# 允许短的case标签放在同一行
AllowShortCaseLabelsOnASingleLine: false
 
# 允许短的enums数据放在同一行
# AllowShortEnumsOnASingleLine: false
 
# 允许短的函数放在同一行: 
# None, InlineOnly(定义在类中), Empty(空函数), Inline(定义在类中,空函数), All
AllowShortFunctionsOnASingleLine: Empty
 
# 允许短的if语句保持在同一行
# AllowShortIfStatementsOnASingleLine: Never
 
# 允许短的lambdas语句保持在同一行
# AllowShortLambdasOnASingleLine: Empty
 
# 允许短的循环保持在同一行
AllowShortLoopsOnASingleLine: true
 
# 总是在定义返回类型后换行(deprecated)
AlwaysBreakAfterDefinitionReturnType: None
 
# 函数声明返回类型后是否换行(None 自动,All全部,TopLevel...)
AlwaysBreakAfterReturnType: None
 
# 总是在多行string字面量前换行
AlwaysBreakBeforeMultilineStrings: false
 
# 总是在template声明后换行
# AlwaysBreakTemplateDeclarations: No
 
# false表示函数实参要么都在同一行,要么都各自一行
BinPackArguments: true
 
# false表示函数实参要么都在同一行,要么都各自一行 
BinPackParameters: true
 
# The BitFieldColonSpacingStyle to use for bitfields.
# BitFieldColonSpacing: Both
 
# 大括号换行,只有当 BreakBeforeBraces 设置为Custom时才有效
BraceWrapping:
  # case 语句后面
  # AfterCaseLabel: true
  # class定义后面
  AfterClass: true
  # 控制语句后面
  AfterControlStatement: true
  # enum定义后面
  AfterEnum: true
  # 函数定义后面
  AfterFunction: true
  # 命名空间定义后面
  AfterNamespace: true
  # ObjC定义后面
  AfterObjCDeclaration: true
  # struct定义后面
  AfterStruct: true
  # union定义后面
  AfterUnion: true
  # extern 导出块后面
  AfterExternBlock: true
  # catch之前
  BeforeCatch: true
  # else之前
  BeforeElse: true
  #BeforeLambdaBody: true
  #BeforeWhile: true
  # 缩进大括号(整个大括号框起来的部分都缩进)
  IndentBraces: false
  # 空函数的大括号是否可以在一行
  SplitEmptyFunction: true
  # 空记录体(struct/class/union)的大括号是否可以在一行
  SplitEmptyRecord: true
  # 空名字空间的大括号是否可以在一行
  SplitEmptyNamespace: true
 
# 在二元运算符前换行: 
# None(在操作符后换行), NonAssignment(在非赋值的操作符前换行), All(在操作符前换行)
BreakBeforeBinaryOperators: None
  
# 大括号的换行规则
BreakBeforeBraces: Custom
 
#BreakBeforeConceptDeclarations: true
 
# 三元运算操作符换行位置(?和: 在新行还是尾部)
BreakBeforeTernaryOperators: true
  
# 要使用的构造函数初始化式样式
BreakConstructorInitializers: BeforeComma
 
# BreakInheritanceList: BeforeComma
# BreakStringLiterals: true
 
# 每行字符的限制,0表示没有限制
ColumnLimit: 100
 
# 描述具有特殊意义的注释的正则表达式,它不应该被分割为多行或以其它方式改变
# CommentPragmas: ''
 
# 如果为true,则连续的名称空间声明将在同一行上。
# 如果为false,则在新行上声明每个名称空间。
CompactNamespaces: false
 
# 构造函数的初始化列表要么都在同一行,要么都各自一行
ConstructorInitializerAllOnOneLineOrOnePerLine: false
 
# 构造函数的初始化列表的缩进宽度
ConstructorInitializerIndentWidth:  4
 
# 延续的行的缩进宽度
ContinuationIndentWidth: 4
 
# 去除C++11的列表初始化的大括号{后和}前的空格
Cpp11BracedListStyle: true
 
# 继承最常用的指针和引用的对齐方式
DerivePointerAlignment: false
 
# 关闭格式化
DisableFormat: false
 
# 空格检查
#EmptyLineAfterAccessModifier: Leave
#EmptyLineBeforeAccessModifier:  Leave
 
# 自动检测函数的调用和定义是否被格式为每行一个参数(Experimental)
ExperimentalAutoDetectBinPacking: false
 
# 如果为true,则clang格式会为短名称空间添加缺少的名称空间结尾注释,
# 并修复无效的现有名称结束注释
FixNamespaceComments: true
 
# 缩进private、public等标签
# IndentAccessModifiers: true
 
# 缩进case
# IndentCaseBlocks: false
  
# 缩进case标签
IndentCaseLabels: true
 
#IndentExternBlock: AfterExternBlock
 
# 要使用的预处理器指令缩进样式
IndentPPDirectives: AfterHash
 
# 缩进宽度
IndentWidth: 4
 
# 函数返回类型换行时,缩进函数声明或函数定义的函数名
IndentWrappedFunctionNames: false
 
# 保留在块开始处的空行
KeepEmptyLinesAtTheStartOfBlocks: true
 
# 开始一个块的宏的正则表达式
MacroBlockBegin: ''
 
# 结束一个块的宏的正则表达式
MacroBlockEnd: ''
 
# 连续空行的最大数量
MaxEmptyLinesToKeep: 10
 
# 命名空间的缩进: None, Inner(缩进嵌套的命名空间中的内容), All
NamespaceIndentation: All
 
# 使用ObjC块时缩进宽度
ObjCBlockIndentWidth: 4
 
# 在ObjC的@property后添加一个空格
ObjCSpaceAfterProperty: false
 
# 在ObjC的protocol列表前添加一个空格
ObjCSpaceBeforeProtocolList: true
 
# 在call(后对函数调用换行的penalty
PenaltyBreakBeforeFirstCallParameter: 2
 
# 在一个注释中引入换行的penalty
PenaltyBreakComment: 300
 
# 第一次在<<前换行的penalty
PenaltyBreakFirstLessLess:  120
 
# 在一个字符串字面量中引入换行的penalty
PenaltyBreakString: 1000
 
# 对于每个在行字符数限制之外的字符的penalty
PenaltyExcessCharacter: 1000000
 
# 对每一个空格缩进字符的penalty(相对于前导的非空格列计算)
# PenaltyIndentedWhitespace: 0 
 
# 将函数的返回类型放到它自己的行的penalty
PenaltyReturnTypeOnItsOwnLine: 120
 
# 指针和引用的对齐: Left, Right, Middle
PointerAlignment: Left
 
# 允许重新排版注释
ReflowComments: true
 
# 允许排序#include
SortIncludes: true
 
# 允许排序 using 声明顺序
SortUsingDeclarations: false
 
# 在C风格类型转换后添加空格
SpaceAfterCStyleCast: false
 
# 在逻辑非操作符(!)之后插入一个空格
# SpaceAfterLogicalNot: false
 
# 在 template 关键字后插入一个空格
SpaceAfterTemplateKeyword: false
 
# 定义在什么情况下在指针限定符之前或之后放置空格
# SpaceAroundPointerQualifiers: Before
 
# 在赋值运算符之前添加空格
SpaceBeforeAssignmentOperators: true
 
# 左圆括号之前添加一个空格: Never, ControlStatements, Always
SpaceBeforeParens: ControlStatements
 
# 空格将在基于范围的for循环冒号之前被删除
# SpaceBeforeRangeBasedForLoopColon: true
 
# [ 前是否添加空格(数组名和[之间,Lambdas不会受到影响)
# 连续多个 [ 只考虑第一个(嵌套数组,多维数组)
# SpaceBeforeSquareBrackets: false
 
# 在空的圆括号中添加空格
SpaceInEmptyParentheses: false
 
# 在尾随的评论前添加的空格数(只适用于//)
SpacesBeforeTrailingComments: 3
 
# 在尖括号的<后和>前添加空格
SpacesInAngles: false
 
# 在容器(ObjC和JavaScript的数组和字典等)字面量中添加空格
SpacesInContainerLiterals:  false
 
# 在C风格类型转换的括号中添加空格
SpacesInCStyleCastParentheses: false
 
# 如果为true,将在If/for/switch/while条件括号前后插入空格。
# SpacesInConditionalStatement: true
 
# 在圆括号的(后和)前添加空格
SpacesInParentheses: false
 
# 在方括号的[后和]前添加空格,lamda表达式和未指明大小的数组的声明不受影响
SpacesInSquareBrackets: false
 
# 标准: Cpp03, Cpp11, Auto
Standard: Cpp11
 
# tab宽度
TabWidth: 4
 
# 使用tab字符: Never, ForIndentation, ForContinuationAndIndentation, Always
UseTab: Never

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

qtcreator+ClangFormat格式化代码 的相关文章

  • OpenCV 与 Qt:程序意外完成

    我正在尝试在 Windows 8 64 位上使用 Qt Creator 2 7 0 Qt 5 0 2 配置 OpenCV 执行我的程序时 出现以下错误 计划意外地结束了 这是我的main cpp include mainwindow h i
  • QtCreator语义问题警告代码永远不会被执行

    我有以下大块Qt code if this gt ueCommunicationsSocket gt bind QHostAddress data 0 toString static cast
  • clang-format:类声明结束和命名空间关闭之间的空行

    我使用 clang format 来格式化我们的 C 代码 我想在类声明和周围命名空间的右大括号之间有一个空行 如下所示 namespace Foo class Bar 但 clang format 将我的代码更改为 namespace F
  • 在 Qt Creator 中使用 Qt 标准图标

    我想使用 Qt Standard 图标 as here http standards freedesktop org icon naming spec icon naming spec latest html 我发现了很多例子如何以编程方式
  • 什么是 Qt 裸机?

    QtCreator 有一个名为 Bare Metal 的插件 裸机是指没有操作系统的计算机 我还没有看到太多关于Qt Bare Metal开发的内容 这是为裸机系统开发 Qt 的一种方法吗 Qt 可以在没有操作系统的系统上运行吗 如果是 这
  • 在 Qt Creator 中推广小部件

    Qt 创建者可以选择将一个小部件提升为从基本小部件派生的自定义创建的类 我想使用它来将小部件提升为当前项目中的类 Qt 创建者询问我有关类名和头文件名的信息 这些值直接转到 ui文件 然后到ui myform h 问题是该文件可能 通常是
  • 如何在 Qt Creator 中添加名称以大写字母开头的 c++ 文件?它会自动将其变成小写字母

    我正在尝试将 C 文件添加到现有的 Qt 项目中 但无法使 C 文件的名称以大写字母开头 例如 使用向导 DownloadOsm cpp 自动成为 downloadosm cpp 要解决此问题 请执行以下操作 工具 gt 选项 gt C g
  • 使用 KDE Kirigami 时未找到 QML 模块

    所以我决定在我的应用程序中使用 KDE Kirigami UI 框架 所以我按照说明进行操作here https api kde org frameworks kirigami html index html 我将存储库克隆到我的应用程序目
  • 如何在Qt中设置编译器?

    我对 Qt 完全陌生 我下载了离线版本 Qt 5 3 2 for Windows 64 bit VS 2013 OpenGL 573 MB 我无法编译我的项目 I have Qt Creator 3 2 1 开源 基于Qt 5 3 2 MS
  • Clang 格式将 if 语句体拆分为多行

    我有以下 cpp 文件 void call long function name bool void sf bool int main bool test true if test call function name test if te
  • Qt Creator:在终端中运行

    我想获得在 Qt Creator 中运行程序的完整控制台功能 与此处描述的问题相同 使用 Qt Creator 进行控制台输入 https stackoverflow com questions 1356328 console input
  • 强制 clang-format 根本不碰评论

    我故意在行的开头提供一些注释 例如一些调试代码 并且不想缩进这些行 我同意 clang format 根本不碰 评论 他们全部 我发现的唯一设置是ReflowComments false仍然可以识别评论 我没有找到任何不缩进注释的设置 如果
  • 如何使用 ClangCodeModel 插件在 QtCreator 中设置 C++ 标准?

    抱歉 如果这是一个愚蠢的问题 但我已经尝试了几乎所有的方法 现在正在用头撞墙 问题是 带有 Clang 代码模型插件的 QtCreator 4 8 0 beta for Windows 解析我的项目 为 C 98 而实际上它是 C 17 但
  • 在 QtCreator 中调试时如何查看 qDebug 消息

    我正在从 Eclipse CDT 带有 Qt 集成插件 过渡到 QtCreator 2 0 但仍有一件事困扰着我 QtCreator 当我在 QtCreator 中调试时 我在Application output tab直到我停止正在调试的
  • Qt Creator 中的 *.qss 文件没有语法突出显示?

    It s wired that Qt Creator didn t have a syntax highlight for its own style file format or did i missed some packages 版本
  • 如何阻止 Qt Creator 将可执行文件放置在“调试”子目录中?

    我正在 Qt Creator 中构建一个项目 虽然我不关心中间 obj 文件去哪里 但重要的是最终的可执行文件应放入 并运行 许多依赖项 DLL 等所在的特定目录中 被发现 因此 在 Qt Creator 中 我选择 Shadow Buil
  • 在 qmake 中手动配置影子构建

    我非常喜欢 qt Creator 中的一个功能 那就是 Shadow 构建 当 Shadow Build 打开时 所有生成的文件 moc Makefile o 都将在给定的源目录中生成 因此源目录保持干净 我正在从 qt Creator 转
  • 如何配置 qt Creator 以显示 C++ 代码而不是反汇编程序?

    昨天我做了很多事情 比如更新 GCC Clang 和重新安装 Qt Creator 今天 在逐步调试我的代码时 调试器显示的是反汇编代码 而不是我编写的 C 代码 紧迫F10 or F11 调试器正在进入汇编代码而不是 cpp nor h我
  • 如何在 Qt Creator 中编辑 QtWebKit 的右键上下文菜单?

    好吧 这是我的困境 我正在使用 Qt Creator 制作一个使用 Webkit 的简单应用程序 我认为 Qt Creator 会有一种简单的方法来使用信号和槽编辑器编辑右键单击上下文菜单 但事实证明这不是真的 我知道 webkit 有与上
  • 完全彻底卸载QT Creator

    问题 如何从 Linux 机器上卸载 QT Creator 我的 Debian Jessie 机器上的安装已损坏 我尝试过重新安装 修复等 但没有成功 建议我完全卸载 获取最新版本并重新安装 问题是我不确定如何执行此操作 每次我尝试时 QT

随机推荐

  • STM32 堆栈大小的设置及分析

    一 通过map文件了解堆栈分配 STM32 MDK5 避免堆栈溢出 环境 xff1a STM32F103C8T6 MDK5 在最近的一个项目的开发中 xff0c 每当调用到一个函数 xff0c 程序就直接跑飞 debug跟进去看不出什么逻辑
  • C# VS2017中Windows窗体更改图标

    一 图片准备 1 需要 ICO格式的文件 2 矢量图下载可在阿里巴巴的矢量图库中下载 xff08 https www iconfont cn xff09 3 下载PNF文件的图片后需转成 ICO格式 xff08 https www uupo
  • 关于RS485的DMA发送,以及EN使能脚的自动切换

    一 电路设计 1 低成本非隔离 xff1a 3 3v系统同样 xff0c 将5V改为3 3即可 同时采用TX连接三极管 xff0c 实现三极管驱动RS485芯片的EN使能脚 xff0c 从而省下一个IO口控制 隔离只需要将两个信号线用光耦隔
  • 百度2014校园招聘笔试题(武汉站 9.28)

    一 简答题 xff08 本题共30分 xff09 动态链接库与静态链接库分别有什么优缺点 xff1f xff08 10分 xff09 轮训任务调度和抢占式任务调度有什么区别 xff1f xff08 10分 xff09 请列出数据库中常用的锁
  • c语言栈溢出的原因及解决办法_STM32编程:是时候深入理解栈了

    导读 从这篇文章开始 xff0c 将会不定期更新关于嵌入式C语言编程相关的个人认为比较重要的知识点 xff0c 或者踩过的坑 为什么要深入理解栈 xff1f 做C语言开发如果栈设置不合理或者使用不对 xff0c 栈就会溢出 xff0c 溢出
  • 时钟芯片DS1302异常

    异常现象 xff1a DS1302时间不走时 xff0c 秒位是一个大于60的错误数字 分析原因 xff1a DS1302受到干扰 xff0c 软件仿真发现DS1302的秒寄存器最高位被置为1 xff08 为时钟停止位 xff09 解决方法
  • STM32 下载调试口(JTAG+SWD)禁用及作为普通IO口

    1 RCC APB2PeriphClockCmd RCC APB2Periph AFIO ENABLE 开启AFIO时钟 2 GPIO PinRemapConfig GPIO Remap SWJ JTAGDisable ENABLE 改变指
  • 波特率的解析及转换为字节传输速率

    波特率115200 xff1d 115200 位 秒 以最普通的串口 xff08 起始位 43 8位数据 43 停止位 xff09 为例 xff1a 除以 10 xff0c 得到的是每秒字节数 xff1a 波特率115200 xff1d 1
  • 如何判断CAN总线空闲以及帧间隙,计算传输速率

    一 如何判断总线忙还是空闲呢 进入 正常模式之前 xff0c bxCAN 必须始终在 CAN 总线上实现 同步 为了进行同步 xff0c bxCAN 将等待 CAN 总线空闲 xff08 即 xff0c 已监测到CANRX 上的 11 个隐
  • STM32 DMA传输出错的防错机制

    一 DMA 中断 对于每个 DMA 数据流 xff0c 可在发生以下事件时产生中断 xff1a 达到半传输 xff08 每次传输都会触发 xff0c 属于正常触发 xff09 传输完成 传输错误 FIFO 错误 xff08 上溢 下溢或 F
  • IAR的View视图菜单中Watch、 Live Watch、 Quick Watch、 Auto、 Locals、 Statics这几个子菜单的含义和区别

    一 简述IAR的View视图菜单 View这个菜单的意思就是打开 xff08 已关闭的 xff09 视图窗口 xff0c 比如我们的工作空间窗口不见了 xff0c 就可以通过该菜单打开 不瞒大家 xff0c 以前我初学软件的时候 xff0c
  • DWA论文翻译

    摘要 本文介绍了一种能够令机器人进行自主避障的动态窗口法 xff08 dynamic window approach xff0c DWA xff09 该方法是从机器人的运动动力学直接推导出的 xff0c 因此特别适合在高速运动的机器人 与以
  • DWA仿真测试

    1 前言 由于之前已经对相关论文进行了翻译 xff0c 因此这里就不再对DWA的原理进行赘述 本文主要目的是根据相关的程序进一步强化对论文中所体现思想的理解 2 示例1 以下是使用python写的一个例子 xff0c 其中比较核心的是把搜索
  • TEB论文翻译

    摘要 传统的 elastic band 方法在规避障碍物的同时 xff0c 会根据距离最短的原则修正全局路径规划算法生成的路径 不过 elastic band 方法没有考虑到机器人的任何运动学约束 本文提出了一种称为 Time elasti
  • 求字符串中的最长回文子串

    方法一 xff08 暴力法 xff09 xff1a include lt stdio h gt include lt string h gt bool Palindrome const char str int start int end
  • 状态估计4(无迹卡尔曼滤波)

    1 简述 2 无迹卡尔曼滤波的思想 3 无迹卡尔曼滤波的核心公式 4 两个例子 34 34 34 Unscented kalman filter UKF localization sample author Atsushi Sakai 64
  • 积分曲线的绘制问题

    概述 事情突然 xff0c 我师姐让我帮她用maltab绘制一个函数的积分曲线 xff0c 如 xff0c 只是感觉满有意思的 xff0c 记录于此 xff01 1 示例 1 1 程序 coding utf 8 34 34 34 Creat
  • 并发与多线程3 (访问局部变量)

    1 例子 1 1 程序 include lt iostream gt include lt thread gt using namespace std struct func public func int amp i i i void o
  • 符号运算求解方程组

    概述 最近帮同事求解一个问题 xff0c 实在不想自己动手推导了 xff0c 就用python的符号运算自动计算了 xff0c 蛮有意思的 1 例子 1 1 程序 34 34 34 Created on Wed Jun 30 14 26 3
  • qtcreator+ClangFormat格式化代码

    1 前言 希望能够格式化代码 xff0c 令代码更加的整齐漂亮 2 设置 1 工具 选项 2 然后选择Beautifier General xff0c Tool选择ClangFormat 图1 General 3 点击ClangFormat