forked from xapian/xapian
-
Notifications
You must be signed in to change notification settings - Fork 2
/
.clang-format
124 lines (124 loc) · 4.24 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
# Experimental.
#
# This configuration attempts to match Xapian coding conventions but it's
# currently a work-in-progress.
#
# It should be used in conjunction with
# xapian-maintainer-tools/run-clang-format (which undoes some unhelpful
# changes) and the results should be manually checked before committing.
---
Language: Cpp
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: DontAlign
AlignOperands: true
AlignTrailingComments: false
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
# FIXME: InlineOnly supported by newer clang-format
AllowShortFunctionsOnASingleLine: Inline
# Traditional Xapian style is that this is OK for simple statements, but
# clang-format's option aggressively reformats any statement short enough to
# fit on the same line. Given we have to choose, let's go for not allowing
# this ever - if nothing else, it makes it much clearer if the branch is ever
# taken in code coverage reports.
AllowShortIfStatementsOnASingleLine: false
# Traditional Xapian style is that this is OK for simple statements, but
# clang-format's option aggressively reformats any statement short enough to
# fit on the same line. Given we have to choose, let's go for not allowing
# this ever - if nothing else, it makes it much clearer if the branch is ever
# taken in code coverage reports.
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: TopLevelDefinitions
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
# Needs > clang-format 3.8, and seems to default to true.
# SplitEmptyFunctionBody: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakBeforeTernaryOperators: false
BreakConstructorInitializersBeforeComma: false
BreakStringLiterals: true
ColumnLimit: 80
# Don't wrap copyright statements in comments.
CommentPragmas: '^ Copyright '
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
ForEachMacros: [ foreach, BOOST_FOREACH ]
# FIXME: We should consider this.
FixNamespaceComments: false
#IncludeCategories:
# - Regex: '^"(llvm|llvm-c|clang|clang-c)/'
# Priority: 2
# - Regex: '^(<|"(gtest|isl|json)/)'
# Priority: 3
# - Regex: '.*'
# Priority: 1
IndentCaseLabels: true
IndentWidth: 4
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: false
Language: Cpp
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 4
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: true
# FIXME: These may benefit from tuning.
PenaltyBreakAssignment: 1
PenaltyBreakBeforeFirstCallParameter: 10000
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 0
# We haven't historically really had a standard here, so go with what seems
# conventional in C++ code.
PointerAlignment: Left
ReflowComments: false
# FIXME: Sort out configuration for sorting includes.
SortIncludes: false
# FIXME: Only supported by newer clang-format
#SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: true
SpacesInParentheses: false
SpacesInSquareBrackets: false
# External API headers should be Cpp03, at least for now.
Standard: Cpp11
TabWidth: 8
UseTab: ForContinuationAndIndentation
...