autoCorrect: true failFast: false build: warningThreshold: 5 failThreshold: 10 weights: complexity: 2 formatting: 1 LongParameterList: 1 comments: 1 processors: active: true exclude: # - 'FunctionCountProcessor' # - 'PropertyCountProcessor' # - 'ClassCountProcessor' # - 'PackageCountProcessor' # - 'KtFileCountProcessor' console-reports: active: true exclude: # - 'ProjectStatisticsReport' # - 'ComplexityReport' # - 'NotificationReport' # - 'FindingsReport' # - 'BuildFailureReport' output-reports: active: true exclude: # - 'PlainOutputReport' # - 'XmlOutputReport' potential-bugs: active: true DuplicateCaseInWhenExpression: active: true EqualsAlwaysReturnsTrueOrFalse: active: false EqualsWithHashCodeExist: active: true WrongEqualsTypeParameter: active: false ExplicitGarbageCollectionCall: active: true UnreachableCode: active: true LateinitUsage: active: false UnsafeCallOnNullableType: active: false UnsafeCast: active: false UselessPostfixExpression: active: false performance: active: true ForEachOnRange: active: true SpreadOperator: active: true UnnecessaryTemporaryInstantiation: active: true exceptions: active: true TooGenericExceptionCatched: active: true exceptions: - ArrayIndexOutOfBoundsException - Error - Exception - IllegalMonitorStateException - IndexOutOfBoundsException - NullPointerException - RuntimeException TooGenericExceptionThrown: active: true exceptions: - Throwable - ThrowError - ThrowException - ThrowNullPointerException - ThrowRuntimeException - ThrowThrowable empty-blocks: active: true EmptyCatchBlock: active: true EmptyClassBlock: active: true EmptyDefaultConstructor: active: true EmptyDoWhileBlock: active: true EmptyElseBlock: active: true EmptyFinallyBlock: active: true EmptyForBlock: active: true EmptyFunctionBlock: active: true EmptyIfBlock: active: true EmptyInitBlock: active: true EmptySecondaryConstructor: active: true EmptyWhenBlock: active: true EmptyWhileBlock: active: true complexity: active: true LongMethod: threshold: 20 LongParameterList: threshold: 5 LargeClass: threshold: 150 ComplexMethod: threshold: 10 TooManyFunctions: threshold: 10 ComplexCondition: threshold: 3 LabeledExpression: active: false StringLiteralDuplication: active: false threshold: 2 ignoreAnnotation: true excludeStringsWithLessThan5Characters: true ignoreStringsRegex: '$^' code-smell: active: true FeatureEnvy: threshold: 0.5 weight: 0.45 base: 0.5 formatting: active: true useTabs: true Indentation: active: false indentSize: 4 ConsecutiveBlankLines: active: true autoCorrect: true MultipleSpaces: active: true autoCorrect: true SpacingAfterComma: active: true autoCorrect: true SpacingAfterKeyword: active: true autoCorrect: true SpacingAroundColon: active: true autoCorrect: true SpacingAroundCurlyBraces: active: true autoCorrect: true SpacingAroundOperator: active: true autoCorrect: true TrailingSpaces: active: true autoCorrect: true UnusedImports: active: true autoCorrect: true OptionalSemicolon: active: true autoCorrect: true OptionalUnit: active: true autoCorrect: true ExpressionBodySyntax: active: false autoCorrect: false ExpressionBodySyntaxLineBreaks: active: false autoCorrect: false OptionalReturnKeyword: active: true autoCorrect: false style: active: true ReturnCount: active: true max: 2 NewLineAtEndOfFile: active: true OptionalAbstractKeyword: active: true OptionalWhenBraces: active: false EqualsNullCall: active: false ForbiddenComment: active: true values: 'TODO:,FIXME:,STOPSHIP:' ForbiddenImport: active: false imports: '' ModifierOrder: active: true MagicNumber: active: true ignoreNumbers: '-1,0,1,2' ignoreHashCodeFunction: false ignorePropertyDeclaration: false ignoreAnnotation: false WildcardImport: active: true SafeCast: active: true MaxLineLength: active: true maxLineLength: 120 excludePackageStatements: false excludeImportStatements: false PackageNaming: active: true packagePattern: '^[a-z]+(\.[a-z][a-z0-9]*)*$' ClassNaming: active: true classPattern: '[A-Z$][a-zA-Z$]*' EnumNaming: active: true enumEntryPattern: '^[A-Z$][a-zA-Z_$]*$' FunctionNaming : active: true functionPattern: '^[a-z$][a-zA-Z$0-9]*$' FunctionMaxLength: active: false maximumFunctionNameLength: 30 FunctionMinLength: active: false minimumFunctionNameLength: 3 VariableNaming : active: true variablePattern: '^(_)?[a-z$][a-zA-Z$0-9]*$' ConstantNaming : active: true constantPattern: '^([A-Z_]*|serialVersionUID)$' VariableMaxLength: active: false maximumVariableNameLength: 30 VariableMinLength: active: false minimumVariableNameLength: 3 ProtectedMemberInFinalClass: active: false UnnecessaryParentheses: active: false comments: active: true CommentOverPrivateMethod: active: true CommentOverPrivateProperty: active: true UndocumentedPublicClass: active: false searchInNestedClass: true searchInInnerClass: true searchInInnerObject: true searchInInnerInterface: true UndocumentedPublicFunction: active: false # *experimental feature* # Migration rules can be defined in the same config file or a new one migration: active: true imports: # your.package.Class: new.package.or.Class # for example: # io.gitlab.arturbosch.detekt.api.Rule: io.gitlab.arturbosch.detekt.rule.Rule