Qt Creator使用Clang Format方法

Qt Creator使用Clang Format

习惯性的想格式化代码,发现Qt Creator默认居然是没有代码格式化的,只有一个缩进。
Qt Creater中有个插件:beautifier,在"帮助->关于"插件中,开启“Beautifier”即可(会提醒需要重启Qt creator)。
注:Qt Creator安装包中不包含这个格式化工具,它的作用是调用格式化工具进行格式化。

windows系统:

安装:

官方的说支持三种外部格式化工具:Artistic Style、ClangFormat、Uncrustify 。
这里仅以 ClangFormat 来说明:
ClangFormat 是LLVM的一个子功能,LLVM是类似GCC的东西。
https://github.com/llvm/llvm-project/releases/

所以,想用 ClangFormat ,就需要下载LLVM,根据上面的地址,搜索适合自己的版本即可。
安装LLVM的时候PATH选项无所谓,因为Qt Creater的beautifier的Clang Format选项中,既可以根据PATH搜索,也可以自行指定路径。

配置:

安装好LLVM之后,就可以设置 Clang Format 选项。
“编辑->preferences”; “Beautifier->Clang Format”: Configure: Clang Format command:
先配置路径(如: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 文件)。
需要注意的是,它的搜索路径是当前文件所在的文件夹或者当前项目。

自定义样式:Options -> Use customized style -> Add
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

使用:

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

注:也可使用快捷方式进行操作,“编辑->preferences->环境->键盘->ClangFormat": ***

linux系统:

macOS系统:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/70650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS内联样式与外联样式

第一种内联样式 通过HTML元素的style属性来设置CSS样式&#xff0c;语法如下: style"css属性:css属性值;"示例代码: <!DOCTYPE html> <html><head><title>01_第一种使用方式.html</title></head><body><!-- style&q…

[PHP]empty一直返回true

class Post {public function __get($key){return true;} }$post new Post(); var_dump(empty($post->a));// bool(true) PHP: 重载 - Manual 读取不可访问&#xff08;protected 或 private&#xff09;或不存在的属性的值时&#xff0c;__get() 会被调用。 当对不可访…

开源库网格算法比较

对于Mesh&#xff0c;我们通常分为结构化网格和非结构化网格。理解很简单&#xff0c;除了四边形和六面体是结构化网格&#xff0c;其它都是非结构化网格 最近在学习网格算法&#xff0c;本人关心的主要是3D网格相关的算法&#xff0c;总结了一下主要包括&#xff1a;网格生成…

删除单链表偶数节点

本题要求实现两个函数&#xff0c;分别将读入的数据存储为单链表、将链表中偶数值的结点删除。链表结点定义如下&#xff1a; struct ListNode { int data; struct ListNode *next; }; 函数接口定义&#xff1a; struct ListNode *createlist(); struct ListNode *deleteeven( …

Git的安装以及基础使用方法

Git是一种分布式版本控制系统&#xff0c;被广泛用于管理代码、文档和任何其他类型的数据。它允许开发者在团队中协作&#xff0c;并且在处理大型项目时可以保持代码的完整性。 这里写目录标题 一、安装和设置二、基本的Git命令三、分支和合并四、标签和远程仓库 一、安装和设置…

架构师spring boot 面试题

spring boot 微服务有哪些特点&#xff1f; Spring Boot 微服务具有以下特点&#xff1a; 独立性&#xff1a;每个微服务都是独立的部署单元&#xff0c;有自己的代码库和数据库。这使得微服务可以独立开发、测试、部署和扩展。 分布式&#xff1a;微服务架构将一个大型应用程…

pdf怎么转换成jpg图片?

随着数字文档的广泛应用&#xff0c;将PDF转换为JPG图片格式成为了一个常见的需求。无论是为了在网页上展示内容&#xff0c;还是为了与他人分享图片&#xff0c;以下是一些简单的方法&#xff0c;帮助您将PDF文件快速转换为高质量的JPG图片。 方法一&#xff1a;在线PDF转JPG…

手写Mybatis:第12章-完善ORM框架,增删改查操作

文章目录 一、目标&#xff1a;完善增删改查二、设计&#xff1a;完善增删改查三、实现&#xff1a;完善增删改查3.1 工程结构3.2 完善增删改查类图3.3 扩展解析元素3.4 新增执行方法3.4.1 执行器接口添加update3.4.2 执行器抽象基类3.4.3 简单执行器 3.5 语句处理器实现3.5.1 …

Nginx - 根据请求参数路由进行不同的响应

文章目录 需求思路 需求 业务有一个统一入口 /api/biz?type1 /api/biz/type2需要对不同的接口实现流控 最常见的是通过location进行路径匹配的时候&#xff0c;但是无法使用正则表达一起捕获这个路径和querstring的参数。如果我们想通过URL里面的Query String进行不同的rew…

ChatGPT 插件 “Consensus“ 实现论文搜索功能;数据工程在语言建模中的重要性

&#x1f989; AI新闻 &#x1f680; ChatGPT 插件 “Consensus” 实现论文搜索功能 摘要&#xff1a;OpenAI 推出了一个名为 “Consensus” 的插件&#xff0c;可在 ChatGPT 上进行论文搜索。用户只需用一句话描述自己想了解的问题&#xff0c;插件就能从 2 亿篇论文中搜索并…

关于unordered_map中元素的插入顺序与遍历顺序问题

最近做一个项目遇到一个问题困扰我两天,差点自闭。经排查是 插入到unordered_map中的键值对的顺序和实际的键值对存在的顺序没有关系 众所周知,unordered_map插入元素后,键值不会自动排序,但是顺序却不一定和插入顺序一致。msvc和gcc编译器也各不相同。 std::unordered_map&l…

使用Puppeteer爬取地图上的用户评价和评论

导语 在互联网时代&#xff0c;获取用户的反馈和意见是非常重要的&#xff0c;它可以帮助我们了解用户的需求和喜好&#xff0c;提高我们的产品和服务质量。有时候&#xff0c;我们需要从地图上爬取用户对某些地点或商家的评价和评论&#xff0c;这样我们就可以分析用户对不同…

Java方法的使用

目录 一、方法的概念及使用 二、方法的重载 三、递归 一、方法的概念及使用 1、方法的概念 2、方法定义 3、方法调用的执行过程 4、实参和形参的关系(重要) 5、没有返回值的方法 二、方法的重载 三、递归 1、递归的概念 一、方法的概念及使用 1、方法的概念 方法…

java八股文面试[数据库]——InnoDB与MyISAM的区别

InnoDB和MyISAM是使用MySQL时最常用的两种引擎类型&#xff0c;我们重点来看下两者区别。 事务和外键 InnoDB支持事务和外键&#xff0c;支持回滚&#xff0c;具有安全性和完整性&#xff0c;适合大量insert或update操作 MyISAM不支持事务和外键&#xff0c;它提供高速存储和…

ElementUI浅尝辄止29:Breadcrumb 面包屑

显示当前页面的路径&#xff0c;快速返回之前的任意页面。 1.如何使用&#xff1f; 在el-breadcrumb中使用el-breadcrumb-item标签表示从首页开始的每一级。Element 提供了一个separator属性&#xff0c;在el-breadcrumb标签中设置它来决定分隔符&#xff0c;它只能是字符串&am…

Ue5 C++ metahuman

#创建metahuman# 参考官网&#xff1a; 创建MetaHuman | Epic Developer Community (epicgames.com) #在UE中怎么找到metahuman# 参考&#xff1a; Quixel Bridge中的MetaHuman | Epic Developer Community (epicgames.com) #将metahuman 导入到UE中# 参考&#xff1a;导出…

前端技术搭建五子棋游戏(内含源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了拼图游戏&#xff0c;今天还是继续按照我们原定的节奏来带领大家完成一个五子棋游戏&#xff0c;功能也比较简单简单&#xff0c;也…

python字符串相关

python字符串相关 一、reverse() 函数 只能反转 列表二、reversed() 反转元组字符串等等 返回迭代器三、join和reversed反转字符串四、join串联字符串&#xff08;join连接对象仅限字符串、储存字符串的元组、列表、字典&#xff09;数字对象可通过str()转化为字符串⭐对象为字…

JavaScript 数组手册 – 通过示例和备忘单了解 JS 数组方法如何工作

在编程中&#xff0c;数组是包含元素集合的数据结构。数组非常有用&#xff0c;因为您可以在单个数组中存储、访问和操作多个元素。 在本手册中&#xff0c;您将学习如何在 JavaScript 中使用数组。我们将介绍创建数组时需要遵循的特定规则&#xff0c;以及如何使用数组方法根…

Fiddler安装与使用教程(2) —— 软测大玩家

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…