xref: /libCEED/examples/deal.II/.clang-format (revision 694f24b00a5ec783a2e8f60ab930eea7b6a5ea1d)
1*8c81f8b0SPeter Munch#
2*8c81f8b0SPeter Munch# The clang-format (Clang 11) style file used by deal.II.
3*8c81f8b0SPeter Munch#
4*8c81f8b0SPeter Munch
5*8c81f8b0SPeter MunchAccessModifierOffset: -2
6*8c81f8b0SPeter Munch
7*8c81f8b0SPeter MunchAlignAfterOpenBracket: Align
8*8c81f8b0SPeter MunchAlignConsecutiveAssignments: true
9*8c81f8b0SPeter MunchAlignConsecutiveDeclarations: true
10*8c81f8b0SPeter MunchAlignEscapedNewlines: Left
11*8c81f8b0SPeter MunchAlignOperands: true
12*8c81f8b0SPeter MunchAlignTrailingComments: true
13*8c81f8b0SPeter Munch
14*8c81f8b0SPeter MunchAllowAllParametersOfDeclarationOnNextLine: false
15*8c81f8b0SPeter MunchAllowShortBlocksOnASingleLine: false
16*8c81f8b0SPeter MunchAllowShortCaseLabelsOnASingleLine: false
17*8c81f8b0SPeter MunchAllowShortFunctionsOnASingleLine: None
18*8c81f8b0SPeter MunchAllowShortIfStatementsOnASingleLine: false
19*8c81f8b0SPeter MunchAllowShortLoopsOnASingleLine: false
20*8c81f8b0SPeter Munch
21*8c81f8b0SPeter MunchAlwaysBreakAfterReturnType: All
22*8c81f8b0SPeter MunchAlwaysBreakBeforeMultilineStrings: false
23*8c81f8b0SPeter MunchAlwaysBreakTemplateDeclarations: true
24*8c81f8b0SPeter Munch
25*8c81f8b0SPeter MunchBinPackArguments: false
26*8c81f8b0SPeter MunchBinPackParameters: false
27*8c81f8b0SPeter Munch
28*8c81f8b0SPeter MunchBraceWrapping:
29*8c81f8b0SPeter Munch  AfterCaseLabel: true
30*8c81f8b0SPeter Munch  AfterClass: true
31*8c81f8b0SPeter Munch  AfterControlStatement: Always
32*8c81f8b0SPeter Munch  AfterEnum: true
33*8c81f8b0SPeter Munch  AfterExternBlock: true
34*8c81f8b0SPeter Munch  AfterFunction: true
35*8c81f8b0SPeter Munch  AfterNamespace: true
36*8c81f8b0SPeter Munch  AfterStruct: true
37*8c81f8b0SPeter Munch  AfterUnion: true
38*8c81f8b0SPeter Munch  BeforeCatch: true
39*8c81f8b0SPeter Munch  BeforeElse: true
40*8c81f8b0SPeter Munch  BeforeLambdaBody: false
41*8c81f8b0SPeter Munch  BeforeWhile: true
42*8c81f8b0SPeter Munch  IndentBraces: true
43*8c81f8b0SPeter Munch  SplitEmptyFunction: false
44*8c81f8b0SPeter Munch  SplitEmptyRecord: false
45*8c81f8b0SPeter Munch  SplitEmptyNamespace: false
46*8c81f8b0SPeter Munch
47*8c81f8b0SPeter MunchBreakBeforeBinaryOperators: None
48*8c81f8b0SPeter MunchBreakBeforeBraces: Custom
49*8c81f8b0SPeter MunchBreakBeforeInheritanceComma: false
50*8c81f8b0SPeter MunchBreakBeforeTernaryOperators: false
51*8c81f8b0SPeter MunchBreakConstructorInitializers: BeforeComma
52*8c81f8b0SPeter MunchBreakStringLiterals: false
53*8c81f8b0SPeter Munch
54*8c81f8b0SPeter MunchColumnLimit: 100
55*8c81f8b0SPeter Munch
56*8c81f8b0SPeter MunchCompactNamespaces: false
57*8c81f8b0SPeter Munch
58*8c81f8b0SPeter MunchConstructorInitializerIndentWidth: 2
59*8c81f8b0SPeter Munch
60*8c81f8b0SPeter MunchContinuationIndentWidth: 2
61*8c81f8b0SPeter Munch
62*8c81f8b0SPeter MunchCpp11BracedListStyle: true
63*8c81f8b0SPeter Munch
64*8c81f8b0SPeter MunchDerivePointerAlignment: false
65*8c81f8b0SPeter Munch
66*8c81f8b0SPeter MunchFixNamespaceComments: true
67*8c81f8b0SPeter Munch
68*8c81f8b0SPeter MunchIncludeBlocks: Regroup
69*8c81f8b0SPeter MunchIncludeCategories:
70*8c81f8b0SPeter Munch# config.h must always be first:
71*8c81f8b0SPeter Munch  - Regex:    "deal.II/base/config.h"
72*8c81f8b0SPeter Munch    Priority: -1
73*8c81f8b0SPeter Munch# deal.II folders in sorted order:
74*8c81f8b0SPeter Munch  - Regex:    "deal.II/algorithms/.*\\.h"
75*8c81f8b0SPeter Munch    Priority: 100
76*8c81f8b0SPeter Munch  - Regex:    "deal.II/arborx/.*\\.h"
77*8c81f8b0SPeter Munch    Priority: 110
78*8c81f8b0SPeter Munch  - Regex:    "deal.II/base/.*\\.h"
79*8c81f8b0SPeter Munch    Priority: 120
80*8c81f8b0SPeter Munch  - Regex:    "deal.II/boost_adaptors/.*\\.h"
81*8c81f8b0SPeter Munch    Priority: 125
82*8c81f8b0SPeter Munch  - Regex:    "deal.II/differentiation/.*\\.h"
83*8c81f8b0SPeter Munch    Priority: 130
84*8c81f8b0SPeter Munch  - Regex:    "deal.II/distributed/.*\\.h"
85*8c81f8b0SPeter Munch    Priority: 140
86*8c81f8b0SPeter Munch  - Regex:    "deal.II/dofs/.*\\.h"
87*8c81f8b0SPeter Munch    Priority: 150
88*8c81f8b0SPeter Munch  - Regex:    "deal.II/fe/.*\\.h"
89*8c81f8b0SPeter Munch    Priority: 160
90*8c81f8b0SPeter Munch  - Regex:    "deal.II/gmsh/.*\\.h"
91*8c81f8b0SPeter Munch    Priority: 170
92*8c81f8b0SPeter Munch  - Regex:    "deal.II/grid/.*\\.h"
93*8c81f8b0SPeter Munch    Priority: 180
94*8c81f8b0SPeter Munch  - Regex:    "deal.II/hp/.*\\.h"
95*8c81f8b0SPeter Munch    Priority: 190
96*8c81f8b0SPeter Munch  - Regex:    "deal.II/integrators/.*\\.h"
97*8c81f8b0SPeter Munch    Priority: 200
98*8c81f8b0SPeter Munch  - Regex:    "deal.II/lac/.*\\.h"
99*8c81f8b0SPeter Munch    Priority: 210
100*8c81f8b0SPeter Munch  - Regex:    "deal.II/matrix_free/.*\\.h"
101*8c81f8b0SPeter Munch    Priority: 220
102*8c81f8b0SPeter Munch  - Regex:    "deal.II/meshworker/.*\\.h"
103*8c81f8b0SPeter Munch    Priority: 230
104*8c81f8b0SPeter Munch  - Regex:    "deal.II/multigrid/.*\\.h"
105*8c81f8b0SPeter Munch    Priority: 240
106*8c81f8b0SPeter Munch  - Regex:    "deal.II/non_matching/.*\\.h"
107*8c81f8b0SPeter Munch    Priority: 250
108*8c81f8b0SPeter Munch  - Regex:    "deal.II/numerics/.*\\.h"
109*8c81f8b0SPeter Munch    Priority: 260
110*8c81f8b0SPeter Munch  - Regex:    "deal.II/opencascade/.*\\.h"
111*8c81f8b0SPeter Munch    Priority: 270
112*8c81f8b0SPeter Munch  - Regex:    "deal.II/optimization/.*\\.h"
113*8c81f8b0SPeter Munch    Priority: 280
114*8c81f8b0SPeter Munch  - Regex:    "deal.II/particles/.*\\.h"
115*8c81f8b0SPeter Munch    Priority: 290
116*8c81f8b0SPeter Munch  - Regex:    "deal.II/physics/.*\\.h"
117*8c81f8b0SPeter Munch    Priority: 300
118*8c81f8b0SPeter Munch  - Regex:    "deal.II/sundials/.*\\.h"
119*8c81f8b0SPeter Munch    Priority: 310
120*8c81f8b0SPeter Munch# put boost right after deal:
121*8c81f8b0SPeter Munch  - Regex: "<boost.*>"
122*8c81f8b0SPeter Munch    Priority: 500
123*8c81f8b0SPeter Munch# try to group PETSc headers:
124*8c81f8b0SPeter Munch  - Regex: "<petsc.*\\.h>"
125*8c81f8b0SPeter Munch    Priority: 1000
126*8c81f8b0SPeter Munch# try to catch all third party headers and put them after deal.II but before
127*8c81f8b0SPeter Munch# standard headers:
128*8c81f8b0SPeter Munch  - Regex: "<.*\\.(h|hpp|hxx)>"
129*8c81f8b0SPeter Munch    Priority: 2000
130*8c81f8b0SPeter Munch# match all standard headers. Things like '#include <armadillo>' should be
131*8c81f8b0SPeter Munch# surrounded by #ifdef checks (which will not be merged by clang-format) so they
132*8c81f8b0SPeter Munch# should not be caught here
133*8c81f8b0SPeter Munch  - Regex: "<[a-z_]+>"
134*8c81f8b0SPeter Munch    Priority: 100000
135*8c81f8b0SPeter Munch# make sure that "../tests.h" appears before all other local include files
136*8c81f8b0SPeter Munch# such that replacing Assert in tests also applies to the testing header files.
137*8c81f8b0SPeter Munch  - Regex: "\\.\\./tests\\.h"
138*8c81f8b0SPeter Munch    Priority: 200000
139*8c81f8b0SPeter Munch
140*8c81f8b0SPeter MunchIndentCaseLabels: true
141*8c81f8b0SPeter MunchIndentPPDirectives: AfterHash
142*8c81f8b0SPeter MunchIndentWidth: 2
143*8c81f8b0SPeter Munch
144*8c81f8b0SPeter MunchIndentWrappedFunctionNames: false
145*8c81f8b0SPeter Munch
146*8c81f8b0SPeter MunchKeepEmptyLinesAtTheStartOfBlocks: false
147*8c81f8b0SPeter Munch
148*8c81f8b0SPeter MunchLanguage: Cpp
149*8c81f8b0SPeter Munch
150*8c81f8b0SPeter MunchMaxEmptyLinesToKeep: 3
151*8c81f8b0SPeter Munch
152*8c81f8b0SPeter MunchNamespaceIndentation: All
153*8c81f8b0SPeter Munch
154*8c81f8b0SPeter MunchPenaltyBreakBeforeFirstCallParameter: 90
155*8c81f8b0SPeter Munch
156*8c81f8b0SPeter MunchPointerAlignment: Right
157*8c81f8b0SPeter Munch
158*8c81f8b0SPeter MunchReflowComments: true
159*8c81f8b0SPeter MunchCommentPragmas: '( \| |\*--|<li>|@ref | @p |@param |@name |@returns |@warning |@ingroup |@author |@date |@related |@relates |@relatesalso |@deprecated |@image |@return |@brief |@attention |@copydoc |@addtogroup |@todo |@tparam |@see |@note |@skip |@skipline |@until |@line |@dontinclude |@include | TESTARGS)'
160*8c81f8b0SPeter Munch
161*8c81f8b0SPeter MunchSortIncludes: true
162*8c81f8b0SPeter MunchSortUsingDeclarations: true
163*8c81f8b0SPeter Munch
164*8c81f8b0SPeter MunchSpaceAfterCStyleCast: false
165*8c81f8b0SPeter MunchSpaceAfterTemplateKeyword: true
166*8c81f8b0SPeter MunchSpaceBeforeAssignmentOperators: true
167*8c81f8b0SPeter MunchSpaceBeforeParens: ControlStatements
168*8c81f8b0SPeter MunchSpaceInEmptyParentheses: false
169*8c81f8b0SPeter MunchSpacesBeforeTrailingComments: 1
170*8c81f8b0SPeter MunchSpacesInAngles: false
171*8c81f8b0SPeter MunchSpacesInCStyleCastParentheses: false
172*8c81f8b0SPeter MunchSpacesInContainerLiterals: false
173*8c81f8b0SPeter MunchSpacesInParentheses: false
174*8c81f8b0SPeter MunchSpacesInSquareBrackets: false
175*8c81f8b0SPeter Munch
176*8c81f8b0SPeter MunchStandard: Cpp11
177*8c81f8b0SPeter Munch
178*8c81f8b0SPeter MunchTabWidth: 2
179*8c81f8b0SPeter Munch
180*8c81f8b0SPeter MunchUseTab: Never
181