| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648 |
- build:
- maxIssues: 100
- excludeCorrectable: false
- weights:
- # complexity: 2
- # LongParameterList: 1
- # style: 1
- # comments: 1
- config:
- validation: true
- # when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]'
- excludes: ''
- processors:
- active: true
- exclude:
- - 'DetektProgressListener'
- # - 'FunctionCountProcessor'
- # - 'PropertyCountProcessor'
- # - 'ClassCountProcessor'
- # - 'PackageCountProcessor'
- # - 'KtFileCountProcessor'
- console-reports:
- active: true
- exclude:
- - 'ProjectStatisticsReport'
- - 'ComplexityReport'
- - 'NotificationReport'
- # - 'FindingsReport'
- - 'FileBasedFindingsReport'
- comments:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- AbsentOrWrongFileLicense:
- active: false
- licenseTemplateFile: 'license.template'
- CommentOverPrivateFunction:
- active: false
- CommentOverPrivateProperty:
- active: false
- EndOfSentenceFormat:
- active: false
- endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)'
- UndocumentedPublicClass:
- active: false
- searchInNestedClass: true
- searchInInnerClass: true
- searchInInnerObject: true
- searchInInnerInterface: true
- UndocumentedPublicFunction:
- active: false
- UndocumentedPublicProperty:
- active: false
- complexity:
- active: true
- ComplexCondition:
- active: true
- threshold: 4
- ComplexInterface:
- active: false
- threshold: 10
- includeStaticDeclarations: false
- includePrivateDeclarations: false
- ComplexMethod:
- active: true
- threshold: 15
- ignoreSingleWhenExpression: false
- ignoreSimpleWhenEntries: false
- ignoreNestingFunctions: false
- nestingFunctions: [run, let, apply, with, also, use, forEach, isNotNull, ifNull]
- LabeledExpression:
- active: false
- ignoredLabels: []
- LargeClass:
- active: true
- threshold: 600
- LongMethod:
- active: true
- threshold: 60
- LongParameterList:
- active: true
- functionThreshold: 6
- constructorThreshold: 7
- ignoreDefaultParameters: false
- ignoreDataClasses: true
- ignoreAnnotated: []
- MethodOverloading:
- active: false
- threshold: 6
- NestedBlockDepth:
- active: true
- threshold: 4
- StringLiteralDuplication:
- active: false
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- threshold: 3
- ignoreAnnotation: true
- excludeStringsWithLessThan5Characters: true
- ignoreStringsRegex: '$^'
- TooManyFunctions:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- thresholdInFiles: 11
- thresholdInClasses: 11
- thresholdInInterfaces: 11
- thresholdInObjects: 11
- thresholdInEnums: 11
- ignoreDeprecated: false
- ignorePrivate: false
- ignoreOverridden: false
- coroutines:
- active: true
- GlobalCoroutineUsage:
- active: false
- RedundantSuspendModifier:
- active: false
- empty-blocks:
- active: true
- EmptyCatchBlock:
- active: true
- allowedExceptionNameRegex: '_|(ignore|expected).*'
- EmptyClassBlock:
- active: true
- EmptyDefaultConstructor:
- active: true
- EmptyDoWhileBlock:
- active: true
- EmptyElseBlock:
- active: true
- EmptyFinallyBlock:
- active: true
- EmptyForBlock:
- active: true
- EmptyFunctionBlock:
- active: true
- ignoreOverridden: false
- EmptyIfBlock:
- active: true
- EmptyInitBlock:
- active: true
- EmptyKtFile:
- active: true
- EmptySecondaryConstructor:
- active: true
- EmptyTryBlock:
- active: true
- EmptyWhenBlock:
- active: true
- EmptyWhileBlock:
- active: true
- exceptions:
- active: true
- ExceptionRaisedInUnexpectedLocation:
- active: false
- methodNames: [toString, hashCode, equals, finalize]
- InstanceOfCheckForException:
- active: false
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- NotImplementedDeclaration:
- active: false
- PrintStackTrace:
- active: false
- RethrowCaughtException:
- active: false
- ReturnFromFinally:
- active: false
- ignoreLabeled: false
- SwallowedException:
- active: false
- ignoredExceptionTypes:
- - InterruptedException
- - NumberFormatException
- - ParseException
- - MalformedURLException
- allowedExceptionNameRegex: '_|(ignore|expected).*'
- ThrowingExceptionFromFinally:
- active: false
- ThrowingExceptionInMain:
- active: false
- ThrowingExceptionsWithoutMessageOrCause:
- active: false
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- exceptions:
- - IllegalArgumentException
- - IllegalStateException
- - IOException
- ThrowingNewInstanceOfSameException:
- active: false
- TooGenericExceptionCaught:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- exceptionNames:
- - ArrayIndexOutOfBoundsException
- - Error
- - Exception
- - IllegalMonitorStateException
- - NullPointerException
- - IndexOutOfBoundsException
- - RuntimeException
- - Throwable
- allowedExceptionNameRegex: '_|(ignore|expected).*'
- TooGenericExceptionThrown:
- active: true
- exceptionNames:
- - Error
- - Exception
- - Throwable
- - RuntimeException
- formatting:
- active: true
- android: false
- autoCorrect: true
- AnnotationOnSeparateLine:
- active: false
- autoCorrect: true
- ChainWrapping:
- active: true
- autoCorrect: true
- CommentSpacing:
- active: true
- autoCorrect: true
- EnumEntryNameCase:
- active: false
- autoCorrect: true
- Filename:
- active: true
- FinalNewline:
- active: true
- autoCorrect: true
- insertFinalNewLine: true
- ImportOrdering:
- active: false
- autoCorrect: true
- layout: 'idea'
- Indentation:
- active: false
- autoCorrect: true
- indentSize: 4
- continuationIndentSize: 4
- MaximumLineLength:
- active: true
- maxLineLength: 120
- ModifierOrdering:
- active: true
- autoCorrect: true
- MultiLineIfElse:
- active: true
- autoCorrect: true
- NoBlankLineBeforeRbrace:
- active: true
- autoCorrect: true
- NoConsecutiveBlankLines:
- active: true
- autoCorrect: true
- NoEmptyClassBody:
- active: true
- autoCorrect: true
- NoEmptyFirstLineInMethodBlock:
- active: false
- autoCorrect: true
- NoLineBreakAfterElse:
- active: true
- autoCorrect: true
- NoLineBreakBeforeAssignment:
- active: true
- autoCorrect: true
- NoMultipleSpaces:
- active: true
- autoCorrect: true
- NoSemicolons:
- active: true
- autoCorrect: true
- NoTrailingSpaces:
- active: true
- autoCorrect: true
- NoUnitReturn:
- active: true
- autoCorrect: true
- NoUnusedImports:
- active: true
- autoCorrect: true
- NoWildcardImports:
- active: true
- PackageName:
- active: true
- autoCorrect: true
- ParameterListWrapping:
- active: true
- autoCorrect: true
- indentSize: 4
- SpacingAroundColon:
- active: true
- autoCorrect: true
- SpacingAroundComma:
- active: true
- autoCorrect: true
- SpacingAroundCurly:
- active: true
- autoCorrect: true
- SpacingAroundDot:
- active: true
- autoCorrect: true
- SpacingAroundDoubleColon:
- active: false
- autoCorrect: true
- SpacingAroundKeyword:
- active: true
- autoCorrect: true
- SpacingAroundOperators:
- active: true
- autoCorrect: true
- SpacingAroundParens:
- active: true
- autoCorrect: true
- SpacingAroundRangeOperator:
- active: true
- autoCorrect: true
- SpacingBetweenDeclarationsWithAnnotations:
- active: false
- autoCorrect: true
- SpacingBetweenDeclarationsWithComments:
- active: false
- autoCorrect: true
- StringTemplate:
- active: true
- autoCorrect: true
- naming:
- active: true
- ClassNaming:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- classPattern: '[A-Z][a-zA-Z0-9]*'
- ConstructorParameterNaming:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- parameterPattern: '[a-z][A-Za-z0-9]*'
- privateParameterPattern: '[a-z][A-Za-z0-9]*'
- excludeClassPattern: '$^'
- ignoreOverridden: true
- EnumNaming:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- enumEntryPattern: '[A-Z][_a-zA-Z0-9]*'
- ForbiddenClassName:
- active: false
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- forbiddenName: []
- FunctionMaxLength:
- active: false
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- maximumFunctionNameLength: 30
- FunctionMinLength:
- active: false
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- minimumFunctionNameLength: 3
- FunctionNaming:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- functionPattern: '([a-z][a-zA-Z0-9]*)|(`.*`)'
- excludeClassPattern: '$^'
- ignoreOverridden: true
- ignoreAnnotated: ['Composable']
- FunctionParameterNaming:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- parameterPattern: '[a-z][A-Za-z0-9]*'
- excludeClassPattern: '$^'
- ignoreOverridden: true
- InvalidPackageDeclaration:
- active: false
- rootPackage: ''
- MatchingDeclarationName:
- active: true
- mustBeFirst: true
- MemberNameEqualsClassName:
- active: true
- ignoreOverridden: true
- ObjectPropertyNaming:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- constantPattern: '[A-Za-z][_A-Za-z0-9]*'
- propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
- privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*'
- PackageNaming:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*'
- TopLevelPropertyNaming:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- constantPattern: '[A-Z][_A-Z0-9]*'
- propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
- privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*'
- VariableMaxLength:
- active: false
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- maximumVariableNameLength: 64
- VariableMinLength:
- active: false
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- minimumVariableNameLength: 1
- VariableNaming:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- variablePattern: '[a-z][A-Za-z0-9]*'
- privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*'
- excludeClassPattern: '$^'
- ignoreOverridden: true
- performance:
- active: true
- ArrayPrimitive:
- active: true
- ForEachOnRange:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- SpreadOperator:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- UnnecessaryTemporaryInstantiation:
- active: true
- potential-bugs:
- active: true
- Deprecation:
- active: false
- DuplicateCaseInWhenExpression:
- active: true
- EqualsAlwaysReturnsTrueOrFalse:
- active: true
- EqualsWithHashCodeExist:
- active: true
- ExplicitGarbageCollectionCall:
- active: true
- HasPlatformType:
- active: false
- IgnoredReturnValue:
- active: false
- restrictToAnnotatedMethods: true
- returnValueAnnotations: ['*.CheckReturnValue', '*.CheckResult']
- ImplicitDefaultLocale:
- active: false
- ImplicitUnitReturnType:
- active: false
- allowExplicitReturnType: true
- InvalidRange:
- active: true
- IteratorHasNextCallsNextMethod:
- active: true
- IteratorNotThrowingNoSuchElementException:
- active: true
- LateinitUsage:
- active: false
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- excludeAnnotatedProperties: []
- ignoreOnClassesPattern: ''
- MapGetWithNotNullAssertionOperator:
- active: false
- MissingWhenCase:
- active: true
- RedundantElseInWhen:
- active: true
- UnconditionalJumpStatementInLoop:
- active: false
- UnnecessaryNotNullOperator:
- active: false
- UnnecessarySafeCall:
- active: false
- UnreachableCode:
- active: true
- UnsafeCallOnNullableType:
- active: true
- UnsafeCast:
- active: false
- UselessPostfixExpression:
- active: false
- WrongEqualsTypeParameter:
- active: true
- style:
- active: true
- CollapsibleIfStatements:
- active: false
- DataClassContainsFunctions:
- active: false
- conversionFunctionPrefix: 'to'
- DataClassShouldBeImmutable:
- active: false
- EqualsNullCall:
- active: true
- EqualsOnSignatureLine:
- active: false
- ExplicitCollectionElementAccessMethod:
- active: false
- ExplicitItLambdaParameter:
- active: false
- ExpressionBodySyntax:
- active: false
- includeLineWrapping: false
- ForbiddenComment:
- active: true
- values: ['TODO:', 'FIXME:', 'STOPSHIP:']
- allowedPatterns: ''
- ForbiddenImport:
- active: false
- imports: []
- forbiddenPatterns: ''
- ForbiddenMethodCall:
- active: false
- methods: ['kotlin.io.println', 'kotlin.io.print']
- ForbiddenPublicDataClass:
- active: false
- ignorePackages: ['*.internal', '*.internal.*']
- ForbiddenVoid:
- active: false
- ignoreOverridden: false
- ignoreUsageInGenerics: false
- FunctionOnlyReturningConstant:
- active: true
- ignoreOverridableFunction: true
- excludedFunctions: 'describeContents'
- excludeAnnotatedFunction: ['dagger.Provides']
- LibraryCodeMustSpecifyReturnType:
- active: true
- LoopWithTooManyJumpStatements:
- active: true
- maxJumpCount: 1
- MagicNumber:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- ignoreNumbers: ['-1', '0', '1', '2']
- ignoreHashCodeFunction: true
- ignorePropertyDeclaration: false
- ignoreLocalVariableDeclaration: false
- ignoreConstantDeclaration: true
- ignoreCompanionObjectPropertyDeclaration: true
- ignoreAnnotation: false
- ignoreNamedArgument: true
- ignoreEnums: false
- ignoreRanges: false
- MandatoryBracesIfStatements:
- active: false
- MandatoryBracesLoops:
- active: false
- MaxLineLength:
- active: true
- maxLineLength: 120
- excludePackageStatements: true
- excludeImportStatements: true
- excludeCommentStatements: false
- MayBeConst:
- active: true
- ModifierOrder:
- active: true
- NestedClassesVisibility:
- active: false
- NewLineAtEndOfFile:
- active: true
- NoTabs:
- active: false
- OptionalAbstractKeyword:
- active: true
- OptionalUnit:
- active: false
- OptionalWhenBraces:
- active: false
- PreferToOverPairSyntax:
- active: false
- ProtectedMemberInFinalClass:
- active: true
- RedundantExplicitType:
- active: false
- RedundantVisibilityModifierRule:
- active: false
- ReturnCount:
- active: true
- max: 2
- excludedFunctions: 'equals'
- excludeLabeled: false
- excludeReturnFromLambda: true
- excludeGuardClauses: false
- SafeCast:
- active: true
- SerialVersionUIDInSerializableClass:
- active: false
- SpacingBetweenPackageAndImports:
- active: false
- ThrowsCount:
- active: true
- max: 2
- TrailingWhitespace:
- active: false
- UnderscoresInNumericLiterals:
- active: false
- acceptableDecimalLength: 5
- UnnecessaryAbstractClass:
- active: true
- excludeAnnotatedClasses: ['dagger.Module']
- UnnecessaryAnnotationUseSiteTarget:
- active: false
- UnnecessaryApply:
- active: false
- UnnecessaryInheritance:
- active: true
- UnnecessaryLet:
- active: false
- UnnecessaryParentheses:
- active: false
- UntilInsteadOfRangeTo:
- active: false
- UnusedImports:
- active: false
- UnusedPrivateClass:
- active: true
- UnusedPrivateMember:
- active: false
- allowedNames: '(_|ignored|expected|serialVersionUID)'
- UseArrayLiteralsInAnnotations:
- active: false
- UseCheckOrError:
- active: false
- UseDataClass:
- active: false
- excludeAnnotatedClasses: []
- allowVars: false
- UseIfInsteadOfWhen:
- active: false
- UseRequire:
- active: false
- UselessCallOnNotNull:
- active: true
- UtilityClassWithPublicConstructor:
- active: true
- VarCouldBeVal:
- active: false
- WildcardImport:
- active: true
- excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
- excludeImports: ['java.util.*', 'kotlinx.android.synthetic.*']
|