Skip to content

Commit c897df2

Browse files
committed
STYLE: Update clang-format v19 style doc from ITK.
1 parent 41e2c99 commit c897df2

File tree

1 file changed

+258
-34
lines changed

1 file changed

+258
-34
lines changed

.clang-format

Lines changed: 258 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,318 @@
1+
## This config file is only relevant for clang-format version 19.1.7
2+
##
3+
## Examples of each format style can be found on the in the clang-format documentation
4+
## See: https://clang.llvm.org/docs/ClangFormatStyleOptions.html for details of each option
5+
##
6+
## The clang-format binaries can be downloaded as part of the clang binary distributions
7+
## from https://releases.llvm.org/download.html
8+
##
9+
## Use the script Utilities/Maintenance/clang-format.bash to faciliate
10+
## maintaining a consistent code style.
11+
##
12+
## EXAMPLE apply code style enforcement before commit:
13+
# Utilities/Maintenance/clang-format.bash --clang ${PATH_TO_CLANG_FORMAT_19.1.7} --modified
14+
## EXAMPLE apply code style enforcement after commit:
15+
# Utilities/Maintenance/clang-format.bash --clang ${PATH_TO_CLANG_FORMAT_19.1.7} --last
116
---
17+
# This configuration requires clang-format version 19.1.7 exactly.
218
Language: Cpp
3-
BasedOnStyle: Mozilla
419
AccessModifierOffset: -2
520
AlignAfterOpenBracket: Align
6-
AlignConsecutiveAssignments: false
7-
AlignConsecutiveDeclarations: true
8-
AlignEscapedNewlinesLeft: true
9-
AlignOperands: true
10-
AlignTrailingComments: true
21+
AlignArrayOfStructures: None
22+
AlignConsecutiveAssignments:
23+
Enabled: false
24+
AcrossEmptyLines: false
25+
AcrossComments: false
26+
AlignCompound: false
27+
AlignFunctionPointers: false
28+
PadOperators: true
29+
AlignConsecutiveBitFields:
30+
Enabled: false
31+
AcrossEmptyLines: false
32+
AcrossComments: false
33+
AlignCompound: false
34+
AlignFunctionPointers: false
35+
PadOperators: false
36+
AlignConsecutiveDeclarations:
37+
Enabled: true
38+
AcrossEmptyLines: false
39+
AcrossComments: false
40+
AlignCompound: false
41+
AlignFunctionPointers: false
42+
PadOperators: true
43+
AlignConsecutiveMacros:
44+
Enabled: false
45+
AcrossEmptyLines: false
46+
AcrossComments: false
47+
AlignCompound: false
48+
AlignFunctionPointers: false
49+
PadOperators: false
50+
AlignConsecutiveShortCaseStatements:
51+
Enabled: false
52+
AcrossEmptyLines: false
53+
AcrossComments: false
54+
AlignCaseArrows: false
55+
AlignCaseColons: false
56+
AlignConsecutiveTableGenBreakingDAGArgColons:
57+
Enabled: false
58+
AcrossEmptyLines: false
59+
AcrossComments: false
60+
AlignCompound: false
61+
AlignFunctionPointers: false
62+
PadOperators: false
63+
AlignConsecutiveTableGenCondOperatorColons:
64+
Enabled: false
65+
AcrossEmptyLines: false
66+
AcrossComments: false
67+
AlignCompound: false
68+
AlignFunctionPointers: false
69+
PadOperators: false
70+
AlignConsecutiveTableGenDefinitionColons:
71+
Enabled: false
72+
AcrossEmptyLines: false
73+
AcrossComments: false
74+
AlignCompound: false
75+
AlignFunctionPointers: false
76+
PadOperators: false
77+
AlignEscapedNewlines: Left
78+
AlignOperands: Align
79+
AlignTrailingComments:
80+
Kind: Always
81+
OverEmptyLines: 0
82+
AllowAllArgumentsOnNextLine: true
1183
AllowAllParametersOfDeclarationOnNextLine: false
12-
AllowShortBlocksOnASingleLine: false
84+
AllowBreakBeforeNoexceptSpecifier: Never
85+
AllowShortBlocksOnASingleLine: Never
86+
AllowShortCaseExpressionOnASingleLine: true
1387
AllowShortCaseLabelsOnASingleLine: false
14-
AllowShortFunctionsOnASingleLine: Inline
15-
AllowShortIfStatementsOnASingleLine: false
88+
AllowShortCompoundRequirementOnASingleLine: true
89+
AllowShortEnumsOnASingleLine: true
90+
#AllowShortFunctionsOnASingleLine: Inline Only merge functions defined inside a class. Implies empty.
91+
#AllowShortFunctionsOnASingleLine: None (in configuration: None) Never merge functions into a single line.
92+
AllowShortFunctionsOnASingleLine: All
93+
AllowShortIfStatementsOnASingleLine: Never
94+
AllowShortLambdasOnASingleLine: All
1695
AllowShortLoopsOnASingleLine: false
17-
AlwaysBreakAfterReturnType: All
18-
AlwaysBreakBeforeMultilineStrings: true
19-
AlwaysBreakTemplateDeclarations: true
96+
AlwaysBreakAfterDefinitionReturnType: None
97+
AlwaysBreakBeforeMultilineStrings: false
98+
AttributeMacros:
99+
- __capability
20100
BinPackArguments: false
21-
BinPackParameters: true
101+
BinPackParameters: false
102+
BitFieldColonSpacing: Both
22103
BraceWrapping:
104+
AfterCaseLabel: true
23105
AfterClass: true
24-
AfterControlStatement: true
106+
AfterControlStatement: Always
25107
AfterEnum: true
108+
AfterExternBlock: true
26109
AfterFunction: true
27110
AfterNamespace: true
28111
AfterObjCDeclaration: true
29112
AfterStruct: true
30113
AfterUnion: true
31114
BeforeCatch: true
32115
BeforeElse: true
33-
IndentBraces: true
116+
BeforeLambdaBody: false
117+
BeforeWhile: false
118+
IndentBraces: false
119+
SplitEmptyFunction: false
120+
SplitEmptyRecord: false
121+
SplitEmptyNamespace: false
122+
BreakAdjacentStringLiterals: true
123+
BreakAfterAttributes: Leave
124+
BreakAfterJavaFieldAnnotations: false
125+
BreakAfterReturnType: All
126+
BreakArrays: true
34127
BreakBeforeBinaryOperators: None
35-
BreakBeforeBraces: GNU
128+
BreakBeforeConceptDeclarations: Always
129+
BreakBeforeBraces: Custom
130+
BreakBeforeInlineASMColon: OnlyMultiline
36131
BreakBeforeTernaryOperators: true
37-
BreakConstructorInitializersBeforeComma: true
38-
BreakAfterJavaFieldAnnotations: false
132+
BreakConstructorInitializers: BeforeComma
133+
BreakFunctionDefinitionParameters: false
134+
BreakInheritanceList: BeforeComma
39135
BreakStringLiterals: true
40-
ColumnLimit: 200
41-
# ColumnLimit: 80
136+
BreakTemplateDeclarations: Yes
137+
## The following line allows larger lines in non-documentation code
138+
ColumnLimit: 120
42139
CommentPragmas: '^ IWYU pragma:'
43-
ConstructorInitializerAllOnOneLineOrOnePerLine: false
140+
CompactNamespaces: false
44141
ConstructorInitializerIndentWidth: 2
45142
ContinuationIndentWidth: 2
46143
Cpp11BracedListStyle: false
47144
DerivePointerAlignment: false
48145
DisableFormat: false
146+
EmptyLineAfterAccessModifier: Never
147+
EmptyLineBeforeAccessModifier: LogicalBlock
49148
ExperimentalAutoDetectBinPacking: false
50-
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
149+
FixNamespaceComments: true
150+
ForEachMacros:
151+
- foreach
152+
- Q_FOREACH
153+
- BOOST_FOREACH
154+
IfMacros:
155+
- KJ_IF_MAYBE
156+
IncludeBlocks: Preserve
51157
IncludeCategories:
52158
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
53159
Priority: 2
54-
- Regex: '^(<|"(gtest|isl|json)/)'
160+
SortPriority: 0
161+
CaseSensitive: false
162+
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
55163
Priority: 3
164+
SortPriority: 0
165+
CaseSensitive: false
56166
- Regex: '.*'
57167
Priority: 1
58-
IncludeIsMainRegex: '$'
168+
SortPriority: 0
169+
CaseSensitive: false
170+
IncludeIsMainRegex: '(Test)?$'
171+
IncludeIsMainSourceRegex: ''
172+
IndentAccessModifiers: false
173+
IndentCaseBlocks: false
59174
IndentCaseLabels: true
175+
IndentExternBlock: AfterExternBlock
176+
IndentGotoLabels: true
177+
IndentPPDirectives: AfterHash
178+
IndentRequiresClause: true
60179
IndentWidth: 2
61180
IndentWrappedFunctionNames: false
181+
InsertBraces: false
182+
InsertNewlineAtEOF: false
183+
InsertTrailingCommas: None
184+
IntegerLiteralSeparator:
185+
Binary: 0
186+
BinaryMinDigits: 0
187+
Decimal: 0
188+
DecimalMinDigits: 0
189+
Hex: 0
190+
HexMinDigits: 0
62191
JavaScriptQuotes: Leave
63192
JavaScriptWrapImports: true
64-
KeepEmptyLinesAtTheStartOfBlocks: false
193+
KeepEmptyLines:
194+
AtEndOfFile: false
195+
AtStartOfBlock: true
196+
AtStartOfFile: true
197+
LambdaBodyIndentation: Signature
198+
LineEnding: DeriveLF
65199
MacroBlockBegin: ''
66200
MacroBlockEnd: ''
201+
MainIncludeChar: Quote
67202
MaxEmptyLinesToKeep: 2
68203
NamespaceIndentation: None
204+
ObjCBinPackProtocolList: Auto
69205
ObjCBlockIndentWidth: 2
206+
ObjCBreakBeforeNestedBlockParam: true
70207
ObjCSpaceAfterProperty: true
71208
ObjCSpaceBeforeProtocolList: false
209+
PackConstructorInitializers: BinPack
210+
PenaltyBreakAssignment: 2
72211
PenaltyBreakBeforeFirstCallParameter: 19
73212
PenaltyBreakComment: 300
213+
## The following line allows larger lines in non-documentation code
74214
PenaltyBreakFirstLessLess: 120
215+
PenaltyBreakOpenParenthesis: 0
216+
PenaltyBreakScopeResolution: 500
75217
PenaltyBreakString: 1000
218+
PenaltyBreakTemplateDeclaration: 10
76219
PenaltyExcessCharacter: 1000000
77-
PenaltyReturnTypeOnItsOwnLine: 0
78-
PointerAlignment: Left
220+
PenaltyIndentedWhitespace: 0
221+
PenaltyReturnTypeOnItsOwnLine: 200
222+
PointerAlignment: Middle
223+
PPIndentWidth: -1
224+
QualifierAlignment: Custom
225+
QualifierOrder:
226+
- friend
227+
- static
228+
- inline
229+
- constexpr
230+
- const
231+
- type
232+
ReferenceAlignment: Pointer
79233
ReflowComments: true
80-
SortIncludes: true
234+
RemoveBracesLLVM: false
235+
RemoveParentheses: Leave
236+
RemoveSemicolon: false
237+
RequiresClausePosition: OwnLine
238+
RequiresExpressionIndentation: OuterScope
239+
SeparateDefinitionBlocks: Leave
240+
ShortNamespaceLines: 1
241+
SkipMacroDefinitionBody: false
242+
# We may want to sort the includes as a separate pass
243+
SortIncludes: Never
244+
SortJavaStaticImport: Before
245+
# We may want to revisit this later
246+
SortUsingDeclarations: Never
81247
SpaceAfterCStyleCast: false
248+
SpaceAfterLogicalNot: false
249+
SpaceAfterTemplateKeyword: true
250+
SpaceAroundPointerQualifiers: Default
82251
SpaceBeforeAssignmentOperators: true
252+
SpaceBeforeCaseColon: false
253+
SpaceBeforeCpp11BracedList: false
254+
SpaceBeforeCtorInitializerColon: true
255+
SpaceBeforeInheritanceColon: true
256+
SpaceBeforeJsonColon: false
83257
SpaceBeforeParens: ControlStatements
84-
SpaceInEmptyParentheses: false
258+
SpaceBeforeParensOptions:
259+
AfterControlStatements: true
260+
AfterForeachMacros: true
261+
AfterFunctionDefinitionName: false
262+
AfterFunctionDeclarationName: false
263+
AfterIfMacros: true
264+
AfterOverloadedOperator: false
265+
AfterPlacementOperator: true
266+
AfterRequiresInClause: false
267+
AfterRequiresInExpression: false
268+
BeforeNonEmptyParentheses: false
269+
SpaceBeforeRangeBasedForLoopColon: true
270+
SpaceBeforeSquareBrackets: false
271+
SpaceInEmptyBlock: false
85272
SpacesBeforeTrailingComments: 1
86-
SpacesInAngles: true
87-
SpacesInCStyleCastParentheses: false
88-
SpacesInContainerLiterals: true
89-
SpacesInParentheses: true
273+
SpacesInAngles: Never
274+
SpacesInContainerLiterals: false
275+
SpacesInLineCommentPrefix:
276+
Minimum: 1
277+
Maximum: -1
278+
SpacesInParens: Never
279+
SpacesInParensOptions:
280+
ExceptDoubleParentheses: false
281+
InCStyleCasts: false
282+
InConditionalStatements: false
283+
InEmptyParentheses: false
284+
Other: false
90285
SpacesInSquareBrackets: false
91-
Standard: Cpp03
286+
Standard: Latest
287+
StatementAttributeLikeMacros:
288+
- Q_EMIT
289+
StatementMacros:
290+
- Q_UNUSED
291+
- QT_REQUIRE_VERSION
292+
- ITK_GCC_PRAGMA_PUSH
293+
- ITK_GCC_PRAGMA_POP
294+
- ITK_GCC_SUPPRESS_Wfloat_equal
295+
- ITK_GCC_SUPPRESS_Wformat_nonliteral
296+
- ITK_GCC_SUPPRESS_Warray_bounds
297+
- ITK_CLANG_PRAGMA_PUSH
298+
- ITK_CLANG_PRAGMA_POP
299+
- ITK_CLANG_SUPPRESS_Wzero_as_null_pointer_constant
300+
- CLANG_PRAGMA_PUSH
301+
- CLANG_PRAGMA_POP
302+
- CLANG_SUPPRESS_Wfloat_equal
303+
- INTEL_PRAGMA_WARN_PUSH
304+
- INTEL_PRAGMA_WARN_POP
305+
- INTEL_SUPPRESS_warning_1292
306+
- itkTemplateFloatingToIntegerMacro
307+
- itkLegacyMacro
308+
TableGenBreakInsideDAGArg: DontBreak
92309
TabWidth: 2
93310
UseTab: Never
311+
VerilogBreakBetweenInstancePorts: true
312+
WhitespaceSensitiveMacros:
313+
- BOOST_PP_STRINGIZE
314+
- CF_SWIFT_NAME
315+
- NS_SWIFT_NAME
316+
- PP_STRINGIZE
317+
- STRINGIZE
94318
...

0 commit comments

Comments
 (0)