起因在于习惯性的想格式化代码,发现Qt Creater默认居然是没有代码格式化的,只有一个缩进,搞毛线啊!!!

搜索了下,倒是很容易就搜到了,Qt Creater中有个插件:beautifier,在 帮助-关于插件 中开启了即可(需要重启)。

可惜这只是一个接口,它的作用是调用格式化工具进行格式化。--这一点折腾了两个小时才意识到!惨痛的教训告诉我们,一定要看官方文档,别老想着走捷径!

按照官方的说法,它支持三种外部工具:Artistic Style、ClangFormat、Uncrustify 。并且都提供了下载地址。

这里仅以 ClangFormat 来说明。

ClangFormat 是LLVM的一个子功能,LLVM是类似GCC的东西。

所以,想用 ClangFormat ,就需要下载LLVM,根据上面的地址,搜索适合自己的版本即可。我这里是win64位的。

安装的时候PATH选项无所谓,因为Qt Creater的beautifier Clang Format  选项中既可以根据PATH搜索,也可以自行指定路径。

安装好LLVM之后,就可以设置 Clang Format 选项了。

先配置路径(如:C:\Program Files\LLVM\bin\clang-format.exe );

再选择代码样式,默认有LLVM、Google、Chromium、Mozilla、WebKit、File,此外还可以自定义。

默认样式,需要重点说一下File -- 因为其他的样式都是给定的样式,而 File 则不是。

File clang-format.exe -style=file 的意思,意味着 clang-format.exe 会去搜索样式文件( *.clang-format 文件)。

需要注意的是,它的搜索路径是当前文件所在的文件夹或者当前项目(不知道是否会继续往上层搜索--至少,工作空间就没验证成功)。

这样的话,它要求把 .clang-format 文件放在项目文件夹中,与我的习惯不符。

自定义样式

所幸,还有一个选择:Use customized style - add

如下

Value 部分内容如下

AccessModifierOffset: 0
AlignEscapedNewlinesLeft: false
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: false
BinPackParameters: false
BreakBeforeBinaryOperators: false
BreakBeforeTernaryOperators: false
BreakConstructorInitializersBeforeComma: false
ColumnLimit: 128
BreakBeforeBraces: Attach
CommentPragmas: ''
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 0
ContinuationIndentWidth: 0
Cpp11BracedListStyle: false
DerivePointerBinding: false
IndentCaseLabels: true
IndentFunctionDeclarationAfterType: false
IndentWidth: 4
Language: Cpp
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: true
ObjCBlockIndentWidth: 4
PenaltyBreakBeforeFirstCallParameter: 100
PenaltyBreakComment: 100
PenaltyBreakFirstLessLess: 0
PenaltyBreakString: 100
PenaltyExcessCharacter: 1
PenaltyReturnTypeOnItsOwnLine: 20
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
TabWidth: 4
UseTab: Never

ps:上面这段配置是搜来的,忘了出处了~

使用

工具-Beautifier-ClangFormat 里面有两个选项,分别是格式化当前文件格式化选定内容

但是,这样使用很繁琐,很难用。所以最好给它设置一个快捷键,我的是ALT+CTRL+L(intellij的快捷键)。

注意,ClangFormat 有个特殊的选项 Format entire file if no text was selected ,建议选中这个选项,这样,只需要设置一个Format Selected Text 快捷键即可。

参考:

Beautifying Source Code

Clang-Format Style Options

Qt Creater中Clang-format的使用的更多相关文章

  1. Qt Creater中的.pro文件和.pri文件

    初学Qt,使用Qt Creater打开Demo "QT 3D Basic Shapes C++ Example",发现除了pro文件外,还有一个pri文件,在此小白一下! *.pr ...

  2. QT5.8+vs2015配置以及qt creater中出现中文乱码解决办法之一

    1.参考此文档:QT5.6+vs2015配置: 2.出现乱码问题时候 在头文件上加入: #pragma execution_character_set("utf-8") //加入这 ...

  3. 在Xcode中使用Clang Format

    Xcode中的Re-Indent,顾名思义,只是一个调整缩进的功能,完全依赖它来进行代码格式化显然不够用.我们使用了一个叫做ClangFormat-Xcode的插件,配合Re-Indent一起来做代码 ...

  4. clang format 官方文档自定义参数介绍(中英文)

    官方文档:http://clang.llvm.org/docs/ClangFormatStyleOptions.html 中文 在代码中配置样式 当使用 clang::format::reformat ...

  5. Qt 5中信号和槽的新语法

    QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...

  6. QT Creater 配色方案及下载

    打开QT Creater的工具--选项--文本编辑器--字体和颜色,复制一份配色方案:Vim (dark) ->Vim (dark) (copy) 更改想更改的任何内容的配色.其中,修改后的文件 ...

  7. Qt 4.8.5 + MinGW32 + Qt creater 安装

    Qt 4.8.5 + MinGW32 + Qt creater 安装 下载文件 文件版本 Qt 4.8.5 MinGW 0.4.4 Qt Creator 2.8或2.8.1 gdb-7.4-MinGW ...

  8. QT程序中显示中文字体解决办法

    Qt4.7.1 默认没有中文字体库,迅为给用户提供“文泉驿”字体和配置方法.本节需要的 文件在网盘: 用一个简单测试程序说明“文泉驿”字体的配置方法. 在 Qt Creater 新建工程“nihao” ...

  9. 1.1 Qt Creater使用Python开发桌面软件的操作流程

    Qt Creater及Python的下载与安装过程不再赘述,读者可自行在网上搜索相应的下载与安装方法. 首先我们打开Qt Creater,单击"Create Project"按钮或 ...

随机推荐

  1. CodeForces 550A Two Substrings(模拟)

    [题目链接]click here~~  [题目大意]:  You are given string s. Your task is to determine if the given string s ...

  2. 从错误中学python(4)——最小公约数与辗转相除法

    题目 给你两个正整数a和b, 输出它们的最大公约数 辗转相除法 辗转相除法的步骤 def gcd(b,a): b,a=a,b%a if a==0: return b else: return gcd( ...

  3. centos7 启动httpd的时候为什么显示是这样的

    我输入 service httpd start显示一下内容:Redirecting to /bin/systemctl start httpd.service -------------------- ...

  4. ps曲线

    >>曲线的基本原理. 输入:在坐标的底部横着的是输入,显示的是当前图片上的颜色信息. 输出:竖着的是输出线,使我们调整图片的输出结果. 输入和输出轴上都有一条明暗信息,告诉我们那边是阴影那 ...

  5. OpenGl学习 glenable()函数理解

    glEnable用于启用各种功能.功能由参数决定.与glDisable相对应.glDisable是用来关闭的.两个函数参数取值是一至的. 参数说明:void glEnable(GLenum cap)G ...

  6. 有限狀態機FSM coding style整理 (SOC) (Verilog)

    AbstractFSM在數位電路中非常重要,藉由FSM,可以讓數位電路也能循序地執行起演算法.本文將詳細討論各種FSM coding style的優缺點,並歸納出推薦的coding style. In ...

  7. .NET Garbage-Collectors

    http://mattwarren.org/tags/#Garbage-Collectors https://github.com/dotnet/coreclr/issues https://lldb ...

  8. winform TreeView 节点选择

    public partial class Form1 : Form { public Form1() { InitializeComponent(); } string tag = "Tru ...

  9. Oracle PLSQL Demo - 22.查看字符串的长度[lengthb, length],判断字符串是否包含中文

    --Count the length of string select lengthb('select * from scott.emp') as countted_by_byte, length(' ...

  10. arm程序的反汇编程序

    这是汇编源文件: MCU:S3C2440(arm920T) 代码实现点亮个led小灯 .text .global _start _start: ldr r0,=0x56000010 @GPBCON m ...