-
Notifications
You must be signed in to change notification settings - Fork 0
/
detekt.yml
212 lines (203 loc) · 4.68 KB
/
detekt.yml
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
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
build:
maxIssues: 0
excludeCorrectable: false
# https://detekt.dev/docs/rules/comments
comments:
OutdatedDocumentation:
active: false
# https://detekt.dev/docs/rules/complexity
complexity:
ComplexCondition:
threshold: 8
LongMethod:
active: false
LongParameterList:
active: false
# We prefer named arguments when calling functions with long parameter lists
NamedArguments:
active: true
CyclomaticComplexMethod:
active: false
NestedScopeFunctions:
active: true
StringLiteralDuplication:
active: false
TooManyFunctions:
active: false
LargeClass:
active: false
NestedBlockDepth:
active: false
# https://detekt.dev/docs/rules/coroutines
coroutines:
GlobalCoroutineUsage:
active: true
SuspendFunSwallowedCancellation:
active: true
SuspendFunWithCoroutineScopeReceiver:
active: true
# https://detekt.dev/docs/rules/exceptions
exceptions:
InstanceOfCheckForException:
active: false
SwallowedException:
active: false
NotImplementedDeclaration:
active: true
ObjectExtendsThrowable:
active: true
TooGenericExceptionCaught:
active: false
# https://detekt.dev/docs/rules/naming
naming:
BooleanPropertyNaming:
active: true
InvalidPackageDeclaration:
active: false
NonBooleanPropertyPrefixedWithIs:
active: true
TopLevelPropertyNaming:
active: true
constantPattern: '[A-Za-z][_A-Za-z0-9]*'
MatchingDeclarationName:
active: false
FunctionNaming:
active: false
MemberNameEqualsClassName:
active: false
# https://detekt.dev/docs/rules/performance
performance:
CouldBeSequence:
active: true
# https://detekt.dev/docs/rules/potential-bugs
potential-bugs:
CastToNullableType:
active: true
MissingPackageDeclaration:
active: true
excludes:
- './gradle/build-logic/src/main/kotlin/plugins.kt'
- '**/*.gradle.kts'
NullCheckOnMutableProperty:
active: true
NullableToStringCall:
active: true
PropertyUsedBeforeDeclaration:
active: true
UnnecessaryNotNullCheck:
active: true
# https://detekt.dev/docs/rules/style
style:
MaxLineLength:
active: false
WildcardImport:
# We never want to use wildcard imports in our code
excludeImports: [ ]
BracesOnIfStatements:
active: false
# For single line if statements, we don't want to add braces
singleLine: 'never'
# For multiline, we want to keep the existing style
multiLine: 'consistent'
CanBeNonNullable:
active: true
ClassOrdering:
active: true
CollapsibleIfStatements:
active: false
DestructuringDeclarationWithTooManyEntries:
maxDestructuringEntries: 8
DoubleNegativeLambda:
active: true
EqualsOnSignatureLine:
active: true
ExplicitCollectionElementAccessMethod:
active: true
ExpressionBodySyntax:
active: false
MagicNumber:
active: false
MultilineRawStringIndentation:
active: false
NoTabs:
active: true
NullableBooleanCheck:
active: true
RedundantExplicitType:
active: true
RedundantVisibilityModifierRule:
active: true
ReturnCount:
active: false
SpacingBetweenPackageAndImports:
active: true
StringShouldBeRawString:
active: true
maxEscapedCharacterCount: 5
ThrowsCount:
active: false
TrailingWhitespace:
active: true
UnnecessaryAnnotationUseSiteTarget:
active: true
UnnecessaryBackticks:
active: true
UnnecessaryBracesAroundTrailingLambda:
active: true
UnnecessaryInnerClass:
active: true
UnnecessaryLet:
active: true
UnnecessaryParentheses:
# We prefer to keep parentheses for clarity
active: false
UntilInsteadOfRangeTo:
active: true
UseEmptyCounterpart:
active: true
UseIfEmptyOrIfBlank:
active: true
UseLet:
active: true
UseSumOfInsteadOfFlatMapSize:
active: true
LoopWithTooManyJumpStatements:
active: false
UnusedPrivateMember:
active: true
ignoreAnnotated: [ Preview ]
# https://detekt.dev/docs/rules/formatting
formatting:
Indentation:
active: true
indentSize: 2
NoEmptyFirstLineInClassBody:
active: true
ArgumentListWrapping:
active: false
Wrapping:
active: false
TrailingCommaOnDeclarationSite:
active: false
AnnotationOnSeparateLine:
active: false
SpacingBetweenDeclarationsWithAnnotations:
active: false
# These rules are duplicated with Detekt's standard rules, so just disable them
Filename:
active: false
FinalNewline:
active: false
MaximumLineLength:
active: false
ModifierOrdering:
active: false
MultiLineIfElse:
active: false
EnumEntryNameCase:
active: false
NoUnusedImports:
# We don't use it, Detekt's detection has problems
active: false
PropertyWrapping:
active: false