代码格式化工具 Clang-format
介绍
平时团队进行合作的时候需要注意代码的格式,虽然很难统一每个人的编码风格,但是通过工具能够很好的管理代码格式。这里介绍下clang-format,它是基于clang的一个命令行工具,能够自动化格式C/C++/Obj-C代码,支持多种代码风格:Google, Chromium, LLVM, Mozilla, WebKit,也支持自定义风格(通过编写.clang-format文件)很方便的同意代码格式。
使用方法
- Linux下下安装Clang-format : sudo apt-get install clang-format
以LLVM代码风格格式化main.cpp, 结果直接写到main.cpp
clang g-format -i main.cpp -style=LLVM
当然也支持对指定行格式化,格式化main.cpp的第1,2行
clang-format -lines=1:2 main.cpp
vim 中也可以集成该插件1
- 它提供一个clang-format-diff.py脚本,用来格式化patch,code review提交代码2
配置文件说明
- 配置文件.clang-format详细说明
# 基于那个配置文件
BasedOnStyle: LLVM
# 访问说明符的偏移(public private)
AccessModifierOffset: -4
# 括号之后,水平对齐参数: Align DontAlign AlwaysBreak
AlignAfterOpenBracket: Align
# 连续的赋值时,对齐所有的等号
AlignConsecutiveAssignments: true
# 连续声明时,对齐所有声明的变量名
AlignConsecutiveDeclarations: true
# 左对齐换行(使用反斜杠换行)的反斜杠
AlignEscapedNewlinesLeft: true
# 水平对齐二元和三元表达式的操作数
AlignOperands: true
# 对齐连续的尾随的注释
AlignTrailingComments: true
# 允许函数声明的所有参数在放在下一行
AllowAllParametersOfDeclarationOnNextLine: true
# 允许短的块放在同一行
AllowShortBlocksOnASingleLine : false
# 允许短的case标签放在同一行
AllowShortCaseLabelsOnASingleLine: false
# 允许短的函数放在同一行: None, InlineOnly(定义在类中), Empty(空函数), Inline(定义在类中,空函数), All
AllowShortFunctionsOnASingleLine: Empty
# 是否允许短if单行 If true, if (a) return; 可以放到同一行
AllowShortIfStatementsOnASingleLine: false
# 允许短的循环保持在同一行
AllowShortLoopsOnASingleLine: false
# 总是在定义返回类型后换行(deprecated)
AlwaysBreakAfterDefinitionReturnType: None
# 每行字符的限制,0表示没有限制
ColumnLimit: 100
# 描述具有特殊意义的注释的正则表达式,它不应该被分割为多行或以其它方式改变
CommentPragmas: '^ IWYU pragma:'
# 语言: None Cpp Java Objc Protp
Language: Cpp
#指针的*的挨着哪边
PointerAlignment: Right
#缩进宽度
IndentWidth: 4
# 连续的空行保留几行
MaxEmptyLinesToKeep: 1
# 在 @property 后面添加空格, \@property (readonly) 而不是 \@property(readonly).
ObjCSpaceAfterProperty: true
# OC block后面的缩进
ObjCBlockIndentWidth: 4
# 是否允许短方法单行
AllowShortFunctionsOnASingleLine: false
# 换行的时候对齐操作符
#AlignOperands: true
# 中括号两边空格 []
SpacesInSquareBrackets: true
# 小括号两边添加空格
SpacesInParentheses : false
#等号两边的空格
SpaceBeforeAssignmentOperators: true
# 容器类的空格 例如 OC的字典
SpacesInContainerLiterals: true
#缩进
IndentWrappedFunctionNames: true
#在block从空行开始
KeepEmptyLinesAtTheStartOfBlocks: true
#在构造函数初始化时按逗号断行,并以冒号对齐
BreakConstructorInitializersBeforeComma: true
#括号后添加空格
SpaceAfterCStyleCast: false
# 允许排序#include, 造成编译错误
# SortIncludes: true
# 缩进case 标签
IndentCaseLabels: true
#tab键盘的宽度
TabWidth: 4
UseTab: Never
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
参考
- Clang 8 documentation
- 使用clang-format格式化你的代码
- Clang-Format格式化选项介绍
- clang-format 格式化工具简易配置
- vim安装插件以后启动变慢怎么解决?
- vim代码格式化插件clang-format ↩
- clang-format-diff.py ↩
代码格式化工具 Clang-format相关推荐
- python格式化代码工具_python 代码格式化工具:YAPF
背景 现在的大多数 Python 代码格式化工具(比如:autopep8 和 pep8ify)是可以移除代码中的 lint 错误.这显然有些局限性.比如:遵循 PEP 8 指导的代码可能就不会被格式化 ...
- 五彩斑斓的 Black —— Python代码格式化工具
良好的 Python 代码应有良好的格式规范(不止于遵守 PEP 8 ),使用一个更强大更专业的代码格式化工具,来替代编辑器自带的「格式化代码」功能是有一定必要的,这还可以使团队成员即使在不同编辑器下 ...
- 超人气代码格式化工具prettier
一.prettier 介绍 官方自己介绍说,prettier是一款强势武断的代码格式化工具,它几乎移除了编辑器本身所有的对代码的操作格式,然后重新显示.就是为了让所有用这套规则的人有完全相同的代码.在 ...
- clang format 官方文档自定义参数介绍(中英文)
官方文档:http://clang.llvm.org/docs/ClangFormatStyleOptions.html 中文 在代码中配置样式当使用 clang::format::reformat( ...
- vscode 配置代码格式化工具calng-format,windows/linux都支持
1.安装clang-format工具 linux (ubuntu) sudo apt-get install clang-format-11 windows 下载clang-format.exe,并将 ...
- STM32CubeMX安装包和JDK环境以及Keil代码格式化工具
STM32Cube生态系统是针对STM32微控制器和微处理器的完整软件解决方案, 它既适合寻求STM32的完整,免费开发环境的用户,也适合已经拥有IDE(包括Keil或iAR)的用户,在其中可以轻松集 ...
- 代码格式化工具AStyle简要说明
一 安装 1.1 windows下安装 astyle是代码格式化工具,可以配合vs code的插件进行代码的方便格式化,也可以作为命令行工具单独运行: 下载地址: https://sourceforg ...
- clang format
clang format入门 一:VsCode下载 二:ubuntu下载 三:使用(common) 导出 .clang-format 格式化文件 自己找了一些资料,感觉不是太完整,零零碎碎自己来总结一 ...
- 推荐一个小而美的Python代码格式化工具
代码可读性是评判代码质量的标准之一,有一个衡量代码质量的标准是 Martin 提出的 "WFT" 定律,即每分钟爆出 "WTF" 的次数.你在读别人代码或者做 ...
- Prettier 1.15代码格式化工具新增Angular和Vue.js支持
Prettier 1.15代码格式化工具新增HTML.Vue.js.Angular.MDX支持以及多项语法优化和改进. 对于Angular和Vue,Prettier现在可以格式化这些扩展HTML的框架 ...
最新文章
- ubuntu 下利用ndiswrapper安装无线网卡驱动
- 13个月才跑通GitHub模型,机器学习科研入门太难了吧
- 定义文字用em、rem,效果和px一样
- 计算机操作系统_计算机理论(操作系统概念及常见操作系统类型)
- antd vue表单上传文件_vue+axios+antD的上传图片踩坑
- ASP。NET的设计思想
- [LeetCode 题解]: Roman to Interger
- Spring集成Quartz定时任务
- 【LeetCode】49. Group Anagrams
- linux 跟踪运行的进程,使用 Linux 的 strace 命令跟踪/调试程序的常用选项
- 学习FLTK 使用Fl_Menu_Bar
- 浅谈微信与微博的区别
- 小乐乐上台阶【斐波那契】
- 数学 {n次方根,根号,平方根}
- Javase杂谈(十)
- 淘宝经典差评中评好评和回复
- jQuery根据ID、CLASS、等获取对象
- Vue联动下拉框默认选中
- java大小写敏感_Java是大小写敏感的语言。
- socket 通信 error:88
热门文章
- hive if函数_数据仓库,Hive中使用 != 或 lt;gt;; 符号进行条件过滤时的坑
- 在线答题java背景_答题功能java
- opencv中Mat、CvMat和IplImage的相互转化
- Qt 统计文件夹的文件总大小
- Oracle 11g及PLSQL可视化界面的安装与使用(内附软件)
- 计算机三四级网络技术,全国计算机等级考试四级网络技术论述题真题(2-3)
- MFC 单文档、多文档和对话框
- 海康VisionMaster的使用
- 实体词典 情感词典_情感词典最全版
- Linux之vim详解