Qt Creator使用clang-format实现源代码格式化排版(Windows/macOS2)

简介: Qt Creator使用clang-format实现源代码格式化排版(Windows/macOS2)

重点来了,在Value里,输入以下部分;


# 编程语言: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto
Language: Cpp
# 基础样式
BasedOnStyle: Google
#指针的*的挨着哪边,例如int* a
DerivePointerAlignment: false
PointerAlignment: Left
# 访问修饰符前的空格,例如public,private等
AccessModifierOffset: -4
# 缩进宽度
IndentWidth: 4
# 要保留的最大连续空行数
MaxEmptyLinesToKeep: 1
# 大括号{}的换行方式,数值是Allman或Attach
BreakBeforeBraces: Allman
# 是否允许短方法单行,例如int f() { return 0; }
AllowShortFunctionsOnASingleLine: true
# 支持一行的if,例如值为true,则可以放在一行上。if (a) return;
AllowShortIfStatementsOnASingleLine: false
# 在未封闭(括号的开始和结束不在同一行)的括号中的代码是否对齐,为true,则将参数在左方括号后水平对齐
AlignAfterOpenBracket: true
# switch的case缩进
IndentCaseLabels: false
# 针对OC的block的缩进宽度
ObjCBlockIndentWidth: 4
# 针对OC,属性名后加空格
ObjCSpaceAfterProperty: true
# 每行字符的长度
ColumnLimit: 0
# 注释对齐
AlignTrailingComments: true
# 括号后加空格,例如(int) i;
SpaceAfterCStyleCast: false
# 换行的时候对齐操作符
AlignOperands: true
# 中括号两边空格 []
SpacesInSquareBrackets: false
# 多行声明语句按照=对齐
AlignConsecutiveDeclarations: false
# 容器类的空格 例如 OC的字典
SpacesInContainerLiterals: false
# 在构造函数初始化时按逗号断行,并以冒号对齐
BreakConstructorInitializersBeforeComma: true
# 函数参数换行
AllowAllParametersOfDeclarationOnNextLine: true
#在续行(#下一行)时的缩进长度
ContinuationIndentWidth: 4
# tab键盘的宽度
TabWidth: 4
# 赋值运算符前加空格
SpaceBeforeAssignmentOperators: true
# 行尾的注释前加1个空格
SpacesBeforeTrailingComments: 1

点击确认按钮之后,最终会在路径C:\Users\<用户名>\AppData\Roaming\QtProject\qtcreator\beautifier\clangformat\myclangconfig生成.clang-format文件。如果该文件使用了中文注释,那么就需要手动另存为UTF-8的编码,否则格式化时会报错:error: Got empty plain scalar。


还有一个更好的办法,先进入路径C:\Users\<用户名>\AppData\Roaming\QtProject\qtcreator\beautifier\clangformat\myclangconfig,然后在命令行终端输入以下命令,可以生成参数模板.clang-format文件

clang-format-2663a25f.exe -style=Microsoft -dump-config > .clang-format


然后再该文件的基础上,修改自己想要的参数。比如:

BasedOnStyle: Microsoft
AccessModifierOffset: -4
AlignConsecutiveMacros: true
AlignTrailingComments: true
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: false
BreakBeforeBraces: Allman
ColumnLimit: 0


详细的变量说明请参见clang官网https://clang.llvm.org/docs/ClangFormatStyleOptions.html

也可以看看效果 https://clangformat.com/

Google C++ Style Guide https://google.github.io/styleguide/cppguide.html

选择Tools->Options,点击左栏的Beautifier,选择General;勾选Enable auto format on save file;Tool选择ClangFormat。


image.png


通过菜单操作可以实现格式化


image.png


4、设置clang-format快捷键(可有可无)


点击Tools->Options->Environment->Keyboard;

在Filer里输入clang,滤掉一部分方便查找,然后想要的出现了;

选上FormatFile,点下那一栏就行了;

在Key sequence里手动打入Ctrl+shift+k,当然点击右边的Record按钮,按钮会变成stop recording,再在键盘上按照Ctrl->shift->k的顺序按下去,前面两个键按住了不要松,等到按到k再松开,然后快捷键栏里面会出现Ctrl+shift+k,点击stop recording,点击保存。


再补充macOS的用法


官网下载Pre-Built Binaries中macOS版本的tar-xz文件,大小300+M,注:点击macOS而不是后面的(.sig)

       clang+llvm-9.0.1-x86_64-apple-darwin.tar.xz


解压

把/clang+llvm-9.0.1-x86_64-apple-darwin/bin目录下的clang-format文件和clang-tidy复制到某个文件夹里,比如

       /Users/<username>/Qt5.12.7/Qt Creator.app/Contents/Resources/libexec/clang/bin9/clang-tidy

       /Users/<username>/Qt5.12.7/Qt Creator.app/Contents/Resources/libexec/clang/bin9/clang-format


这里的bin9是新建的文件夹,区别于原来的bin


设置QtCreator,clang-format和clang-tidy分别指向该路径

配置clang-format的格式化风格,.clang-format文件最终会保存在:

      /Users/<username>/.config/QtProject/qtcreator/beautifier/clangformat



姊妹篇


《VS2019使用clang-format实现源代码格式化排版》


https://libaineu2004.blog.csdn.net/article/details/112760035





---


参考文献

https://www.jianshu.com/p/e8e0158258f0 clang-format常用配置


https://www.jianshu.com/p/ba7aa6a2e4d1 Clang-Format在 Mac上的安装与使用


https://blog.csdn.net/core571/article/details/82867932  C++ 代码格式化方法(clang-format)


https://github.com/FISCO-BCOS/FISCO-BCOS/blob/master/.clang-format


https://gitee.com/mirrors/FISCO-BCOS/blob/master/.clang-format


另外也有提供给VS使用的clang-format插件,VS2017主菜单-工具-选项-文本编辑器-C/C++-格式设置。


https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.ClangFormat


https://marketplace.visualstudio.com/items?itemName=MariuszBrzeski.CodeBeautifier


不过VS我个人推荐使用CodeMaid插件


https://marketplace.visualstudio.com/items?itemName=SteveCadwallader.CodeMaid



相关文章
|
8天前
|
人工智能 JSON 安全
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
阿里云AI安全产品联动防御Fastjson攻击
2186 12
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
|
8天前
|
云安全 人工智能 安全
|
8天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max-Preview深度全解析:2.4万亿参数旗舰MoE模型+Token Plan限时优惠完整落地指南
2026年7月,全新旗舰级混合专家大模型Qwen3.8-Max-Preview正式开放抢先体验,作为通义千问Qwen3系列规格最高、综合推理能力顶尖的新一代模型,该模型总参数量达到2.4万亿(2.4T),是当前线上可调用的原生多模态旗舰模型,综合推理水准对标海外顶级Fable 5模型,在复杂工程开发、长文档深度分析、多步骤智能体自治、跨境多语言创作、海量数据挖掘五大高难度业务场景实现跨越式性能提升。
981 1
|
10天前
|
人工智能
Qwen3.8抢先体验!正式版即将发布并开源!
千问Qwen3.8即将开源,参数达2.4T,进化速度以“天”计,实力媲美Fable 5。预览版Qwen3.8-Max已上线阿里Token Plan等平台,限时优惠:日间Credits低至1折,夜间更优,个人/团队版月付仅35元起!
986 44
|
8天前
|
人工智能 自然语言处理 数据挖掘
最新版通义千问(Qwen3.8-Max-Preview)功能介绍
2026年,通义千问正式推出全新旗舰级大模型 **Qwen3.8-Max-Preview 预览版**,作为首款突破万亿参数规格的新一代基座模型,该模型总参数量达到**2.4万亿**,采用全新迭代的MoE混合专家架构,综合推理性能、长文本处理、多模态理解、复杂任务规划能力全面超越前代Qwen3.7-Max版本,整体实力跻身全球第一梯队,可对标海外顶级旗舰模型,是当前面向复杂工程开发、多智能体协同、超长文档解析、专业办公自动化场景的最优国产基座模型。
987 0
|
6天前
|
自然语言处理 测试技术 API
通义千问Qwen3.8-Max-Preview全功能解析:2.4万亿参数旗舰模型深度使用指南
在大模型技术持续迭代的当下,通义千问推出的Qwen3.8-Max-Preview作为新一代旗舰预览版模型,凭借2.4万亿参数的超大规模、多模态融合能力与全场景适配特性,成为开发者与企业用户探索AI应用的核心工具。该模型采用稀疏混合专家(MoE)架构,是通义千问首个突破万亿参数的多模态模型,可同时处理文本、图像、视频与文档等多种数据形态,在全栈代码开发、复杂逻辑推理、长文档分析与多智能体协作等场景实现跨越式升级。本文将全面拆解Qwen3.8-Max-Preview的核心功能,详解API调用流程与配置方法,覆盖多场景实战技巧,帮助用户快速掌握这款旗舰模型的使用方法,充分释放其性能潜力。
476 1
|
9天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max 预览版全解析:2.4 万亿参数旗舰模型,Token Plan 限时优惠指南
Qwen3.8-Max-Preview是通义千问Qwen3系列旗舰MoE大模型,参数达2.4万亿,综合推理能力居行业第一梯队。支持思考/快速双模式,擅长大模型五大高难场景。现于阿里云百炼Token Plan、Qoder及QoderWork上线体验,个人版低至39元/月。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
687 1
Qwen3.8-Max 预览版全解析:2.4 万亿参数旗舰模型,Token Plan 限时优惠指南