-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy path.clang-format
180 lines (128 loc) · 4.33 KB
/
.clang-format
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# document ref: http://clang.llvm.org/docs/ClangFormatStyleOptions.html
#禁用当前format文件
DisableFormat: false
BasedOnStyle: Google
#是否使用tab进行缩进
UseTab: Never
TabWidth: 4
IndentWidth: 4
#语言
Language: Cpp
Standard: Cpp11
#includeCategoriesStandard: Cpp11
#Cpp11BracedListStyle: false
#ForEachMacros
#IncludeCategories
#-----------------------file----------------------
#最大宽度,如果代码超过这个宽度会按语义折行
ColumnLimit: 0
#最多能超出ColumnLimit多少个字符
PenaltyExcessCharacter: 0
#允许最大连续空行数
MaxEmptyLinesToKeep: 10
#在续行(\
# 下一行)时的缩进长度
ContinuationIndentWidth: 4
#CommentPragmas: ''
#DerivePointerBinding: false
SortIncludes: false
#--------------------------code block------------------
#括号的断行模式
BreakBeforeBraces: Allman
#是否在容器字面量(@[@"1",@"2"])中插入空格
SpacesInContainerLiterals: true
#case语句的位置总是在switch语句后缩进一级
IndentCaseLabels: true
#多行赋值语句按=号对齐
AlignConsecutiveAssignments: false
#多行声明语句按=号对齐
AlignConsecutiveDeclarations: false
#是否把注释右对齐,下面为右对齐的效果
#void someFunction() {
# doWork(); // Does something
# doMoreWork(); // Does something else
#}
AlignTrailingComments: true
#是否在括号前加上空格,ControlStatements仅在控制声明关键词(for/if/while···)的圆括号前面加空格
SpaceBeforeParens: ControlStatements
#在未封闭(括号的开始和结束不在同一行)的括号中的代码是否对齐
# if(a &&
# b)
#
AlignAfterOpenBracket: Align
#类的访问修饰关键字(private,public,protected···)缩进
# private:
# int a;
# 1表示不缩进
#大于1的值表示访问修饰关键字的左侧从int a的左侧列开始往右侧移动的距离
AccessModifierOffset: -4
#在构造函数初始化时按逗号断行,并以冒号对齐
BreakConstructorInitializersBeforeComma: true
ConstructorInitializerAllOnOneLineOrOnePerLine: true
#ConstructorInitializerIndentWidth: 0
#ExperimentalAutoDetectBinPacking: false
#IndentWrappedFunctionNames: true
#IndentFunctionDeclarationAfterType: false
#AlignEscapedNewlinesLeft: true
#BinPackArguments: false
#BinPackParameters: false
#让参数上下对齐
AllowAllParametersOfDeclarationOnNextLine: true
#----------------------sataement----------------
#如果为真(true), 分析该文件中最常见的“&”和“\*”的对齐方式,PointerAlignment则仅作为备用
DerivePointerAlignment: false
#指针在类型那边还是在变量名那边还是在中间
PointerAlignment: Right
#在=号前加空格
SpaceBeforeAssignmentOperators: true
#是否在空括号中加空格
SpaceInEmptyParentheses: false
#单行注释前的空格数
SpacesBeforeTrailingComments: 0
#是否在<>中间插入空格
SpacesInAngles: false
#是否在非空的括号中插入空格
SpacesInParentheses: false
#在三元运算符前断行
BreakBeforeTernaryOperators: true
#在二元运算符前断行
#BreakBeforeBinaryOperators: All
#是否允许短代码块在一行写完
#如 if (a) { return; }
AllowShortBlocksOnASingleLine: false
#是否允许短switch的case 语句在一行写完
AllowShortCaseLabelsOnASingleLine: false
#是否允许短的函数在一行写完
AllowShortFunctionsOnASingleLine: false
#是否允许短的语句在一行写完
AllowShortIfStatementsOnASingleLine: false
#是否允许短的循环在一行写完
AllowShortLoopsOnASingleLine: false
#命名空间缩进
NamespaceIndentation: All
AlignOperands: true
#PenaltyBreakBeforeFirstCallParameter: 100
#PenaltyBreakComment: 100
#PenaltyBreakFirstLessLess: 0
#PenaltyBreakString: 100
#-----------------------------OC only---------------------
#block开始的正则
MacroBlockBegin: ''
#block开始的正则
MacroBlockEnd: ''
#在block从空行开始
KeepEmptyLinesAtTheStartOfBlocks: true
#block内的缩进
ObjCBlockIndentWidth: 4
#是否需要在"@property"后加上空格
ObjCSpaceAfterProperty: true
#是否需要在协议名后加上空格
ObjCSpaceBeforeProtocolList: true
#----------------------------other-------------------
#AlwaysBreakAfterDefinitionReturnType
#AlwaysBreakAfterReturnType
#AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
#PenaltyReturnTypeOnItsOwnLine: 20
#PointerBindsToType: 100
#SpacesInCStyleCastParentheses: false