Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >团队效率工具: 代码格式化之Clang-format

团队效率工具: 代码格式化之Clang-format

作者头像
程序手艺人
发布于 2019-02-21 09:42:21
发布于 2019-02-21 09:42:21
13.8K00
代码可运行
举报
文章被收录于专栏:程序手艺人程序手艺人
运行总次数:0
代码可运行
介绍

平时团队进行合作的时候需要注意代码的格式,虽然很难统一每个人的编码风格,但是通过工具能够很好的管理代码格式。这里介绍下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详细说明
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 基于那个配置文件
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. vim代码格式化插件clang-format
  2. clang-format-diff.py
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年09月01日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vim 配置 clang-format[通俗易懂]
有很多方式,我才用了官网的方式 http://clang.llvm.org/docs/ClangFormat.html
全栈程序员站长
2022/09/27
1.9K0
C++代码风格和clang-format配置
C++是Google大部分开源项目的主要编程语言。C++有很多强大特性,但是另一面就是他的复杂性更容易产生bug,难以阅读和维护。
mariolu
2021/10/02
4.9K0
Sublime Text 3中的代码格式化技巧大揭秘
最近 Huazie 一直在用 Sublime Text 3 开发 Hexo Diversity 主题开源项目,当找到一些解决方案的代码并拷贝过来时,总会遇到缩进和换行问题,此时复制的代码就显得杂乱无章的。开始笔者一般选择在线代码格式化工具处理过再复制过来,慢慢用的多了,就想要能够在 Sublime Text 3 中直接可以格式化,以此来提升效率。
huazie
2025/04/18
1541
Sublime Text 3中的代码格式化技巧大揭秘
NeoVim 代码格式化教程
neoformat 是 (Neo)Vim 的代码格式化插件,支持多种语言的格式化。这篇文章覆盖 Neoformat 对 Python 和 C++ 进行格式化的配置,以及如何在保存代码时自动进行格式化,可以直接应用的配置代码段在文章最后。
王云峰
2023/10/23
8370
clang-format 对 c++ 进行格式化
在 VS Code 中安装了 C/C++ 插件后会自动带上格式化工具 clang-format。按 option+shift+f 即可对文件进行 format(格式化)。
饶文津
2021/12/09
2.3K0
主流编辑器、IDE 开启 clang-format 自动格式化能力
clang-format 是 LLVM 下的一款代码风格格式化工具,它支持多种代码格式化风格,如:Visual Studio, LLVM, Google, Chromium, Mozilla, WebKit。团队中也可以根据配置定义自己的代码格式化风格保存到 .clang-format 配置文件中并放在项目工程目录下提供所有项目参与者使用,但如何让 .clang-format 工作起来呢?本文将讨论各类主流编辑器、IDE 是如何让 .clang-format 配置工作并且在代码粘贴或保存时自动进行格式化。
我与梦想有个约会
2023/10/21
1.7K0
主流编辑器、IDE 开启 clang-format 自动格式化能力
C/C++ 项目必读:代码格式化和静态分析检查的一站式工作流 Cpp Linter
目前 C/C++ 语言的代码格式化和检查工具使用的最为广泛的是 LLVM[1] 项目中的 Clang-Format[2] 和 Clang-Tidy[3]。
Peter Shen
2022/11/30
1.6K0
C/C++ 项目必读:代码格式化和静态分析检查的一站式工作流 Cpp Linter
【系列教程】 C++项目开发配置最佳实践(vscode远程开发配置、格式化、代码检查、cmake管理配置)
day03 C++项目开发配置最佳实践(vscode远程开发配置、格式化、代码检查、cmake管理配置)
会玩code
2022/08/30
3.6K0
【系列教程】 C++项目开发配置最佳实践(vscode远程开发配置、格式化、代码检查、cmake管理配置)
XAML格式化工具:XAML Styler
在开发WPF应用过程中,编写XAML时需要手动去缩进或者换行,随着时间的推移或者参与开发的人增多,XAML文件内容的格式会越来越乱。要么属性全都写在一行,内容太宽一屏无法完整展现;要么属性单独占一行,难以直观的看清结构;另外xaml元素的属性无序,重要属性查找困难,手动维护属性使之规律有序也比较费时。
czwy
2023/10/22
7970
XAML格式化工具:XAML Styler
在git提交引入一些代码规范工作
格式化程序使用clang-format,代码风格除了预定义的LLVM, GNU, Google, Chromium, Microsoft, Mozilla规则,还可以用file定义的风格。
mariolu
2021/08/30
1.5K0
Qt Creator 代码格式化插件
在使用 Qt Creator 工具开发时经常需要对代码进行代码格式化。其中,最简单地方法是,先全选所有代码(Ctrl + A),然后格式化所选代码(Ctrl + I)——注意字母“I”,是“i”的大写,不是“L”。开发过程中,不仅需要频繁的手动操作,而且只能进行一些简单的缩进类型格式化,配置可以在Qt Creator的“工具-选项-C+±代码风格”面板进行编辑。
xiangzhihong
2022/11/30
2.3K0
“有意见的”代码格式化工具 Prettier 详解
Prettier 是一个“有意见的”代码格式化工具,旨在确保您的代码具有一致的风格和更高的可读性。它通过解析代码并重新格式化,消除因代码风格问题导致的差异,使团队中的每个人都遵循相同的编码标准。Prettier 支持多种编程语言,包括 JavaScript、TypeScript、HTML、CSS、JSON、Markdown 等等。
繁依Fanyi
2024/06/18
5970
JSON格式化
我个人主要是做一些后端的工作,比如php、python、c之类的,c比较少,最主要的是php,不过我非常喜欢js,所以经常会愿意去写一些小玩意自娱自乐。
江湖安得便相忘
2019/08/21
3.8K0
JSON格式化
一款超人气代码格式化工具prettier
官方自己介绍说,prettier是一款强势武断的代码格式化工具,它几乎移除了编辑器本身所有的对代码的操作格式,然后重新显示。就是为了让所有用这套规则的人有完全相同的代码。在团队协作开发的时候更是体现出它的优势。与eslint,tslint等各种格式化工具不同的是,prettier只关心代码格式化,而不关心语法问题。
Daotin
2019/05/10
3.9K0
一款超人气代码格式化工具prettier
使用 Visual Studio Code 开发 LINUX 上 C++ 应用
以前开发 Linux 服务器的程序,会有通过 samba 进行文件保存,或者先在 windows 上编译测试,然后传到 Linux 服务器重新编译测试。这些都不太直接,而且调试起来比较困难。现在很多 IDE 都支持直接编写 LINUX 上的程序了,本文介绍 VSCode 如何完成这个工作。
韩伟
2021/04/01
4K0
使用 Visual Studio Code 开发 LINUX 上 C++ 应用
VSCode代码格式化设置
Vetur对于html文件默认使用的是prettyhtml,但是由于prettier也可以支持html的格式化,所以我觉得统一使用prettier对全语言的格式化是比较简洁的。
用户6094182
2020/08/18
4.3K0
手把手教你规范自己的代码,纯干货。
每个人都有自己的编码风格,但如果要和别人协同开发软件,最好是采用一样的风格,可是强行要求他人更改编码风格可能会比较难,那么有没有更好的解决方式呢?
Jasonangel
2021/10/12
8070
【前端工程化】统一代码规范格式化
EditorConfig是一个用于统一编辑器配置的插件。它可以定义一组编辑器配置规则,如缩进、换行符等,并在不同的编辑器中自动应用这些规则。通过使用EditorConfig,可以确保团队成员在不同的编辑器中使用相同的代码风格和配置,从而提高代码的可读性和一致性。
can4hou6joeng4
2023/11/08
5480
快速上手Vue开发:Prettier代码格式化配置详解
程序员云帆哥
2023/08/24
1.4K0
代码美化的艺术
原本只是想简单的聊一下代码格式化的问题,无奈本文拖沓了很久,在此期间,我又思考了很多,我越来越觉得代码格式化是一门艺术。为了衬托“艺术”二字,可能叫“代码美化”更贴切一点,但是本文的深度远没有标题那么宏大。
ConardLi
2019/09/25
2K0
代码美化的艺术
相关推荐
vim 配置 clang-format[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验