154 lines
3.7 KiB
YAML
154 lines
3.7 KiB
YAML
build:
|
|
maxIssues: 0
|
|
|
|
complexity:
|
|
LongMethod:
|
|
threshold: 300
|
|
ignoreAnnotated:
|
|
- "Composable"
|
|
LongParameterList:
|
|
functionThreshold: 10
|
|
constructorThreshold: 20
|
|
ignoreDefaultParameters: true
|
|
ignoreAnnotated:
|
|
- "Composable"
|
|
TooManyFunctions:
|
|
thresholdInFiles: 30
|
|
thresholdInClasses: 100
|
|
thresholdInInterfaces: 25
|
|
thresholdInObjects: 20
|
|
thresholdInEnums: 10
|
|
ignoreAnnotatedFunctions:
|
|
- "Preview"
|
|
NestedBlockDepth:
|
|
threshold: 6
|
|
CyclomaticComplexMethod:
|
|
threshold: 60
|
|
ignoreAnnotated:
|
|
- "Composable"
|
|
ComplexCondition:
|
|
threshold: 10
|
|
LargeClass:
|
|
threshold: 2500
|
|
|
|
style:
|
|
MagicNumber:
|
|
active: false
|
|
ReturnCount:
|
|
max: 12
|
|
excludeReturnFromLambda: true
|
|
ignoreAnnotated:
|
|
- "Composable"
|
|
MaxLineLength:
|
|
maxLineLength: 140
|
|
excludeCommentStatements: true
|
|
excludePackageStatements: true
|
|
excludeImportStatements: true
|
|
excludeRawStrings: true
|
|
excludes:
|
|
- "**/build/generated/compose/resourceGenerator/**"
|
|
ForbiddenComment:
|
|
active: false
|
|
UnusedPrivateMember:
|
|
active: true
|
|
allowedNames: "(_|ignored|expected|serialVersionUID)"
|
|
ignoreAnnotated:
|
|
- "Preview"
|
|
UnusedPrivateProperty:
|
|
active: true
|
|
allowedNames: "(_|ignored|expected|serialVersionUID)"
|
|
WildcardImport:
|
|
active: true
|
|
excludeImports:
|
|
- "kotlinx.coroutines.flow.*"
|
|
- "*.resources.*"
|
|
LoopWithTooManyJumpStatements:
|
|
maxJumpCount: 3
|
|
ThrowsCount:
|
|
max: 4
|
|
UseCheckOrError:
|
|
active: false
|
|
UseRequire:
|
|
active: false
|
|
|
|
naming:
|
|
FunctionNaming:
|
|
ignoreAnnotated:
|
|
- "Composable"
|
|
# Detekt's `excludes:` REPLACES (does not merge with) the default value, so
|
|
# the default test-source exemptions must be repeated here alongside the
|
|
# generated-resources exclude.
|
|
excludes:
|
|
- "**/test/**"
|
|
- "**/androidTest/**"
|
|
- "**/commonTest/**"
|
|
- "**/jvmTest/**"
|
|
- "**/androidUnitTest/**"
|
|
- "**/androidInstrumentedTest/**"
|
|
- "**/jsTest/**"
|
|
- "**/iosTest/**"
|
|
- "**/build/generated/compose/resourceGenerator/**"
|
|
TopLevelPropertyNaming:
|
|
constantPattern: "[A-Z][A-Za-z0-9_]*"
|
|
MatchingDeclarationName:
|
|
active: false
|
|
|
|
exceptions:
|
|
TooGenericExceptionCaught:
|
|
active: true
|
|
exceptionNames:
|
|
- "RuntimeException"
|
|
- "Throwable"
|
|
allowedExceptionNameRegex: "_|(ignore|expected).*"
|
|
SwallowedException:
|
|
ignoredExceptionTypes:
|
|
- "InterruptedException"
|
|
- "MalformedURLException"
|
|
- "NumberFormatException"
|
|
- "ParseException"
|
|
allowedExceptionNameRegex: "_|(ignore|expected).*"
|
|
TooGenericExceptionThrown:
|
|
active: true
|
|
exceptionNames:
|
|
- "Error"
|
|
- "RuntimeException"
|
|
- "Throwable"
|
|
|
|
coroutines:
|
|
active: true
|
|
|
|
# detekt-koin rule overrides (defaults ship in plugin jar; buildUponDefaultConfig = true)
|
|
koin-rules:
|
|
# Scope "test hygiene" rule to test sources only; the rule's heuristic
|
|
# ("any class calling startKoin without stopKoin") incorrectly flags
|
|
# production Application classes otherwise.
|
|
MissingKoinStopInTest:
|
|
active: true
|
|
excludes:
|
|
- "**/src/main/**"
|
|
- "**/src/commonMain/**"
|
|
- "**/src/androidMain/**"
|
|
- "**/src/iosMain/**"
|
|
|
|
formatting:
|
|
Indentation:
|
|
active: false
|
|
MaximumLineLength:
|
|
active: false
|
|
NoWildcardImports:
|
|
active: false
|
|
TrailingCommaOnCallSite:
|
|
active: false
|
|
TrailingCommaOnDeclarationSite:
|
|
active: false
|
|
Wrapping:
|
|
active: false
|
|
ArgumentListWrapping:
|
|
active: false
|
|
ParameterListWrapping:
|
|
active: false
|
|
FunctionSignature:
|
|
active: false
|
|
ImportOrdering:
|
|
excludes:
|
|
- "**/build/generated/compose/resourceGenerator/**"
|