Skip to content

Commit af03d18

Browse files
committed
Add clang-tidy config & quick script to run it
1 parent c934c79 commit af03d18

File tree

3 files changed

+335
-0
lines changed

3 files changed

+335
-0
lines changed

.clang-tidy

+326
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,326 @@
1+
---
2+
Checks: 'clang-diagnostic-*,clang-analyzer-*,-clang-analyzer-alpha*,cppcoreguidelines*,modernize*,performance*,readability*,google*,-cppcoreguidelines-pro-type-cstyle-cast,-cppcoreguidelines-pro-type-reinterpret-cast,-readability-implicit-bool*,-cppcoreguidelines-pro-bounds-array-to-pointer-decay'
3+
WarningsAsErrors: ''
4+
HeaderFilterRegex: ''
5+
AnalyzeTemporaryDtors: false
6+
CheckOptions:
7+
- key: cert-oop11-cpp.UseCERTSemantics
8+
value: '1'
9+
- key: cppcoreguidelines-pro-bounds-constant-array-index.GslHeader
10+
value: ''
11+
- key: cppcoreguidelines-pro-bounds-constant-array-index.IncludeStyle
12+
value: '0'
13+
- key: cppcoreguidelines-pro-type-member-init.IgnoreArrays
14+
value: '0'
15+
- key: google-readability-braces-around-statements.ShortStatementLines
16+
value: '1'
17+
- key: google-readability-function-size.StatementThreshold
18+
value: '800'
19+
- key: google-readability-namespace-comments.ShortNamespaceLines
20+
value: '10'
21+
- key: google-readability-namespace-comments.SpacesBeforeComments
22+
value: '2'
23+
- key: modernize-loop-convert.MaxCopySize
24+
value: '16'
25+
- key: modernize-loop-convert.MinConfidence
26+
value: reasonable
27+
- key: modernize-loop-convert.NamingStyle
28+
value: CamelCase
29+
- key: modernize-pass-by-value.IncludeStyle
30+
value: llvm
31+
- key: modernize-replace-auto-ptr.IncludeStyle
32+
value: llvm
33+
- key: modernize-use-auto.RemoveStars
34+
value: '0'
35+
- key: modernize-use-emplace.ContainersWithPushBack
36+
value: '::std::vector;::std::list;::std::deque'
37+
- key: modernize-use-emplace.SmartPointers
38+
value: '::std::shared_ptr;::std::unique_ptr;::std::auto_ptr;::std::weak_ptr'
39+
- key: modernize-use-nullptr.NullMacros
40+
value: 'NULL'
41+
- key: performance-faster-string-find.StringLikeClasses
42+
value: 'std::basic_string'
43+
- key: performance-for-range-copy.WarnOnAllAutoCopies
44+
value: '0'
45+
- key: performance-unnecessary-value-param.IncludeStyle
46+
value: llvm
47+
- key: readability-braces-around-statements.ShortStatementLines
48+
value: '0'
49+
- key: readability-function-size.BranchThreshold
50+
value: '4294967295'
51+
- key: readability-function-size.LineThreshold
52+
value: '4294967295'
53+
- key: readability-function-size.StatementThreshold
54+
value: '800'
55+
- key: readability-identifier-naming.AbstractClassCase
56+
value: aNy_CasE
57+
- key: readability-identifier-naming.AbstractClassPrefix
58+
value: ''
59+
- key: readability-identifier-naming.AbstractClassSuffix
60+
value: ''
61+
- key: readability-identifier-naming.ClassCase
62+
value: aNy_CasE
63+
- key: readability-identifier-naming.ClassConstantCase
64+
value: aNy_CasE
65+
- key: readability-identifier-naming.ClassConstantPrefix
66+
value: ''
67+
- key: readability-identifier-naming.ClassConstantSuffix
68+
value: ''
69+
- key: readability-identifier-naming.ClassMemberCase
70+
value: aNy_CasE
71+
- key: readability-identifier-naming.ClassMemberPrefix
72+
value: ''
73+
- key: readability-identifier-naming.ClassMemberSuffix
74+
value: ''
75+
- key: readability-identifier-naming.ClassMethodCase
76+
value: aNy_CasE
77+
- key: readability-identifier-naming.ClassMethodPrefix
78+
value: ''
79+
- key: readability-identifier-naming.ClassMethodSuffix
80+
value: ''
81+
- key: readability-identifier-naming.ClassPrefix
82+
value: ''
83+
- key: readability-identifier-naming.ClassSuffix
84+
value: ''
85+
- key: readability-identifier-naming.ConstantCase
86+
value: aNy_CasE
87+
- key: readability-identifier-naming.ConstantMemberCase
88+
value: aNy_CasE
89+
- key: readability-identifier-naming.ConstantMemberPrefix
90+
value: ''
91+
- key: readability-identifier-naming.ConstantMemberSuffix
92+
value: ''
93+
- key: readability-identifier-naming.ConstantParameterCase
94+
value: aNy_CasE
95+
- key: readability-identifier-naming.ConstantParameterPrefix
96+
value: ''
97+
- key: readability-identifier-naming.ConstantParameterSuffix
98+
value: ''
99+
- key: readability-identifier-naming.ConstantPrefix
100+
value: ''
101+
- key: readability-identifier-naming.ConstantSuffix
102+
value: ''
103+
- key: readability-identifier-naming.ConstexprFunctionCase
104+
value: aNy_CasE
105+
- key: readability-identifier-naming.ConstexprFunctionPrefix
106+
value: ''
107+
- key: readability-identifier-naming.ConstexprFunctionSuffix
108+
value: ''
109+
- key: readability-identifier-naming.ConstexprMethodCase
110+
value: aNy_CasE
111+
- key: readability-identifier-naming.ConstexprMethodPrefix
112+
value: ''
113+
- key: readability-identifier-naming.ConstexprMethodSuffix
114+
value: ''
115+
- key: readability-identifier-naming.ConstexprVariableCase
116+
value: aNy_CasE
117+
- key: readability-identifier-naming.ConstexprVariablePrefix
118+
value: ''
119+
- key: readability-identifier-naming.ConstexprVariableSuffix
120+
value: ''
121+
- key: readability-identifier-naming.EnumCase
122+
value: aNy_CasE
123+
- key: readability-identifier-naming.EnumConstantCase
124+
value: aNy_CasE
125+
- key: readability-identifier-naming.EnumConstantPrefix
126+
value: ''
127+
- key: readability-identifier-naming.EnumConstantSuffix
128+
value: ''
129+
- key: readability-identifier-naming.EnumPrefix
130+
value: ''
131+
- key: readability-identifier-naming.EnumSuffix
132+
value: ''
133+
- key: readability-identifier-naming.FunctionCase
134+
value: aNy_CasE
135+
- key: readability-identifier-naming.FunctionPrefix
136+
value: ''
137+
- key: readability-identifier-naming.FunctionSuffix
138+
value: ''
139+
- key: readability-identifier-naming.GlobalConstantCase
140+
value: aNy_CasE
141+
- key: readability-identifier-naming.GlobalConstantPrefix
142+
value: ''
143+
- key: readability-identifier-naming.GlobalConstantSuffix
144+
value: ''
145+
- key: readability-identifier-naming.GlobalFunctionCase
146+
value: aNy_CasE
147+
- key: readability-identifier-naming.GlobalFunctionPrefix
148+
value: ''
149+
- key: readability-identifier-naming.GlobalFunctionSuffix
150+
value: ''
151+
- key: readability-identifier-naming.GlobalVariableCase
152+
value: aNy_CasE
153+
- key: readability-identifier-naming.GlobalVariablePrefix
154+
value: ''
155+
- key: readability-identifier-naming.GlobalVariableSuffix
156+
value: ''
157+
- key: readability-identifier-naming.IgnoreFailedSplit
158+
value: '0'
159+
- key: readability-identifier-naming.InlineNamespaceCase
160+
value: aNy_CasE
161+
- key: readability-identifier-naming.InlineNamespacePrefix
162+
value: ''
163+
- key: readability-identifier-naming.InlineNamespaceSuffix
164+
value: ''
165+
- key: readability-identifier-naming.LocalConstantCase
166+
value: aNy_CasE
167+
- key: readability-identifier-naming.LocalConstantPrefix
168+
value: ''
169+
- key: readability-identifier-naming.LocalConstantSuffix
170+
value: ''
171+
- key: readability-identifier-naming.LocalVariableCase
172+
value: aNy_CasE
173+
- key: readability-identifier-naming.LocalVariablePrefix
174+
value: ''
175+
- key: readability-identifier-naming.LocalVariableSuffix
176+
value: ''
177+
- key: readability-identifier-naming.MacroDefinitionCase
178+
value: aNy_CasE
179+
- key: readability-identifier-naming.MacroDefinitionPrefix
180+
value: ''
181+
- key: readability-identifier-naming.MacroDefinitionSuffix
182+
value: ''
183+
- key: readability-identifier-naming.MemberCase
184+
value: aNy_CasE
185+
- key: readability-identifier-naming.MemberPrefix
186+
value: ''
187+
- key: readability-identifier-naming.MemberSuffix
188+
value: ''
189+
- key: readability-identifier-naming.MethodCase
190+
value: aNy_CasE
191+
- key: readability-identifier-naming.MethodPrefix
192+
value: ''
193+
- key: readability-identifier-naming.MethodSuffix
194+
value: ''
195+
- key: readability-identifier-naming.NamespaceCase
196+
value: aNy_CasE
197+
- key: readability-identifier-naming.NamespacePrefix
198+
value: ''
199+
- key: readability-identifier-naming.NamespaceSuffix
200+
value: ''
201+
- key: readability-identifier-naming.ParameterCase
202+
value: aNy_CasE
203+
- key: readability-identifier-naming.ParameterPackCase
204+
value: aNy_CasE
205+
- key: readability-identifier-naming.ParameterPackPrefix
206+
value: ''
207+
- key: readability-identifier-naming.ParameterPackSuffix
208+
value: ''
209+
- key: readability-identifier-naming.ParameterPrefix
210+
value: ''
211+
- key: readability-identifier-naming.ParameterSuffix
212+
value: ''
213+
- key: readability-identifier-naming.PrivateMemberCase
214+
value: aNy_CasE
215+
- key: readability-identifier-naming.PrivateMemberPrefix
216+
value: ''
217+
- key: readability-identifier-naming.PrivateMemberSuffix
218+
value: ''
219+
- key: readability-identifier-naming.PrivateMethodCase
220+
value: aNy_CasE
221+
- key: readability-identifier-naming.PrivateMethodPrefix
222+
value: ''
223+
- key: readability-identifier-naming.PrivateMethodSuffix
224+
value: ''
225+
- key: readability-identifier-naming.ProtectedMemberCase
226+
value: aNy_CasE
227+
- key: readability-identifier-naming.ProtectedMemberPrefix
228+
value: ''
229+
- key: readability-identifier-naming.ProtectedMemberSuffix
230+
value: ''
231+
- key: readability-identifier-naming.ProtectedMethodCase
232+
value: aNy_CasE
233+
- key: readability-identifier-naming.ProtectedMethodPrefix
234+
value: ''
235+
- key: readability-identifier-naming.ProtectedMethodSuffix
236+
value: ''
237+
- key: readability-identifier-naming.PublicMemberCase
238+
value: aNy_CasE
239+
- key: readability-identifier-naming.PublicMemberPrefix
240+
value: ''
241+
- key: readability-identifier-naming.PublicMemberSuffix
242+
value: ''
243+
- key: readability-identifier-naming.PublicMethodCase
244+
value: aNy_CasE
245+
- key: readability-identifier-naming.PublicMethodPrefix
246+
value: ''
247+
- key: readability-identifier-naming.PublicMethodSuffix
248+
value: ''
249+
- key: readability-identifier-naming.StaticConstantCase
250+
value: aNy_CasE
251+
- key: readability-identifier-naming.StaticConstantPrefix
252+
value: ''
253+
- key: readability-identifier-naming.StaticConstantSuffix
254+
value: ''
255+
- key: readability-identifier-naming.StaticVariableCase
256+
value: aNy_CasE
257+
- key: readability-identifier-naming.StaticVariablePrefix
258+
value: ''
259+
- key: readability-identifier-naming.StaticVariableSuffix
260+
value: ''
261+
- key: readability-identifier-naming.StructCase
262+
value: aNy_CasE
263+
- key: readability-identifier-naming.StructPrefix
264+
value: ''
265+
- key: readability-identifier-naming.StructSuffix
266+
value: ''
267+
- key: readability-identifier-naming.TemplateParameterCase
268+
value: aNy_CasE
269+
- key: readability-identifier-naming.TemplateParameterPrefix
270+
value: ''
271+
- key: readability-identifier-naming.TemplateParameterSuffix
272+
value: ''
273+
- key: readability-identifier-naming.TemplateTemplateParameterCase
274+
value: aNy_CasE
275+
- key: readability-identifier-naming.TemplateTemplateParameterPrefix
276+
value: ''
277+
- key: readability-identifier-naming.TemplateTemplateParameterSuffix
278+
value: ''
279+
- key: readability-identifier-naming.TypeAliasCase
280+
value: aNy_CasE
281+
- key: readability-identifier-naming.TypeAliasPrefix
282+
value: ''
283+
- key: readability-identifier-naming.TypeAliasSuffix
284+
value: ''
285+
- key: readability-identifier-naming.TypeTemplateParameterCase
286+
value: aNy_CasE
287+
- key: readability-identifier-naming.TypeTemplateParameterPrefix
288+
value: ''
289+
- key: readability-identifier-naming.TypeTemplateParameterSuffix
290+
value: ''
291+
- key: readability-identifier-naming.TypedefCase
292+
value: aNy_CasE
293+
- key: readability-identifier-naming.TypedefPrefix
294+
value: ''
295+
- key: readability-identifier-naming.TypedefSuffix
296+
value: ''
297+
- key: readability-identifier-naming.UnionCase
298+
value: aNy_CasE
299+
- key: readability-identifier-naming.UnionPrefix
300+
value: ''
301+
- key: readability-identifier-naming.UnionSuffix
302+
value: ''
303+
- key: readability-identifier-naming.ValueTemplateParameterCase
304+
value: aNy_CasE
305+
- key: readability-identifier-naming.ValueTemplateParameterPrefix
306+
value: ''
307+
- key: readability-identifier-naming.ValueTemplateParameterSuffix
308+
value: ''
309+
- key: readability-identifier-naming.VariableCase
310+
value: aNy_CasE
311+
- key: readability-identifier-naming.VariablePrefix
312+
value: ''
313+
- key: readability-identifier-naming.VariableSuffix
314+
value: ''
315+
- key: readability-identifier-naming.VirtualMethodCase
316+
value: aNy_CasE
317+
- key: readability-identifier-naming.VirtualMethodPrefix
318+
value: ''
319+
- key: readability-identifier-naming.VirtualMethodSuffix
320+
value: ''
321+
- key: readability-simplify-boolean-expr.ChainedConditionalAssignment
322+
value: '0'
323+
- key: readability-simplify-boolean-expr.ChainedConditionalReturn
324+
value: '0'
325+
...
326+

README.clang-tidy

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
* readability-implicit-bool is disabled because I disagree with it.
2+
3+
* cppcoreguidelines-pro-type-cstyle-cast is disabled because we use it
4+
as reinterpret cast to implement our C API.
5+
6+
* cppcoreguidelines-pro-bounds-array-to-pointer-decay is disabled
7+
because it fires a false positive on every use of assert().

clang-tidy-all.sh

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
find . -name '*.cpp' | grep -v lexer | grep -v googletest | grep -v tab.cpp | xargs clang-tidy -p build

0 commit comments

Comments
 (0)