iOS 项目接入 Githooks

可以直接查看 github项目,利用git子模块的方式引入到工程中. https://github.com/square/spacecommander

以下是对.clang-format 文件的注释.

# Custom options in the special build of clang-format (these are not standard options)
IndentNestedBlocks: false
AllowNewlineBeforeBlockParameter: false

Language: Cpp
# BasedOnStyle: Google

#类的访问修饰关键字(private,public,protected···)缩进
AccessModifierOffset: -1

#构造函数初始化的缩进值
ConstructorInitializerIndentWidth: 4

#引入头文件排序
SortIncludes: false

#在未封闭(括号的开始和结束不在同一行)的括号中的代码是否对齐
AlignAfterOpenBracket: true

#在(),[],{}中代码不少于一行且换行情况下。如果true则,第二行起代码会尽量向左对齐,否则向最右边对齐。
AlignEscapedNewlinesLeft: true

#如果为true,水平对齐二元和三元表达式的操作数。
AlignOperands: false

#如果为true,对齐各行尾部注释
AlignTrailingComments: true

#如果为true,函数申明多个参数时,允许换行
AllowAllParametersOfDeclarationOnNextLine: false

#如果true,较短的代码片段允许格式化为一行
AllowShortBlocksOnASingleLine: false

#是否允许短switch的case 语句在一行写完
AllowShortCaseLabelsOnASingleLine: false

#是否允许短的方法实现在一行写完
AllowShortFunctionsOnASingleLine: false

#是否允许短if else语句在一行写完
AllowShortIfStatementsOnASingleLine: true

#是否允许短的循环在一行写完
AllowShortLoopsOnASingleLine: true

#定义函数返回类型之后换行
AlwaysBreakAfterDefinitionReturnType: false

#定义模板之后换行
AlwaysBreakTemplateDeclarations: false

#多行字符串之前换行
AlwaysBreakBeforeMultilineStrings: false

#二元操作符之前换行
BreakBeforeBinaryOperators: None

#三元操作符之前换行
BreakBeforeTernaryOperators: false

#在构造函数初始化时按逗号断行,并以冒号对齐
BreakConstructorInitializersBeforeComma: false

#如果false,函数调用时的参数要么是全部占同一行,要么一个参数占一行。
BinPackArguments: true
#如果false,函数的定义或声明的参数要么是全部占同一行,要么一个参数占一行
BinPackParameters: true

#一行代码长度的限制,0为无限制
ColumnLimit: 0
#如果true,构造函数的初始化无法适应于一行以内,那么每个参数占一行
ConstructorInitializerAllOnOneLineOrOnePerLine: true

#如果true,将用使用PointerAlignment的值为指针类型进行格式化
DerivePointerAlignment: false

#如果true,clang-format检测方法的定义和调用是否被格式化为一个参数占据一行
ExperimentalAutoDetectBinPacking: false

#case语句的位置总是在switch语句后缩进一级
IndentCaseLabels: true

#若方法定义或者声明在类型之后换行,自动缩进(true)
IndentWrappedFunctionNames: false

IndentFunctionDeclarationAfterType: false

#持续空行的最大数量
MaxEmptyLinesToKeep: 2

#如果true,在一块代码前的空行将会被保留
KeepEmptyLinesAtTheStartOfBlocks: false

#NameSpace 缩进: None(所有namespace均不缩进);Inner(只在内部namespcae缩进);All(所有namespace均缩进)
NamespaceIndentation: Inner

#OC的block缩进
ObjCBlockIndentWidth: 4

#OC的property与()之间后是否空格,如果true,那么@property(readonly) 代替 @property (readonly).
ObjCSpaceAfterProperty: true

#<Protocol> 前是否空格
ObjCSpaceBeforeProtocolList: true

PenaltyBreakBeforeFirstCallParameter: 10000
PenaltyBreakComment: 300
PenaltyBreakString: 1000
PenaltyBreakFirstLessLess: 120
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200

#指针在类型那边还是在变量名那边还是在中间
PointerAlignment: Right

#单行注释前的空格数
SpacesBeforeTrailingComments: 1

#如果true,将大括号的列表格式化为最适合C++11的格式。
Cpp11BracedListStyle: true

#LanguageStandard 参考英文文档
Standard: Auto

#缩进的列数
IndentWidth: 4

#制表位列数
TabWidth: 8

#是否使用tab进行缩进
UseTab: Never

#括号的断行模式 (此处为自定义,更多选项可参考官方英文文档)
BreakBeforeBraces: Custom
BraceWrapping:
AfterClass: true
AfterControlStatement: false
AfterEnum: false
AfterFunction: false
AfterNamespace: true
AfterObjCDeclaration: true
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false

#如果true,在非空的括号中插入空格
SpacesInParentheses: false

#如果true,[]中间插入空格
SpacesInSquareBrackets: false

#如果true,在<>中间插入空格
SpacesInAngles: false

#如果true 空括号中加空格
SpaceInEmptyParentheses: false

#c-style 强制转换中类型前后是否空格 true -> ( int32 )x, false -> (int32)x
SpacesInCStyleCastParentheses: false

#c-style 强制转换类型括号后是否空格 true -> (int32) x, false -> (int32)x
SpaceAfterCStyleCast: false

# true -> [ 1, 2, 3 ] , {a : 1, b : 2, c : 3}; false -> [1, 2, 3], {a: 1, b: 2, c: 3}
SpacesInContainerLiterals: false

# 赋值操作符 = 两侧是否空格 a = 3 vs a=3
SpaceBeforeAssignmentOperators: true

#在续行(\ 下一行)时的缩进长度
ContinuationIndentWidth: 4

CommentPragmas: '^ IWYU pragma:'
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]

#是否在括号前加上空格,此处只是在控制语句之前添加(if/while/for...)
SpaceBeforeParens: ControlStatements

#禁用当前format文件
DisableFormat: false
...

其中 SortIncludes 这个值被设置为true之后,会导致格式化代码之后提交代码任然会提示错误的问题, 可以先设置true,代码全局格式化之后,再改回false.

以上clang-format文件是相对比较符合团队风格的代码风格.也需要在开发中, 不断调整该配置.

参考文档: http://clang.llvm.org/docs/ClangFormatStyleOptions.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,145评论 0 13
  • 前言 本开发规范基于《阿里巴巴Java开发手册终极版》修改,并集成我们自己的项目开发规范,整合而成。 为表示对阿里...
    4ea0af17fd67阅读 5,637评论 0 5
  • 目录 一、 编程规约..................................................
    owen_he阅读 4,938评论 0 4
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 18,951评论 17 410
  • 数据来源于艾瑞深中国校友会网发布《2016 中国大学评价研究报告》
    WenryXu阅读 193评论 0 0