aboutsummaryrefslogtreecommitdiff
path: root/detekt.yml
diff options
context:
space:
mode:
Diffstat (limited to 'detekt.yml')
-rw-r--r--detekt.yml241
1 files changed, 200 insertions, 41 deletions
diff --git a/detekt.yml b/detekt.yml
index 889dba9c..14960490 100644
--- a/detekt.yml
+++ b/detekt.yml
@@ -1,24 +1,3 @@
-autoCorrect: true
-failFast: false
-
-test-pattern: # Configure exclusions for test sources
- active: true
- patterns: # Test file regexes
- - '.*/test/.*'
- - '.*Test.kt'
- - '.*Spec.kt'
- exclude-rule-sets:
- - 'comments'
- exclude-rules:
- - 'NamingRules'
- - 'WildcardImport'
- - 'MagicNumber'
- - 'MaxLineLength'
- - 'LateinitUsage'
- - 'StringLiteralDuplication'
- - 'SpreadOperator'
- - 'TooManyFunctions'
-
build:
maxIssues: 10
weights:
@@ -45,22 +24,16 @@ console-reports:
# - 'FindingsReport'
# - 'BuildFailureReport'
-output-reports:
- active: true
- exclude:
- # - 'HtmlOutputReport'
- # - 'PlainOutputReport'
- # - 'XmlOutputReport'
-
comments:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
CommentOverPrivateFunction:
active: false
CommentOverPrivateProperty:
active: false
EndOfSentenceFormat:
active: false
- endOfSentenceFormat: ([.?!][ \t\n\r\f<])|([.?!]$)
+ endOfSentenceFormat: ([.?!][ \t\n\r\f<])|([.?!:]$)
UndocumentedPublicClass:
active: false
searchInNestedClass: true
@@ -83,18 +56,20 @@ complexity:
active: true
threshold: 10
ignoreSingleWhenExpression: false
+ ignoreSimpleWhenEntries: false
LabeledExpression:
active: false
+ ignoredLabels: ""
LargeClass:
active: true
- threshold: 150
+ threshold: 600
LongMethod:
- active: true
- threshold: 20
+ active: false
+ threshold: 60
LongParameterList:
- active: true
+ active: false
threshold: 6
- ignoreDefaultParameters: true
+ ignoreDefaultParameters: false
MethodOverloading:
active: false
threshold: 6
@@ -103,23 +78,28 @@ complexity:
threshold: 4
StringLiteralDuplication:
active: false
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
threshold: 3
ignoreAnnotation: true
excludeStringsWithLessThan5Characters: true
ignoreStringsRegex: '$^'
TooManyFunctions:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
thresholdInFiles: 11
thresholdInClasses: 11
thresholdInInterfaces: 11
thresholdInObjects: 11
thresholdInEnums: 11
+ ignoreDeprecated: false
+ ignorePrivate: false
+ ignoreOverridden: false
empty-blocks:
active: true
EmptyCatchBlock:
active: true
- allowedExceptionNameRegex: "^(ignore|expected).*"
+ allowedExceptionNameRegex: "^(_|(ignore|expected).*)"
EmptyClassBlock:
active: true
EmptyDefaultConstructor:
@@ -134,6 +114,7 @@ empty-blocks:
active: true
EmptyFunctionBlock:
active: true
+ ignoreOverriddenFunctions: false
EmptyIfBlock:
active: true
EmptyInitBlock:
@@ -154,6 +135,7 @@ exceptions:
methodNames: 'toString,hashCode,equals,finalize'
InstanceOfCheckForException:
active: false
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
NotImplementedDeclaration:
active: false
PrintStackTrace:
@@ -164,6 +146,7 @@ exceptions:
active: false
SwallowedException:
active: false
+ ignoredExceptionTypes: 'InterruptedException,NumberFormatException,ParseException,MalformedURLException'
ThrowingExceptionFromFinally:
active: false
ThrowingExceptionInMain:
@@ -175,6 +158,7 @@ exceptions:
active: false
TooGenericExceptionCaught:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
exceptionNames:
- ArrayIndexOutOfBoundsException
- Error
@@ -184,6 +168,7 @@ exceptions:
- IndexOutOfBoundsException
- RuntimeException
- Throwable
+ allowedExceptionNameRegex: "^(_|(ignore|expected).*)"
TooGenericExceptionThrown:
active: true
exceptionNames:
@@ -192,27 +177,144 @@ exceptions:
- Throwable
- RuntimeException
+formatting:
+ active: true
+ android: false
+ autoCorrect: true
+ ChainWrapping:
+ active: true
+ autoCorrect: true
+ CommentSpacing:
+ active: true
+ autoCorrect: true
+ Filename:
+ active: true
+ FinalNewline:
+ active: true
+ autoCorrect: true
+ ImportOrdering:
+ active: false
+ Indentation:
+ active: true
+ autoCorrect: true
+ indentSize: 4
+ continuationIndentSize: 4
+ MaximumLineLength:
+ active: true
+ maxLineLength: 120
+ ModifierOrdering:
+ active: true
+ autoCorrect: true
+ NoBlankLineBeforeRbrace:
+ active: true
+ autoCorrect: true
+ NoConsecutiveBlankLines:
+ active: true
+ autoCorrect: true
+ NoEmptyClassBody:
+ active: true
+ autoCorrect: true
+ NoItParamInMultilineLambda:
+ active: false
+ 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
+ autoCorrect: 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
+ SpacingAroundKeyword:
+ active: true
+ autoCorrect: true
+ SpacingAroundOperators:
+ active: true
+ autoCorrect: true
+ SpacingAroundParens:
+ active: true
+ autoCorrect: true
+ SpacingAroundRangeOperator:
+ active: true
+ autoCorrect: true
+ StringTemplate:
+ active: true
+ autoCorrect: true
+
naming:
active: true
ClassNaming:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
classPattern: '[A-Z$][a-zA-Z0-9$]*'
+ ConstructorParameterNaming:
+ active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
+ parameterPattern: '[a-z][A-Za-z0-9]*'
+ privateParameterPattern: '[a-z][A-Za-z0-9]*'
+ excludeClassPattern: '$^'
EnumNaming:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
enumEntryPattern: '^[A-Z][_a-zA-Z0-9]*'
ForbiddenClassName:
active: false
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
forbiddenName: ''
FunctionMaxLength:
active: false
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
maximumFunctionNameLength: 30
FunctionMinLength:
active: false
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
minimumFunctionNameLength: 3
FunctionNaming:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
functionPattern: '^([a-z$][a-zA-Z$0-9]*)|(`.*`)$'
excludeClassPattern: '$^'
+ ignoreOverridden: true
+ FunctionParameterNaming:
+ active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
+ parameterPattern: '[a-z][A-Za-z0-9]*'
+ excludeClassPattern: '$^'
+ ignoreOverriddenFunctions: true
+ InvalidPackageDeclaration:
+ active: false
+ rootPackage: ''
MatchingDeclarationName:
active: true
MemberNameEqualsClassName:
@@ -220,33 +322,46 @@ naming:
ignoreOverriddenFunction: true
ObjectPropertyNaming:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
+ 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
- packagePattern: '^[a-z]+(\.[a-z][a-z0-9]*)*$'
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
+ packagePattern: '^[a-z]+(\.[a-z][A-Za-z0-9]*)*$'
TopLevelPropertyNaming:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
constantPattern: '[A-Z][_A-Z0-9]*'
- propertyPattern: '[a-z][A-Za-z\d]*'
- privatePropertyPattern: '(_)?[a-z][A-Za-z0-9]*'
+ propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
+ privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*'
VariableMaxLength:
active: false
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
maximumVariableNameLength: 64
VariableMinLength:
active: false
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
minimumVariableNameLength: 1
VariableNaming:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
variablePattern: '[a-z][A-Za-z0-9]*'
privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*'
excludeClassPattern: '$^'
+ ignoreOverridden: true
performance:
active: true
+ ArrayPrimitive:
+ active: false
ForEachOnRange:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
SpreadOperator:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
UnnecessaryTemporaryInstantiation:
active: true
@@ -268,8 +383,13 @@ potential-bugs:
active: false
LateinitUsage:
active: false
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
excludeAnnotatedProperties: ""
ignoreOnClassesPattern: ""
+ MissingWhenCase:
+ active: false
+ RedundantElseInWhen:
+ active: false
UnconditionalJumpStatementInLoop:
active: false
UnreachableCode:
@@ -290,16 +410,26 @@ style:
DataClassContainsFunctions:
active: false
conversionFunctionPrefix: 'to'
+ DataClassShouldBeImmutable:
+ active: false
EqualsNullCall:
active: false
+ EqualsOnSignatureLine:
+ active: false
+ ExplicitItLambdaParameter:
+ active: false
ExpressionBodySyntax:
active: false
+ includeLineWrapping: false
ForbiddenComment:
active: true
values: 'TODO:,FIXME:,STOPSHIP:'
ForbiddenImport:
active: false
imports: ''
+ ForbiddenVoid:
+ active: false
+ ignoreOverridden: false
FunctionOnlyReturningConstant:
active: false
ignoreOverridableFunction: true
@@ -309,19 +439,24 @@ style:
maxJumpCount: 1
MagicNumber:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
ignoreNumbers: '-1,0,1,2'
- ignoreHashCodeFunction: false
+ ignoreHashCodeFunction: true
ignorePropertyDeclaration: false
ignoreConstantDeclaration: true
ignoreCompanionObjectPropertyDeclaration: true
ignoreAnnotation: false
ignoreNamedArgument: true
ignoreEnums: false
+ ignoreRanges: false
+ MandatoryBracesIfStatements:
+ active: false
MaxLineLength:
active: true
maxLineLength: 120
- excludePackageStatements: false
- excludeImportStatements: false
+ excludePackageStatements: true
+ excludeImportStatements: true
+ excludeCommentStatements: false
MayBeConst:
active: false
ModifierOrder:
@@ -338,6 +473,8 @@ style:
active: false
OptionalWhenBraces:
active: false
+ PreferToOverPairSyntax:
+ active: false
ProtectedMemberInFinalClass:
active: false
RedundantVisibilityModifierRule:
@@ -346,6 +483,8 @@ style:
active: true
max: 2
excludedFunctions: "equals"
+ excludeLabeled: false
+ excludeReturnFromLambda: true
SafeCast:
active: true
SerialVersionUIDInSerializableClass:
@@ -357,23 +496,43 @@ style:
max: 2
TrailingWhitespace:
active: false
+ UnderscoresInNumericLiterals:
+ active: false
+ acceptableDecimalLength: 5
UnnecessaryAbstractClass:
active: false
+ excludeAnnotatedClasses: "dagger.Module"
+ UnnecessaryApply:
+ active: false
UnnecessaryInheritance:
active: false
+ UnnecessaryLet:
+ active: false
UnnecessaryParentheses:
active: false
UntilInsteadOfRangeTo:
active: false
UnusedImports:
active: false
+ UnusedPrivateClass:
+ active: false
UnusedPrivateMember:
active: false
+ allowedNames: "(_|ignored|expected|serialVersionUID)"
+ UseCheckOrError:
+ active: false
UseDataClass:
active: false
excludeAnnotatedClasses: ""
+ UseRequire:
+ active: false
+ UselessCallOnNotNull:
+ active: false
UtilityClassWithPublicConstructor:
active: false
+ VarCouldBeVal:
+ active: false
WildcardImport:
active: true
+ excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
excludeImports: 'java.util.*,kotlinx.android.synthetic.*'