Hello Qt——QtCreator代码格式化
一、QtCreator代码格式化简介
QtCreator提供了一个Beautifier插件,用于加载外部工具(Artistic Style、ClangFormat、Uncrustify)对代码进行格式化。
Beautifier会将源代码解析为结构模块,如赋值语句、IF语句块、循环体等等,并用Beautifier指定的选项对模块进行格式化。
Beautifier可以使用预定义和自定义风格对代码进行格式化。
二、Clang-format
1、Clang-format简介
Clang-format是一个基于LLVM的C++代码格式化工具。
LLVM下载地址:http://ftp.math.utah.edu/pub/llvm/
2、Clang-format安装
根据GCC版本下载相应的LLVM,本人操作系统为RHEL7.3,GCC版本为4.8.5,选择Fedora 20的LLVM版本。如果选择Red Hat 6 x86-64、Red Hat 7 x86-64版本则GLIBC版本要求GLIBCXX_3.4.20,RHEL7.3不能满足。
- 解压llvm-20140716.tar.gz文件
- tar -zxvf llvm-20140716.tar.gz
- 进入llvm-20140716/bin目录
- 将clang-format拷贝到/usr/local/bin目录
- sudo cp -rf clang-format /usr/local/bin
3、Clang-format配置
打开QtCreator4.6,点击菜单栏“Help > About Plugins > C++ > Beautifier ”菜单项。
选中Beautifier插件
重启QtCreator4.6,Beautifier插件即可用。
打开“Tools > Options > Beautifier”配置clang-format工具。
选中“Enable auto format on file save”,选择Tool为“ClangFormat”。
在ClangFormat选项页,选择使用预定义风格为Google。
为了防止风格配置文件不可用,可以指定一个回退风格,选择default将使用default风格,选择none将忽略格式化。
在打开“Tools > Options > Environment->Keyboard->ClangFormat->FormatFile”,设置“Key sequence”为Ctrl+Alt+K。
确定“OK”按钮。
4、Clang-format预定义风格
clang-format预定义了LLVM、Google、Chromium、Mozilla、WebKit五种风格。
5、Clang-format使用
使用QtCreator编辑文件时,保存文件时或是使用快捷键Ctrl+Alt+K,clang-format都会自动格式化当前编辑的文件。
使用命令行可以导出预定义风格,语法如下:
clang-format -style=格式名 -dump-config > 文件名
格式名的取值可以为llvm, google, chromium, mozilla, webkit中的任一种;文件名可以取任何名字,一般取.clang-format或_clang-format,因为自定义的排版格式文件只有取这两种名字之一,才能被Clang-Format识别。
clang-format -style=google -dump-config > .clang-format
6、禁止格式化代码片段
Clang-format不会对// clang-format off和// clang-format on代码区间与/* clang-format off */和 /* clang-format on */代码区间的代码进行格式化,但注释会被正常格式化。
// clang-format offvoid unformatted_code:// clang-format on/* clang-format off */void unformatted_code:/* clang-format on */
7、clang-format自定义风格
clang-format支持自定义风格(通过编写 .clang-format 文件),自定义风格通常在预定义风格基础上进行修改。自定义风格文件内容如下:
#基础样式
BasedOnStyle: LLVM#指针的*的挨着哪边
PointerAlignment: Right# 缩进宽度
IndentWidth: 4# 连续的空行保留几行
MaxEmptyLinesToKeep: 1# 圆括号的换行方式
BreakBeforeBraces: Attach# 是否允许短方法单行
AllowShortFunctionsOnASingleLine: true# 支持一行的if
AllowShortIfStatementsOnASingleLine: true# 在未封闭(括号的开始和结束不在同一行)的括号中的代码是否对齐
AlignAfterOpenBracket: true# 圆括号的换行方式
BreakBeforeBraces: Attach# switch的case缩进
IndentCaseLabels: true# 针对OC的block的缩进宽度
ObjCBlockIndentWidth: 4# 针对OC,属性名后加空格
ObjCSpaceAfterProperty: true# 每行字符的长度
ColumnLimit: 0# 注释对齐
AlignTrailingComments: true# 括号后加空格
SpaceAfterCStyleCast: false# 换行的时候对齐操作符
AlignOperands: true# 中括号两边空格 []
SpacesInSquareBrackets: false# 多行声明语句按照=对齐
AlignConsecutiveDeclarations: false# 容器类的空格 例如 OC的字典
SpacesInContainerLiterals: false# 在构造函数初始化时按逗号断行,并以冒号对齐
BreakConstructorInitializersBeforeComma: true# 函数参数换行
AllowAllParametersOfDeclarationOnNextLine: true# 每行字符的长度
ColumnLimit: 120#在续行(\
# 下一行)时的缩进长度
ContinuationIndentWidth: 4# tab键盘的宽度
TabWidth: 4# 赋值运算符前加空格
SpaceBeforeAssignmentOperators: true# 行尾的注释前加1个空格
SpacesBeforeTrailingComments: 1
注意:实际使用中,必须注意不同版本对于某些选项的支持。低版本clang-format可能对于某些选项并不支持。因此,用户需要阅读当前使用clang-format版本的对应文档。
三、Artistic Style
1、Artistic Style简介
Artistic Style是一个支持C、C++, C++/CLI, Objective-C, C#, Java语言的代码格式化工具。
官方网站:
Artistic Style - Index
下载地址:
https://sourceforge.net/projects/astyle/files/
2、Artistic Style安装
解压astyle_3.1_linux.tar.gz
tar -zxvf astyle_3.1_linux.tar.gz
进入astyle/build目录
cd astyle/build
使用CMake生成MakeFile
cmake ../
编译
make
将编译生成的astyle拷贝到/usr/local/bin目录
sudo cp -rf astyle /usr/local/bin
在命令行测试:
astyle
3、Artistic Style配置
打开QtCreator4.6,点击菜单栏“Help > About Plugins > C++ > Beautifier ”菜单项。
确认Beautifier插件已经被选中。
打开“Tools > Options > Beautifier”配置Artistic-Style工具。
选中“Enable auto format on file save”,选择Tool为“ClangFormat”。
在Artistic Style选项页,选择Artistic Style命令程序所在的路径:/usr/local/bin/astyle。
选中“Use customized style”,点击Add按钮,增加一种自定义风格:
使用ansi风格,在运算符两侧增加空格作为风格。
在打开“Tools > Options > Environment->Keyboard->ArtisticStyle->FormatFile”,设置“Key sequence”为Ctrl+Alt+A。
4、Artistic Style预定义风格
Artistic Style预定义了多种代码缩进风格,如allman、kr、java、stroustrup、whitesmith、vtk、gnu、linux、horstmann、google、mozilla、lisp、pico、ansi等风格。可以使用--style参数指定。
5、Artistic Style使用
使用QtCreator编辑文件时,保存文件时或是使用快捷键Ctrl+Alt+A,Artistic Style都会自动格式化当前编辑的文件。
6、Artistic Style自定义风格
Artistic Style自定义风格通常在预定义风格基础上进行修改。
使用astyle -h可以查看Artistic Style的所有选项参数。
最简单的自定义风格如下:
--style=ansi -p
具体选项参数的含义查看http://astyle.sourceforge.net/astyle.html。
四、Uncrustify
1、Uncrustify简介
Uncrustify是一个支持C, C++, C#, Objective-C, D, Java, Pawn、VALA的代码格式化工具。
官网地址:Uncrustify - Source Code Beautifier for C-like languages
下载地址:Uncrustify Code Beautifier - Browse Files at SourceForge.net
2、Uncrustify安装
Linux环境下载源码uncrustify-master.zip,源码编译安装。
解压源码压缩包后进入uncrustify-master目录
创建编译目录:mkdir build
进入编译目录:cd build
生成MakeFile:cmake ..
编译:make
进入bin目录:cd bin
拷贝程序到/usr/lcoal/bin:sudo cp -rf uncrustify /usr/lcoal/bin
在命令行测试:uncrustify
3、Uncrustify配置
打开QtCreator4.6,点击菜单栏“Help > About Plugins > C++ > Beautifier ”菜单项。
确认Beautifier插件已经被选中。
打开“Tools > Options > Beautifier”配置Uncrustify工具。
选中“Enable auto format on file save”,选择Tool为“Uncrustify”。
在Uncrustify选项页,选择Uncrustify命令程序所在的路径:/usr/local/bin/uncrustify。
选中“Use customized style”,点击Add按钮,增加一种自定义风格:
自定义风格的内容参考uncrustify-master/etc/gnu-indent.cfg文件,uncrustify-master/etc有多种风格的配置文件可供参考。
在打开“Tools > Options > Environment->Keyboard->Uncrustify->FormatFile”,设置“Key sequence”为Ctrl+Alt+U。
4、Uncrustify使用
使用QtCreator编辑文件时,保存文件时或是使用快捷键Ctrl+Alt+U,Uncrustify都会自动格式化当前编辑的文件。
5、Uncrustify自定义风格
Uncrustify通常通过-c参数读取配置文件。如没有指定-c参数,Uncrustify会尝试从UNCRUSTIFY_CONFIG环境变量读取配置文件或是读取用户主目录下的uncrustify或.uncrustify文件。
uncrustify --show-config
列出所有可用的选项
uncrustify --update-config
uncrustify --update-config-with-doc
列出配置文件中所有的可用选项,两者相同
uncrustify --update-config-with-doc -c path/to/your.cfg
导出当前风格到指定文件
Uncrustify自定义风格可以使用基于web的uncrustify_config配置工具进行生成。
https://cdanu.github.io/uncrustify_config_preview/index.html
可以使用界面交互的方式配置自定义风格文件。
Hello Qt——QtCreator代码格式化相关推荐
- Qt sprintf_s函数格式化字符串出错
Qt sprintf_s函数格式化字符串出错 问题的出现: 我在VS上用c C++写的跨平台的函数 移植到Qt 上面 出现sprintf_s 函数格式化出错. 开始以为是编码问题 反复查找Qt乱码问 ...
- Pycharm 和 vscode 多光标、折叠代码和代码格式化快捷键
pycharm 多光标:按住alt+shift+ctrl,用鼠标左键点击,可以出现多个光标,输入的代码可以在光标处同时增加. 折叠所有代码:Ctrl + Shift + - (减号) 展开所有代码:C ...
- 在线代码格式化,在线JSON校验格式化
在线代码格式化 http://tool.oschina.net/codeformat/json 在线JSON校验格式化 http://www.kjson.com/ 两个好用工具
- Zend Studio 10代码格式化设置
2019独角兽企业重金招聘Python工程师标准>>> 1.设置位置 窗口>首选项>PHP>代码样式>格式化程序 2.点击New新创建一个格式配置文件 Pro ...
- cmake+qt+qtcreator的配置,解决Q_OBJECT的问题
cmake+qt+qtcreator的配置,解决Q_OBJECT的问题 参考文章: (1)cmake+qt+qtcreator的配置,解决Q_OBJECT的问题 (2)https://www.cnbl ...
- dw html5怎么美化,DW CS5/CS6代码格式化、美化插件 Dreamweaver代码格式化美化插件
这个<DW CS5/CS6代码格式化.美化插件>应该是现在最好用的代码格式化扩展了. 众所周知Dreamweaver CS5 CS6自带的应用源格式只能独自格式化HTML文件与CSS文件, ...
- Qt Creator代码重构
Qt Creator代码重构 代码重构 查找符号 查找QML类型 查看搜索结果 重命名符号 列编辑 应用重构动作 创建功能 插入虚函数 创建获取器和设置器 重构动作摘要 重构C ++代码 重构QML代 ...
- 怎样将html转换do,html代码格式化 Reddo的教程
完美者(wmzhe.com)网站以软件下载为基础,改版后的网站对功能性板块进行扩充,以期能够解决用户在软件使用过程中遇见的所有问题.网站新增了"软件百科"."锦囊妙技&q ...
- Pycharm使用black作为Python代码格式化外部工具
Pycharm菜单Code->Reformat Code能对Python代码进行格式化,但是black能进一步规范格式,它是PEP8的严格子集. 本次操作的相关环境信息如下:Pycharm 20 ...
- Qt 使用代码编写的自定义控件类
Qt 使用代码编写的自定义控件类 首先需要完成继承QWidget 或者Qt 原生控件类的类编写实现 在需要使用自定义控件类的 UI 文件中添加一个 自定义类的控件(也就是自定义类继承的控件) 将这个控 ...
最新文章
- windbg 脚本学习总结
- mysql5.7.13编译安装_MySQL 5.7.13 源码编译安装配置方法图文教程
- Bootstrap下拉菜单标题
- 威斯康星大学乳腺癌肿瘤数据预测分类代码讲解
- python3 os.system 异步执行_《sentos python教程》 Python os.system(command),这样执行的command命令,和主程序是异步的吗?...
- Android:eclipse安装adt插件后工具栏不显示android相关图标
- 正则表达式-grep命令
- python dll注入监听_DLL注入和API拦截
- 免费版xshell下载地址
- Vue知识点总结(16)——具名插槽(超级详细)
- Matplotlib 箱线图
- php设置时区的两种方法
- 2023临沂大学计算机考研信息汇总
- Linux内核学习笔记(一) 虚拟文件系统VFS
- 精艺熔炼,笃行致远——美和易思34期大数据技术师资项目成功举行
- Vue.js实战之系统学习第七节
- 基金归因Brinson模型
- Shuffle过程介绍
- 年薪170W阿里P8,征婚被喷 你不配!
- Excel如何快速统计及格人数
热门文章
- 图像处理中的差分求导计算和相应的卷积核(filter)
- ESP8266热点配网-Arduino代码分享
- JavaFX键盘事件(及键盘事件无效的原因)
- 日期 时间差 java_Java8中计算日期时间差
- 动态链接库dll,导入库lib,静态链接库lib
- Debug与Release版本的区别详解
- 视频课程:高等数学考研辅导讲座-上
- 嵌入式可视化编程软件选哪个好?(可视化编程平台介绍、测评与选择)【Scratch、Mind+、Mixly】
- golang之web编程入门
- 以下关于java文件名的叙述正确的有_sun java认证考试题库