QT5 - 添加Astyle外部格式化工具

文章目录

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\

END

相关推荐
小徐不徐说6 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
小王C语言7 小时前
Qt常用控件:容器类控件,标题分组框、标签页(浏览器标签)
开发语言·qt
TMedical7 小时前
MedPlanning 截骨模拟矫形功能
c++·图像处理·人工智能·qt·健康医疗
chari克里10 小时前
QT5.15.2 + msvc2022部署全流程说明(windows可联网环境)
开发语言·c++·qt
透明的玻璃杯11 小时前
VS2015+QT 多线程
开发语言·qt
小王C语言12 小时前
Qt常用控件:多元素控件,纵向列表,表格控件,树状控件
开发语言·qt
huailiang201013 小时前
QSG 与 QRhi:把一个 PBR 渲染器搬进 QML 渲染栈
qt·pbr·qrhi
qq_4663024515 小时前
如何通过部分文件名,读取出整个文件名
c++·qt
半杯咖啡半行码16 小时前
QML进阶实战(二):异步网络、性能优化与工程化落地
网络·qt·性能优化·qml
半杯咖啡半行码18 小时前
QML与 Qt Quick入门实战:从零基础到 C++ 双向通信详解
java·qt·交互