# https://github.com/detekt/detekt/blob/v1.17.1/detekt-core/src/main/resources/default-detekt-config.yml comments: active: false complexity: active: true ComplexCondition: active: true threshold: 4 ComplexInterface: active: true threshold: 10 includeStaticDeclarations: false includePrivateDeclarations: false ComplexMethod: active: true threshold: 15 ignoreSingleWhenExpression: false ignoreSimpleWhenEntries: false ignoreNestingFunctions: false LabeledExpression: active: false LargeClass: active: true threshold: 600 LongMethod: active: true threshold: 60 LongParameterList: active: true functionThreshold: 6 constructorThreshold: 7 ignoreDefaultParameters: true ignoreDataClasses: true ignoreAnnotated: [] MethodOverloading: active: false NamedArguments: active: false NestedBlockDepth: active: true threshold: 4 ReplaceSafeCallChainWithRun: active: true StringLiteralDuplication: active: true 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: true ignorePrivate: false ignoreOverridden: true coroutines: active: true GlobalCoroutineUsage: active: false RedundantSuspendModifier: active: true SleepInsteadOfDelay: active: true SuspendFunWithFlowReturnType: active: true 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: true 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: true methodNames: [toString, hashCode, equals, finalize] InstanceOfCheckForException: active: false NotImplementedDeclaration: active: true ObjectExtendsThrowable: active: true PrintStackTrace: active: true RethrowCaughtException: active: false ReturnFromFinally: active: true ignoreLabeled: true SwallowedException: active: true ignoredExceptionTypes: - InterruptedException - NumberFormatException - ParseException - MalformedURLException allowedExceptionNameRegex: '_|(ignore|expected).*' ThrowingExceptionFromFinally: active: false ThrowingExceptionInMain: active: true ThrowingExceptionsWithoutMessageOrCause: active: true excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] exceptions: - IllegalArgumentException - IllegalStateException - IOException ThrowingNewInstanceOfSameException: active: true TooGenericExceptionCaught: active: false TooGenericExceptionThrown: active: true exceptionNames: - Error - Exception - Throwable - RuntimeException formatting: active: true android: true autoCorrect: true AnnotationOnSeparateLine: active: false AnnotationSpacing: active: true autoCorrect: true ArgumentListWrapping: active: false ChainWrapping: active: true autoCorrect: true CommentSpacing: active: false EnumEntryNameCase: active: true autoCorrect: false Filename: active: true FinalNewline: active: true autoCorrect: true insertFinalNewLine: true ImportOrdering: active: true autoCorrect: true layout: '*,java.**,javax.**,kotlin.**,^' Indentation: active: false MaximumLineLength: active: true maxLineLength: 120 ignoreBackTickedIdentifier: false 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: true autoCorrect: true NoLineBreakAfterElse: active: true autoCorrect: true NoLineBreakBeforeAssignment: active: true autoCorrect: true NoMultipleSpaces: active: false NoSemicolons: active: true autoCorrect: true NoTrailingSpaces: active: true autoCorrect: true NoUnitReturn: active: true autoCorrect: true NoUnusedImports: active: true autoCorrect: true NoWildcardImports: active: false PackageName: active: true autoCorrect: true ParameterListWrapping: active: false SpacingAroundAngleBrackets: active: true autoCorrect: true SpacingAroundColon: active: true autoCorrect: true SpacingAroundComma: active: true autoCorrect: true SpacingAroundCurly: active: true autoCorrect: true SpacingAroundDot: active: true autoCorrect: true SpacingAroundDoubleColon: active: true autoCorrect: true SpacingAroundKeyword: active: true autoCorrect: true SpacingAroundOperators: active: true autoCorrect: true SpacingAroundParens: active: true autoCorrect: true SpacingAroundRangeOperator: active: true autoCorrect: true SpacingAroundUnaryOperator: active: true autoCorrect: true SpacingBetweenDeclarationsWithAnnotations: active: false SpacingBetweenDeclarationsWithComments: active: false 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: true excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] forbiddenName: [] FunctionMaxLength: active: true excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] maximumFunctionNameLength: 30 FunctionMinLength: active: false 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: true excludes: ['buildSrc/**', '**/*.kts'] rootPackage: '' MatchingDeclarationName: active: true mustBeFirst: true MemberNameEqualsClassName: active: false NoNameShadowing: active: true NonBooleanPropertyPrefixedWithIs: active: true excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] 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: ['buildSrc/**', '**/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: true excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] maximumVariableNameLength: 64 VariableMinLength: active: false 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: false UnnecessaryTemporaryInstantiation: active: true potential-bugs: active: true CastToNullableType: active: false Deprecation: active: true DontDowncastCollectionTypes: active: true DoubleMutabilityForCollection: active: true DuplicateCaseInWhenExpression: active: true EqualsAlwaysReturnsTrueOrFalse: active: true EqualsWithHashCodeExist: active: true ExitOutsideMain: active: true ExplicitGarbageCollectionCall: active: true HasPlatformType: active: true IgnoredReturnValue: active: true restrictToAnnotatedMethods: true returnValueAnnotations: ['*.CheckReturnValue', '*.CheckResult'] ImplicitDefaultLocale: active: true ImplicitUnitReturnType: active: false InvalidRange: active: true IteratorHasNextCallsNextMethod: active: true IteratorNotThrowingNoSuchElementException: active: true LateinitUsage: active: false MapGetWithNotNullAssertionOperator: active: true MissingWhenCase: active: false NullableToStringCall: active: true RedundantElseInWhen: active: true UnconditionalJumpStatementInLoop: active: true UnnecessaryNotNullOperator: active: true UnnecessarySafeCall: active: true UnreachableCatchBlock: active: true UnreachableCode: active: true UnsafeCallOnNullableType: active: true UnsafeCast: active: true UnusedUnaryOperator: active: true UselessPostfixExpression: active: true WrongEqualsTypeParameter: active: true style: active: true ClassOrdering: active: false CollapsibleIfStatements: active: true DataClassContainsFunctions: active: false DataClassShouldBeImmutable: active: false DestructuringDeclarationWithTooManyEntries: active: false EqualsNullCall: active: true EqualsOnSignatureLine: active: true ExplicitCollectionElementAccessMethod: active: true ExplicitItLambdaParameter: active: true ExpressionBodySyntax: active: true includeLineWrapping: false ForbiddenComment: active: true values: ['TODO:', 'FIXME:', 'STOPSHIP:'] allowedPatterns: '' ForbiddenImport: active: true imports: [] forbiddenPatterns: '' ForbiddenMethodCall: active: true methods: ['kotlin.io.println', 'kotlin.io.print'] ForbiddenPublicDataClass: active: true excludes: ['**'] ignorePackages: ['*.internal', '*.internal.*'] ForbiddenVoid: active: true ignoreOverridden: true ignoreUsageInGenerics: false FunctionOnlyReturningConstant: active: true ignoreOverridableFunction: true ignoreActualFunction: true excludedFunctions: 'describeContents' excludeAnnotatedFunction: ['dagger.Provides'] LibraryCodeMustSpecifyReturnType: active: true excludes: ['**'] LibraryEntitiesShouldNotBePublic: active: true excludes: ['**'] LoopWithTooManyJumpStatements: active: true maxJumpCount: 1 MagicNumber: active: false MandatoryBracesIfStatements: active: false MandatoryBracesLoops: active: false MaxLineLength: active: true maxLineLength: 120 excludePackageStatements: true excludeImportStatements: true excludeCommentStatements: true MayBeConst: active: true ModifierOrder: active: true MultilineLambdaItParameter: active: false NestedClassesVisibility: active: true NewLineAtEndOfFile: active: true NoTabs: active: true ObjectLiteralToLambda: active: true OptionalAbstractKeyword: active: true OptionalUnit: active: true OptionalWhenBraces: active: false PreferToOverPairSyntax: active: false ProtectedMemberInFinalClass: active: true RedundantExplicitType: active: true RedundantHigherOrderMapUsage: active: true RedundantVisibilityModifierRule: active: true ReturnCount: active: false SafeCast: active: true SerialVersionUIDInSerializableClass: active: true SpacingBetweenPackageAndImports: active: true ThrowsCount: active: true max: 2 TrailingWhitespace: active: true UnderscoresInNumericLiterals: active: false UnnecessaryAbstractClass: active: false UnnecessaryAnnotationUseSiteTarget: active: true UnnecessaryApply: active: true UnnecessaryFilter: active: true UnnecessaryInheritance: active: true UnnecessaryLet: active: true UnnecessaryParentheses: active: true UntilInsteadOfRangeTo: active: true UnusedImports: active: true UnusedPrivateClass: active: true UnusedPrivateMember: active: true allowedNames: '(_|ignored|expected|serialVersionUID)' UseArrayLiteralsInAnnotations: active: true UseCheckNotNull: active: true UseCheckOrError: active: true UseDataClass: active: false UseEmptyCounterpart: active: true UseIfEmptyOrIfBlank: active: true UseIfInsteadOfWhen: active: false UseIsNullOrEmpty: active: true UseOrEmpty: active: true UseRequire: active: true UseRequireNotNull: active: true UselessCallOnNotNull: active: true UtilityClassWithPublicConstructor: active: true VarCouldBeVal: active: true WildcardImport: active: false