Qt Creator使用clang-format实现源代码格式化排版(Windows/macOS)
本篇先针对Windows系统来描述,末尾再补充macOS
1、clang官网下载clangformat.exe
LLVM Download Page 下载最新版本
Releases · llvm/llvmproject · GitHub
方法1:完整版
我们需要从官网下载完整的LLVM编译器,PreBuilt Binaries,Windows (64bit),LLVM9.0.0win64.exe。安装时,请勾选添加环境变量,Add LLVM to the system PATH for all users。
安装完毕之后,把C:\Program Files\LLVM\bin目录下的clangformat文件和clangtidy复制到某个文件夹里,比如
F:\Qt\Qt5.12.7\Tools\QtCreator\bin\clang\bin9\ 这里的bin9是新建的文件夹,区别于原来的bin
方法2:单独版
单独版就不需要从官网下载完整的LLVM编译器,因为完整版太大了,包含很多其他工具,没必要。
我们仅仅从LLVM Snapshot Builds,下载clangformat26a25f.exe即可,网页截图如下:
下载后把clangformat26a25f.exe拷贝到路径F:\Qt\Qt5.12.7\Tools\QtCreator\bin\clang\bin\
clangformat官方文档说明
ClangFormat Style Options — Clang 17.0.0git documentation
ClangFormat — Clang 17.0.0git documentation
如果你的电脑安装了VS2017以上版本,那么该版本自带了clangformat.exe,路径是C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Cmon7\IDE\VC\vcpackages但是VS2017自带的clangformat的LLVM版本是v6.0,比较旧,不建议使用了。
2、Qt Creator ClangTidy设置
在Qt Creator里,点击Tools(工具)>Options(选项)>Analyzer(分析器),
在ClangTidy填写F:\Qt\Qt5.12.7\Tools\QtCreator\bin\clang\bin\clangtidy.exe
在Diagnostic configuration里选择ClangTidy and Clazy preselected checks [builtin]。
3、Qt Creator Clangformat插件
Qt Creator,在Help
栏里,选择About Plugins
,勾上Beautifier
,重启qtcreator;
选择Tools>Options,点击左栏的Beautifier,选择Clang Format;
Clang format的路径填写:F:\Qt\Qt5.12.7\Tools\QtCreator\bin\clang\bin\clangformat26a25f.exe
在Options里选择use custized style,Add新建一个配置,名称随意取,例如myclangconfig;
重点来了,在Value
里,输入以下部分;
点击确认按钮之后,最终会在路径C:\Users\<用户名>\AppData\Roaming\QtProject\qtcreator\beautifier\clangformat\myclangconfig生成langformat文件。如果该文件使用了中文注释,那么就需要手动另存为UTF8的编码,否则格式化时会报错:error: Got empty plain scalar。
还有一个更好的办法,先进入路径C:\Users\<用户名>\AppData\Roaming\QtProject\qtcreator\beautifier\clangformat\myclangconfig,然后在命令行终端输入以下命令,可以生成参数模板langformat文件
clangformat26a25f.exe style=Microsoft dumpconfig > langformat
然后再该文件的基础上,修改自己想要的参数。比如:
1 #clang.llvm/docs/ClangFormatStyleOptions 2 BasedOnStyle: Microsoft 3 AccessModifierOffset: 4 4 AlignConsecutiveMacros: true 5 AlignTrailingCments: true 6 AllowShortFunctionsOnASingleLine: Inline 7 AllowShortIfStatementsOnASingleLine: false 8 BreakBeforeBraces: Allman 9 ColumnLimit: 0 10 SortIncludes: Never 11 SeparateDefinitionBlocks: Always 12 AllowShortLambdasOnASingleLine: Empty 13 LambdaBodyIndentation: OuterScope 14 BreakBeforeBraces: Cust 15 BraceWrapping: 16 AfterCaseLabel: true 17 BeforeLambdaBody: false 18 SpacesInLineCmentPrefix: 19 Minimum: 0 20 Maximum: 0详细的变量说明请参见clang官网ClangFormat Style Options — Clang 17.0.0git documentation
也可以看看效果clangformat/
Google C++ Style GuideGoogle C++ Style Guide
选择Tools
>Options
,点击左栏的Beautifier
,选择General
;勾选Enable auto format on save file;Tool选择ClangFormat。
通过菜单操作可以实现格式化
4、设置clangformat快捷键(可有可无)
- 点击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的用法
官网下载PreBuilt Binaries中macOS版本的tarxz文件,大小300+M,注:点击macOS而不是后面的(.sig)
clang+llvm9.0.1x86_64appledarwin.tar.xz
解压
把/clang+llvm9.0.1x86_64appledarwin/bin目录下的clangformat文件和clangtidy复制到某个文件夹里,比如
/Users/<username>/Qt5.12.7/Qt Creator.app/Contents/Resources/libexec/clang/bin9/clangtidy
/Users/<username>/Qt5.12.7/Qt Creator.app/Contents/Resources/libexec/clang/bin9/clangformat
这里的bin9是新建的文件夹,区别于原来的bin
设置QtCreator,clangformat和clangtidy分别指向该路径
配置clangformat的格式化风格,langformat文件最终会保存在:
/Users/<username>/onfig/QtProject/qtcreator/beautifier/clangformat
上一篇:Qt 使用QCryptographicHash做简单的数据加密
下一篇:Filezilla 使用教程
Qt