Skip to content

Commit 69ea2cd

Browse files
committedMay 24, 2020
Add and configure detekt
1 parent 61dc6e9 commit 69ea2cd

File tree

3 files changed

+679
-0
lines changed

3 files changed

+679
-0
lines changed
 

‎build.gradle

+23
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,29 @@ buildscript {
5151
}
5252
}
5353

54+
plugins {
55+
id("io.gitlab.arturbosch.detekt").version("1.9.1")
56+
}
57+
58+
detekt {
59+
failFast = true
60+
parallel = true
61+
config = files("config/detekt.yml")
62+
input = files(projectDir)
63+
//baseline = file("config/detekt_baseline.xml")
64+
65+
reports {
66+
html {
67+
enabled = true
68+
destination = file("build/reports/detekt.html")
69+
}
70+
xml.enabled = false
71+
txt.enabled = false
72+
}
73+
}
74+
75+
tasks.detekt.jvmTarget = "1.8"
76+
5477
allprojects {
5578
repositories {
5679
google()

‎config/detekt.yml

+629
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,629 @@
1+
build:
2+
maxIssues: 0
3+
excludeCorrectable: false
4+
weights:
5+
# complexity: 2
6+
# LongParameterList: 1
7+
# style: 1
8+
# comments: 1
9+
10+
config:
11+
validation: true
12+
# when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]'
13+
excludes: ''
14+
15+
processors:
16+
active: true
17+
exclude:
18+
- 'DetektProgressListener'
19+
# - 'FunctionCountProcessor'
20+
# - 'PropertyCountProcessor'
21+
# - 'ClassCountProcessor'
22+
# - 'PackageCountProcessor'
23+
# - 'KtFileCountProcessor'
24+
25+
console-reports:
26+
active: true
27+
exclude:
28+
- 'ProjectStatisticsReport'
29+
- 'ComplexityReport'
30+
- 'NotificationReport'
31+
# - 'FindingsReport'
32+
- 'FileBasedFindingsReport'
33+
34+
comments:
35+
active: true
36+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
37+
AbsentOrWrongFileLicense:
38+
active: false
39+
licenseTemplateFile: 'license.template'
40+
CommentOverPrivateFunction:
41+
active: false
42+
CommentOverPrivateProperty:
43+
active: false
44+
EndOfSentenceFormat:
45+
active: false
46+
endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)'
47+
UndocumentedPublicClass:
48+
active: false
49+
searchInNestedClass: true
50+
searchInInnerClass: true
51+
searchInInnerObject: true
52+
searchInInnerInterface: true
53+
UndocumentedPublicFunction:
54+
active: false
55+
UndocumentedPublicProperty:
56+
active: false
57+
58+
complexity:
59+
active: true
60+
ComplexCondition:
61+
active: true
62+
threshold: 4
63+
ComplexInterface:
64+
active: false
65+
threshold: 10
66+
includeStaticDeclarations: false
67+
includePrivateDeclarations: false
68+
ComplexMethod:
69+
active: true
70+
threshold: 15
71+
ignoreSingleWhenExpression: false
72+
ignoreSimpleWhenEntries: false
73+
ignoreNestingFunctions: false
74+
nestingFunctions: [run, let, apply, with, also, use, forEach, isNotNull, ifNull]
75+
LabeledExpression:
76+
active: false
77+
ignoredLabels: []
78+
LargeClass:
79+
active: true
80+
threshold: 600
81+
LongMethod:
82+
active: true
83+
threshold: 60
84+
LongParameterList:
85+
active: true
86+
functionThreshold: 6
87+
constructorThreshold: 7
88+
ignoreDefaultParameters: false
89+
ignoreDataClasses: true
90+
ignoreAnnotated: []
91+
MethodOverloading:
92+
active: false
93+
threshold: 6
94+
NestedBlockDepth:
95+
active: true
96+
threshold: 4
97+
StringLiteralDuplication:
98+
active: false
99+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
100+
threshold: 3
101+
ignoreAnnotation: true
102+
excludeStringsWithLessThan5Characters: true
103+
ignoreStringsRegex: '$^'
104+
TooManyFunctions:
105+
active: true
106+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
107+
thresholdInFiles: 11
108+
thresholdInClasses: 11
109+
thresholdInInterfaces: 11
110+
thresholdInObjects: 11
111+
thresholdInEnums: 11
112+
ignoreDeprecated: false
113+
ignorePrivate: false
114+
ignoreOverridden: false
115+
116+
coroutines:
117+
active: true
118+
GlobalCoroutineUsage:
119+
active: false
120+
RedundantSuspendModifier:
121+
active: false
122+
123+
empty-blocks:
124+
active: true
125+
EmptyCatchBlock:
126+
active: true
127+
allowedExceptionNameRegex: '_|(ignore|expected).*'
128+
EmptyClassBlock:
129+
active: true
130+
EmptyDefaultConstructor:
131+
active: true
132+
EmptyDoWhileBlock:
133+
active: true
134+
EmptyElseBlock:
135+
active: true
136+
EmptyFinallyBlock:
137+
active: true
138+
EmptyForBlock:
139+
active: true
140+
EmptyFunctionBlock:
141+
active: true
142+
ignoreOverridden: false
143+
EmptyIfBlock:
144+
active: true
145+
EmptyInitBlock:
146+
active: true
147+
EmptyKtFile:
148+
active: true
149+
EmptySecondaryConstructor:
150+
active: true
151+
EmptyTryBlock:
152+
active: true
153+
EmptyWhenBlock:
154+
active: true
155+
EmptyWhileBlock:
156+
active: true
157+
158+
exceptions:
159+
active: true
160+
ExceptionRaisedInUnexpectedLocation:
161+
active: false
162+
methodNames: [toString, hashCode, equals, finalize]
163+
InstanceOfCheckForException:
164+
active: false
165+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
166+
NotImplementedDeclaration:
167+
active: false
168+
PrintStackTrace:
169+
active: false
170+
RethrowCaughtException:
171+
active: false
172+
ReturnFromFinally:
173+
active: false
174+
ignoreLabeled: false
175+
SwallowedException:
176+
active: false
177+
ignoredExceptionTypes:
178+
- InterruptedException
179+
- NumberFormatException
180+
- ParseException
181+
- MalformedURLException
182+
allowedExceptionNameRegex: '_|(ignore|expected).*'
183+
ThrowingExceptionFromFinally:
184+
active: false
185+
ThrowingExceptionInMain:
186+
active: false
187+
ThrowingExceptionsWithoutMessageOrCause:
188+
active: false
189+
exceptions:
190+
- IllegalArgumentException
191+
- IllegalStateException
192+
- IOException
193+
ThrowingNewInstanceOfSameException:
194+
active: false
195+
TooGenericExceptionCaught:
196+
active: true
197+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
198+
exceptionNames:
199+
- ArrayIndexOutOfBoundsException
200+
- Error
201+
- Exception
202+
- IllegalMonitorStateException
203+
- NullPointerException
204+
- IndexOutOfBoundsException
205+
- RuntimeException
206+
- Throwable
207+
allowedExceptionNameRegex: '_|(ignore|expected).*'
208+
TooGenericExceptionThrown:
209+
active: true
210+
exceptionNames:
211+
- Error
212+
- Exception
213+
- Throwable
214+
- RuntimeException
215+
216+
formatting:
217+
active: true
218+
android: false
219+
autoCorrect: true
220+
AnnotationOnSeparateLine:
221+
active: false
222+
autoCorrect: true
223+
ChainWrapping:
224+
active: true
225+
autoCorrect: true
226+
CommentSpacing:
227+
active: true
228+
autoCorrect: true
229+
EnumEntryNameCase:
230+
active: false
231+
autoCorrect: true
232+
Filename:
233+
active: true
234+
FinalNewline:
235+
active: true
236+
autoCorrect: true
237+
insertFinalNewLine: true
238+
ImportOrdering:
239+
active: false
240+
autoCorrect: true
241+
Indentation:
242+
active: false
243+
autoCorrect: true
244+
indentSize: 4
245+
continuationIndentSize: 4
246+
MaximumLineLength:
247+
active: true
248+
maxLineLength: 120
249+
ModifierOrdering:
250+
active: true
251+
autoCorrect: true
252+
MultiLineIfElse:
253+
active: true
254+
autoCorrect: true
255+
NoBlankLineBeforeRbrace:
256+
active: true
257+
autoCorrect: true
258+
NoConsecutiveBlankLines:
259+
active: true
260+
autoCorrect: true
261+
NoEmptyClassBody:
262+
active: true
263+
autoCorrect: true
264+
NoEmptyFirstLineInMethodBlock:
265+
active: false
266+
autoCorrect: true
267+
NoLineBreakAfterElse:
268+
active: true
269+
autoCorrect: true
270+
NoLineBreakBeforeAssignment:
271+
active: true
272+
autoCorrect: true
273+
NoMultipleSpaces:
274+
active: true
275+
autoCorrect: true
276+
NoSemicolons:
277+
active: true
278+
autoCorrect: true
279+
NoTrailingSpaces:
280+
active: true
281+
autoCorrect: true
282+
NoUnitReturn:
283+
active: true
284+
autoCorrect: true
285+
NoUnusedImports:
286+
active: true
287+
autoCorrect: true
288+
NoWildcardImports:
289+
active: true
290+
PackageName:
291+
active: true
292+
autoCorrect: true
293+
ParameterListWrapping:
294+
active: true
295+
autoCorrect: true
296+
indentSize: 4
297+
SpacingAroundColon:
298+
active: true
299+
autoCorrect: true
300+
SpacingAroundComma:
301+
active: true
302+
autoCorrect: true
303+
SpacingAroundCurly:
304+
active: true
305+
autoCorrect: true
306+
SpacingAroundDot:
307+
active: true
308+
autoCorrect: true
309+
SpacingAroundKeyword:
310+
active: true
311+
autoCorrect: true
312+
SpacingAroundOperators:
313+
active: true
314+
autoCorrect: true
315+
SpacingAroundParens:
316+
active: true
317+
autoCorrect: true
318+
SpacingAroundRangeOperator:
319+
active: true
320+
autoCorrect: true
321+
StringTemplate:
322+
active: true
323+
autoCorrect: true
324+
325+
naming:
326+
active: true
327+
ClassNaming:
328+
active: true
329+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
330+
classPattern: '[A-Z][a-zA-Z0-9]*'
331+
ConstructorParameterNaming:
332+
active: true
333+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
334+
parameterPattern: '[a-z][A-Za-z0-9]*'
335+
privateParameterPattern: '[a-z][A-Za-z0-9]*'
336+
excludeClassPattern: '$^'
337+
ignoreOverridden: true
338+
EnumNaming:
339+
active: true
340+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
341+
enumEntryPattern: '[A-Z][_a-zA-Z0-9]*'
342+
ForbiddenClassName:
343+
active: false
344+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
345+
forbiddenName: []
346+
FunctionMaxLength:
347+
active: false
348+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
349+
maximumFunctionNameLength: 30
350+
FunctionMinLength:
351+
active: false
352+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
353+
minimumFunctionNameLength: 3
354+
FunctionNaming:
355+
active: true
356+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
357+
functionPattern: '([a-z][a-zA-Z0-9]*)|(`.*`)'
358+
excludeClassPattern: '$^'
359+
ignoreOverridden: true
360+
FunctionParameterNaming:
361+
active: true
362+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
363+
parameterPattern: '[a-z][A-Za-z0-9]*'
364+
excludeClassPattern: '$^'
365+
ignoreOverridden: true
366+
InvalidPackageDeclaration:
367+
active: false
368+
rootPackage: ''
369+
MatchingDeclarationName:
370+
active: true
371+
mustBeFirst: true
372+
MemberNameEqualsClassName:
373+
active: true
374+
ignoreOverridden: true
375+
ObjectPropertyNaming:
376+
active: true
377+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
378+
constantPattern: '[A-Za-z][_A-Za-z0-9]*'
379+
propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
380+
privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*'
381+
PackageNaming:
382+
active: true
383+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
384+
packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*'
385+
TopLevelPropertyNaming:
386+
active: true
387+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
388+
constantPattern: '[A-Z][_A-Z0-9]*'
389+
propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
390+
privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*'
391+
VariableMaxLength:
392+
active: false
393+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
394+
maximumVariableNameLength: 64
395+
VariableMinLength:
396+
active: false
397+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
398+
minimumVariableNameLength: 1
399+
VariableNaming:
400+
active: true
401+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
402+
variablePattern: '[a-z][A-Za-z0-9]*'
403+
privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*'
404+
excludeClassPattern: '$^'
405+
ignoreOverridden: true
406+
407+
performance:
408+
active: true
409+
ArrayPrimitive:
410+
active: true
411+
ForEachOnRange:
412+
active: true
413+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
414+
SpreadOperator:
415+
active: true
416+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
417+
UnnecessaryTemporaryInstantiation:
418+
active: true
419+
420+
potential-bugs:
421+
active: true
422+
Deprecation:
423+
active: false
424+
DuplicateCaseInWhenExpression:
425+
active: true
426+
EqualsAlwaysReturnsTrueOrFalse:
427+
active: true
428+
EqualsWithHashCodeExist:
429+
active: true
430+
ExplicitGarbageCollectionCall:
431+
active: true
432+
HasPlatformType:
433+
active: false
434+
ImplicitDefaultLocale:
435+
active: false
436+
InvalidRange:
437+
active: true
438+
IteratorHasNextCallsNextMethod:
439+
active: true
440+
IteratorNotThrowingNoSuchElementException:
441+
active: true
442+
LateinitUsage:
443+
active: false
444+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
445+
excludeAnnotatedProperties: []
446+
ignoreOnClassesPattern: ''
447+
MapGetWithNotNullAssertionOperator:
448+
active: false
449+
MissingWhenCase:
450+
active: true
451+
RedundantElseInWhen:
452+
active: true
453+
UnconditionalJumpStatementInLoop:
454+
active: false
455+
UnnecessaryNotNullOperator:
456+
active: false
457+
UnnecessarySafeCall:
458+
active: false
459+
UnreachableCode:
460+
active: true
461+
UnsafeCallOnNullableType:
462+
active: true
463+
UnsafeCast:
464+
active: false
465+
UselessPostfixExpression:
466+
active: false
467+
WrongEqualsTypeParameter:
468+
active: true
469+
470+
style:
471+
active: true
472+
CollapsibleIfStatements:
473+
active: false
474+
DataClassContainsFunctions:
475+
active: false
476+
conversionFunctionPrefix: 'to'
477+
DataClassShouldBeImmutable:
478+
active: false
479+
EqualsNullCall:
480+
active: true
481+
EqualsOnSignatureLine:
482+
active: false
483+
ExplicitCollectionElementAccessMethod:
484+
active: false
485+
ExplicitItLambdaParameter:
486+
active: false
487+
ExpressionBodySyntax:
488+
active: false
489+
includeLineWrapping: false
490+
ForbiddenComment:
491+
active: true
492+
values: ['TODO:', 'FIXME:', 'STOPSHIP:']
493+
allowedPatterns: ''
494+
ForbiddenImport:
495+
active: false
496+
imports: []
497+
forbiddenPatterns: ''
498+
ForbiddenMethodCall:
499+
active: false
500+
methods: []
501+
ForbiddenPublicDataClass:
502+
active: false
503+
ignorePackages: ['*.internal', '*.internal.*']
504+
ForbiddenVoid:
505+
active: false
506+
ignoreOverridden: false
507+
ignoreUsageInGenerics: false
508+
FunctionOnlyReturningConstant:
509+
active: true
510+
ignoreOverridableFunction: true
511+
excludedFunctions: 'describeContents'
512+
excludeAnnotatedFunction: ['dagger.Provides']
513+
LibraryCodeMustSpecifyReturnType:
514+
active: true
515+
LoopWithTooManyJumpStatements:
516+
active: true
517+
maxJumpCount: 1
518+
MagicNumber:
519+
active: true
520+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
521+
ignoreNumbers: ['-1', '0', '1', '2']
522+
ignoreHashCodeFunction: true
523+
ignorePropertyDeclaration: false
524+
ignoreLocalVariableDeclaration: false
525+
ignoreConstantDeclaration: true
526+
ignoreCompanionObjectPropertyDeclaration: true
527+
ignoreAnnotation: false
528+
ignoreNamedArgument: true
529+
ignoreEnums: false
530+
ignoreRanges: false
531+
MandatoryBracesIfStatements:
532+
active: false
533+
MandatoryBracesLoops:
534+
active: false
535+
MaxLineLength:
536+
active: true
537+
maxLineLength: 120
538+
excludePackageStatements: true
539+
excludeImportStatements: true
540+
excludeCommentStatements: false
541+
MayBeConst:
542+
active: true
543+
ModifierOrder:
544+
active: true
545+
NestedClassesVisibility:
546+
active: false
547+
NewLineAtEndOfFile:
548+
active: true
549+
NoTabs:
550+
active: false
551+
OptionalAbstractKeyword:
552+
active: true
553+
OptionalUnit:
554+
active: false
555+
OptionalWhenBraces:
556+
active: false
557+
PreferToOverPairSyntax:
558+
active: false
559+
ProtectedMemberInFinalClass:
560+
active: true
561+
RedundantExplicitType:
562+
active: false
563+
RedundantVisibilityModifierRule:
564+
active: false
565+
ReturnCount:
566+
active: true
567+
max: 2
568+
excludedFunctions: 'equals'
569+
excludeLabeled: false
570+
excludeReturnFromLambda: true
571+
excludeGuardClauses: false
572+
SafeCast:
573+
active: true
574+
SerialVersionUIDInSerializableClass:
575+
active: false
576+
SpacingBetweenPackageAndImports:
577+
active: false
578+
ThrowsCount:
579+
active: true
580+
max: 2
581+
TrailingWhitespace:
582+
active: false
583+
UnderscoresInNumericLiterals:
584+
active: false
585+
acceptableDecimalLength: 5
586+
UnnecessaryAbstractClass:
587+
active: true
588+
excludeAnnotatedClasses: ['dagger.Module']
589+
UnnecessaryAnnotationUseSiteTarget:
590+
active: false
591+
UnnecessaryApply:
592+
active: false
593+
UnnecessaryInheritance:
594+
active: true
595+
UnnecessaryLet:
596+
active: false
597+
UnnecessaryParentheses:
598+
active: false
599+
UntilInsteadOfRangeTo:
600+
active: false
601+
UnusedImports:
602+
active: false
603+
UnusedPrivateClass:
604+
active: true
605+
UnusedPrivateMember:
606+
active: false
607+
allowedNames: '(_|ignored|expected|serialVersionUID)'
608+
UseArrayLiteralsInAnnotations:
609+
active: false
610+
UseCheckOrError:
611+
active: false
612+
UseDataClass:
613+
active: false
614+
excludeAnnotatedClasses: []
615+
allowVars: false
616+
UseIfInsteadOfWhen:
617+
active: false
618+
UseRequire:
619+
active: false
620+
UselessCallOnNotNull:
621+
active: true
622+
UtilityClassWithPublicConstructor:
623+
active: true
624+
VarCouldBeVal:
625+
active: false
626+
WildcardImport:
627+
active: true
628+
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
629+
excludeImports: ['java.util.*', 'kotlinx.android.synthetic.*']

‎config/detekt_baseline.xml

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?xml version="1.0" ?>
2+
<SmellBaseline>
3+
<Blacklist></Blacklist>
4+
<Whitelist>
5+
<ID>EmptyClassBlock:WrappingFragmentViewModel.kt$WrappingFragmentViewModel${ }</ID>
6+
<ID>LongMethod:GiftLayout.kt$GiftLayout$onMeasure</ID>
7+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$0.99f</ID>
8+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$100</ID>
9+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$100f</ID>
10+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$10f</ID>
11+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$15f</ID>
12+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$20f</ID>
13+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$3</ID>
14+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$40</ID>
15+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$40f</ID>
16+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$4f</ID>
17+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$50f</ID>
18+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$60</ID>
19+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$60f</ID>
20+
<ID>MagicNumber:GiftLayout.kt$GiftLayout$90f</ID>
21+
<ID>MagicNumber:HomeViewModel.kt$HomeViewModel$300</ID>
22+
<ID>PackageNaming:GiftLayout.kt$package com.gifft.gift_ui</ID>
23+
<ID>SpreadOperator:AutoDispose.kt$(lifecycleOwner, disposeEvent, *this)</ID>
24+
<ID>TooManyFunctions:GiftLayout.kt$GiftLayout$GiftLayout</ID>
25+
<ID>UnnecessaryAbstractClass:Gift.kt$Gift</ID>
26+
</Whitelist>
27+
</SmellBaseline>

0 commit comments

Comments
 (0)
Please sign in to comment.