文章目录
QT5 - 添加Astyle外部格式化工具
概述
QT5自带格式化插件,但是设置参数不好设置。看控制台提示信息,没生效。
自己添加外部工具Astyle方便一些,直观。
笔记
添加外部工具

添加工具

将最新下载的Astyle-3.6.16-x64放到自己的工具目录

为了参数配置方便,只填写exe名称和配置文件名称。参数都写在配置文件中。
bash
D:\AStyle\bin\AStyle.exe
--options=D:\AStyle\bin\my_style.cfg %{CurrentDocument:FilePath}
在配置文件中,按照Astyle语法写上规则就行了。
bash
# @file my_style.cfg
# @brief
# on qt 外部工具配置 --options=D:\AStyle\bin\my_style.cfg %{CurrentDocument:FilePath}
--style=1tbs
--indent=spaces=4
设置快捷键
QtCreator没有简单方法将配置的外部工具放到顶层菜单或者顶层工具条上,折中来说,设置快捷键就是最简单的了。

快捷键冲突的解决。
我用的CTRL + I 原来是自动缩进的快捷键。

可以搜索 "CTRL + I", 将变红的这个快捷键都找出来,删掉自己不用的快捷键就好了。
备注
剩下的事情,就是看ASytle新版文档,将需要的格式化参数加入D:\AStyle\bin\my_style.cfg
整理后的Astyle规则文件如下:
bash
# @file my_style.cfg
# @brief
# on qt 外部工具配置 --options=D:\AStyle\bin\my_style.cfg %{CurrentDocument:FilePath}
--style=1tbs
--indent=spaces=4
--attach-namespaces
--attach-classes
--attach-inlines
--attach-extern-c
--attach-closing-while
--indent-switches
--indent-cases
--indent-namespaces
--indent-labels
--indent-preproc-block
--indent-preproc-define
--indent-col1-comments
--min-conditional-indent=0 # 一行过长需要折成多行时,折行的行和第一个关键字对齐,不要缩进
--max-continuation-indent=40
--indent-lambda
--break-blocks
--pad-comma
--pad-include
--unpad-paren
--unpad-brackets
--delete-empty-lines
--squeeze-lines=1
--align-pointer=type
--align-reference=type
--break-one-line-headers
--add-braces
--attach-return-type
# --keep-one-line-blocks # 保留单行块
--close-templates
--remove-comment-prefix
--max-code-length=80
--break-after-logical
--squeeze-ws # 用于压缩参数列表中多余的空格
备注
自己添加的外部工具会自动存为一个.xml, QtCreator启动时会自动载入这个.xml.
在QtCreator中不好改外部工具的命名,可以自己找到这个xml进行修改。
文件位置如下:
bash
C:\Users\chenx>echo %APPDATA%\QtProject\qtcreator\externaltools\
C:\Users\chenx\AppData\Roaming\QtProject\qtcreator\externaltools\
