forked from cortinico/kotlin-android-template
-
Notifications
You must be signed in to change notification settings - Fork 2
/
detekt.yml
165 lines (156 loc) · 3.86 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
config:
# is automatically ignored when custom-checks.jar is on the classpath
# however other CI checks use the argsfile where our plugin is not applied
# we need to care take of this by explicitly allowing this properties
excludes: 'custom-checks.*'
custom-checks:
active: true
SpekTestDiscovery:
active: true
includes: [ '**/test/**/*Spec.kt' ]
comments:
CommentOverPrivateProperty:
active: true
UndocumentedPublicClass:
active: true
excludes: [ '**/*.kt' ]
includes: [ '**/detekt-api/src/main/**/api/*.kt' ]
UndocumentedPublicFunction:
active: true
excludes: [ '**/*.kt' ]
includes: [ '**/detekt-api/src/main/**/api/*.kt' ]
complexity:
StringLiteralDuplication:
active: true
excludes: [ '**/test/**', '**/*.Test.kt', '**/*.Spec.kt' ]
threshold: 5
ignoreAnnotation: true
excludeStringsWithLessThan5Characters: true
ignoreStringsRegex: '$^'
ComplexInterface:
active: true
threshold: 10
includeStaticDeclarations: false
includePrivateDeclarations: false
ComplexMethod:
active: true
ignoreSingleWhenExpression: true
MethodOverloading:
active: true
exceptions:
NotImplementedDeclaration:
active: true
InstanceOfCheckForException:
active: true
RethrowCaughtException:
active: true
ReturnFromFinally:
active: true
SwallowedException:
active: false
ThrowingExceptionFromFinally:
active: true
ThrowingExceptionsWithoutMessageOrCause:
active: true
ThrowingNewInstanceOfSameException:
active: true
formatting:
active: true
android: false
autoCorrect: true
Indentation:
indentSize: 2
continuationIndentSize: 2
ParameterListWrapping:
indentSize: 2
MaximumLineLength:
active: true
ImportOrdering:
active: true
naming:
MemberNameEqualsClassName:
active: true
VariableNaming:
active: true
variablePattern: '[a-z][A-Za-z0-9]*'
privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*'
excludeClassPattern: '$^'
performance:
ArrayPrimitive:
active: true
potential-bugs:
EqualsAlwaysReturnsTrueOrFalse:
active: true
InvalidRange:
active: true
IteratorHasNextCallsNextMethod:
active: true
IteratorNotThrowingNoSuchElementException:
active: true
MissingWhenCase:
active: true
RedundantElseInWhen:
active: true
UnsafeCallOnNullableType:
active: true
UnsafeCast:
active: true
excludes: [ '**/test/**', '**/*.Test.kt', '**/*.Spec.kt' ]
UselessPostfixExpression:
active: true
WrongEqualsTypeParameter:
active: true
style:
ClassOrdering:
active: true
CollapsibleIfStatements:
active: true
EqualsNullCall:
active: true
ForbiddenComment:
active: false
values: [ 'TODO:', 'FIXME:', 'STOPSHIP:', '@author' ]
FunctionOnlyReturningConstant:
active: true
LoopWithTooManyJumpStatements:
active: true
LibraryCodeMustSpecifyReturnType:
active: true
excludes: [ '**/*.kt' ]
includes: [ '**/detekt-api/src/main/**/api/*.kt' ]
MaxLineLength:
excludes: [ '**/test/**', '**/*.Test.kt', '**/*.Spec.kt' ]
excludeCommentStatements: true
MagicNumber:
ignoreHashCodeFunction: true
ignorePropertyDeclaration: true
ignoreAnnotation: true
ignoreEnums: true
ignoreNumbers: [ '-1', '0', '1', '2', '100', '1000' ]
MayBeConst:
active: true
NestedClassesVisibility:
active: true
ProtectedMemberInFinalClass:
active: true
RedundantVisibilityModifierRule:
active: true
ReturnCount:
excludeGuardClauses: true
SpacingBetweenPackageAndImports:
active: true
UnnecessaryAbstractClass:
active: true
UnnecessaryInheritance:
active: true
UnusedPrivateClass:
active: true
UnusedPrivateMember:
active: true
allowedNames: '(_|ignored|expected)'
UseCheckOrError:
active: true
UselessCallOnNotNull:
active: true
UtilityClassWithPublicConstructor:
active: true