|
|
|
# Default rules: https://github.com/detekt/detekt/blob/main/detekt-core/src/main/resources/default-detekt-config.yml
|
|
|
|
|
|
|
|
style:
|
|
|
|
AlsoCouldBeApply:
|
|
|
|
active: true
|
|
|
|
OptionalWhenBraces:
|
|
|
|
active: false
|
|
|
|
CascadingCallWrapping:
|
|
|
|
active: true
|
|
|
|
includeElvis: true
|
|
|
|
DataClassShouldBeImmutable:
|
|
|
|
active: true
|
|
|
|
EqualsNullCall:
|
|
|
|
active: true
|
|
|
|
EqualsOnSignatureLine:
|
|
|
|
active: true
|
|
|
|
ExplicitCollectionElementAccessMethod:
|
|
|
|
active: true
|
|
|
|
ExplicitItLambdaParameter:
|
|
|
|
active: true
|
|
|
|
MaxLineLength:
|
|
|
|
# Default is 120
|
|
|
|
maxLineLength: 160
|
|
|
|
MagicNumber:
|
|
|
|
active: false
|
|
|
|
ReturnCount:
|
|
|
|
active: false
|
|
|
|
UnnecessaryAbstractClass:
|
|
|
|
active: true
|
|
|
|
FunctionOnlyReturningConstant:
|
|
|
|
active: false
|
|
|
|
UnusedPrivateMember:
|
|
|
|
active: true
|
|
|
|
DestructuringDeclarationWithTooManyEntries:
|
|
|
|
active: true
|
|
|
|
maxDestructuringEntries: 5
|
|
|
|
UnusedParameter:
|
|
|
|
active: true
|
|
|
|
UnnecessaryInnerClass:
|
|
|
|
active: true
|
|
|
|
UnnecessaryLet:
|
|
|
|
active: true
|
|
|
|
UnnecessaryParentheses:
|
|
|
|
active: true
|
|
|
|
allowForUnclearPrecedence: false
|
|
|
|
UntilInsteadOfRangeTo:
|
|
|
|
active: true
|
|
|
|
UnusedImports:
|
|
|
|
active: true
|
|
|
|
UnusedPrivateProperty:
|
|
|
|
active: true
|
|
|
|
ThrowsCount:
|
|
|
|
active: false
|
|
|
|
LoopWithTooManyJumpStatements:
|
|
|
|
active: true
|
|
|
|
SerialVersionUIDInSerializableClass:
|
|
|
|
active: false
|
|
|
|
ProtectedMemberInFinalClass:
|
|
|
|
active: true
|
|
|
|
UseCheckOrError:
|
|
|
|
active: true
|
|
|
|
OptionalUnit:
|
|
|
|
active: true
|
|
|
|
PreferToOverPairSyntax:
|
|
|
|
active: true
|
|
|
|
RedundantExplicitType:
|
|
|
|
active: true
|
|
|
|
TrailingWhitespace:
|
|
|
|
active: true
|
|
|
|
TrimMultilineRawString:
|
|
|
|
active: true
|
|
|
|
trimmingMethods:
|
|
|
|
- 'trimIndent'
|
|
|
|
- 'trimMargin'
|
|
|
|
UnderscoresInNumericLiterals:
|
|
|
|
active: true
|
|
|
|
acceptableLength: 4
|
|
|
|
allowNonStandardGrouping: false
|
|
|
|
UnnecessaryAnnotationUseSiteTarget:
|
|
|
|
active: true
|
|
|
|
UnnecessaryBackticks:
|
|
|
|
active: true
|
|
|
|
UnnecessaryBracesAroundTrailingLambda:
|
|
|
|
active: true
|
|
|
|
UseDataClass:
|
|
|
|
active: true
|
|
|
|
allowVars: false
|
|
|
|
UseEmptyCounterpart:
|
|
|
|
active: true
|
|
|
|
UseIfEmptyOrIfBlank:
|
|
|
|
active: true
|
|
|
|
UseLet:
|
|
|
|
active: true
|
|
|
|
UseSumOfInsteadOfFlatMapSize:
|
|
|
|
active: true
|
|
|
|
|
|
|
|
coroutines:
|
|
|
|
GlobalCoroutineUsage:
|
|
|
|
# Keep false for now.
|
|
|
|
active: false
|
|
|
|
SuspendFunSwallowedCancellation:
|
|
|
|
active: true
|
|
|
|
SuspendFunWithCoroutineScopeReceiver:
|
|
|
|
active: true
|
|
|
|
|
|
|
|
empty-blocks:
|
|
|
|
EmptyFunctionBlock:
|
|
|
|
active: false
|
|
|
|
EmptySecondaryConstructor:
|
|
|
|
active: true
|
|
|
|
|
|
|
|
potential-bugs:
|
|
|
|
ImplicitDefaultLocale:
|
|
|
|
active: true
|
|
|
|
CastNullableToNonNullableType:
|
|
|
|
active: true
|
|
|
|
CastToNullableType:
|
|
|
|
active: true
|
|
|
|
Deprecation:
|
|
|
|
active: true
|
|
|
|
DontDowncastCollectionTypes:
|
|
|
|
active: true
|
|
|
|
ElseCaseInsteadOfExhaustiveWhen:
|
|
|
|
active: true
|
|
|
|
ExitOutsideMain:
|
|
|
|
active: true
|
|
|
|
ImplicitUnitReturnType:
|
|
|
|
active: true
|
|
|
|
allowExplicitReturnType: false
|
|
|
|
MissingPackageDeclaration:
|
|
|
|
active: true
|
|
|
|
excludes: [ '**/*.kts' ]
|
|
|
|
NullCheckOnMutableProperty:
|
|
|
|
active: true
|
|
|
|
NullableToStringCall:
|
|
|
|
active: true
|
|
|
|
PropertyUsedBeforeDeclaration:
|
|
|
|
active: true
|
|
|
|
UnconditionalJumpStatementInLoop:
|
|
|
|
active: true
|
|
|
|
UnnecessaryNotNullCheck:
|
|
|
|
active: true
|
|
|
|
|
|
|
|
exceptions:
|
|
|
|
TooGenericExceptionCaught:
|
|
|
|
active: false
|
|
|
|
SwallowedException:
|
|
|
|
active: false
|
|
|
|
ThrowingExceptionsWithoutMessageOrCause:
|
|
|
|
active: true
|
|
|
|
TooGenericExceptionThrown:
|
|
|
|
active: true
|
|
|
|
InstanceOfCheckForException:
|
|
|
|
active: true
|
|
|
|
ObjectExtendsThrowable:
|
|
|
|
active: true
|
|
|
|
|
|
|
|
complexity:
|
|
|
|
TooManyFunctions:
|
|
|
|
active: false
|
|
|
|
LongMethod:
|
|
|
|
active: false
|
|
|
|
LongParameterList:
|
|
|
|
active: false
|
|
|
|
CyclomaticComplexMethod:
|
|
|
|
active: false
|
|
|
|
NestedBlockDepth:
|
|
|
|
active: false
|
|
|
|
ComplexCondition:
|
|
|
|
active: true
|
|
|
|
LargeClass:
|
|
|
|
active: true
|
|
|
|
|
|
|
|
naming:
|
|
|
|
VariableNaming:
|
|
|
|
active: true
|
|
|
|
TopLevelPropertyNaming:
|
|
|
|
active: true
|
|
|
|
FunctionNaming:
|
|
|
|
active: true
|
|
|
|
ignoreAnnotated: [ 'Composable' ]
|
|
|
|
LambdaParameterNaming:
|
|
|
|
active: true
|
|
|
|
NonBooleanPropertyPrefixedWithIs:
|
|
|
|
active: true
|
|
|
|
VariableMaxLength:
|
|
|
|
active: true
|
|
|
|
|
|
|
|
performance:
|
|
|
|
SpreadOperator:
|
|
|
|
active: false
|
|
|
|
CouldBeSequence:
|
|
|
|
active: true
|
|
|
|
UnnecessaryPartOfBinaryExpression:
|
|
|
|
active: true
|
|
|
|
|
|
|
|
# Note: all rules for `comments` are disabled by default, but I put them here to be aware of their existence
|
|
|
|
comments:
|
|
|
|
AbsentOrWrongFileLicense:
|
|
|
|
active: true
|
|
|
|
licenseTemplateFile: 'license.template'
|
|
|
|
licenseTemplateIsRegex: true
|
|
|
|
CommentOverPrivateFunction:
|
|
|
|
active: false
|
|
|
|
CommentOverPrivateProperty:
|
|
|
|
active: false
|
|
|
|
DeprecatedBlockTag:
|
|
|
|
active: true
|
|
|
|
EndOfSentenceFormat:
|
|
|
|
active: true
|
|
|
|
OutdatedDocumentation:
|
|
|
|
active: true
|
|
|
|
allowParamOnConstructorProperties: true
|
|
|
|
UndocumentedPublicClass:
|
|
|
|
active: false
|
|
|
|
UndocumentedPublicFunction:
|
|
|
|
active: false
|
|
|
|
UndocumentedPublicProperty:
|
|
|
|
active: false
|
|
|
|
|
|
|
|
Compose:
|
|
|
|
CompositionLocalAllowlist:
|
|
|
|
active: true
|
|
|
|
# You can optionally define a list of CompositionLocals that are allowed here
|
|
|
|
allowedCompositionLocals: LocalCompoundColors, LocalSnackbarDispatcher, LocalCameraPositionState, LocalTimelineItemPresenterFactories
|
|
|
|
CompositionLocalNaming:
|
|
|
|
active: true
|
|
|
|
ContentEmitterReturningValues:
|
|
|
|
active: true
|
|
|
|
# You can optionally add your own composables here
|
|
|
|
# contentEmitters: MyComposable,MyOtherComposable
|
|
|
|
ModifierComposable:
|
|
|
|
active: true
|
|
|
|
ModifierMissing:
|
|
|
|
active: true
|
|
|
|
ModifierReused:
|
|
|
|
active: true
|
|
|
|
ModifierWithoutDefault:
|
|
|
|
active: true
|
|
|
|
MultipleEmitters:
|
|
|
|
active: true
|
|
|
|
# You can optionally add your own composables here
|
|
|
|
# contentEmitters: MyComposable,MyOtherComposable
|
|
|
|
MutableParams:
|
|
|
|
active: true
|
|
|
|
ComposableNaming:
|
|
|
|
active: true
|
|
|
|
# You can optionally disable the checks in this rule for regex matches against the composable name (e.g. molecule presenters)
|
|
|
|
# allowedComposableFunctionNames: .*Presenter,.*MoleculePresenter
|
|
|
|
ComposableParamOrder:
|
|
|
|
active: true
|
|
|
|
PreviewAnnotationNaming:
|
|
|
|
active: true
|
|
|
|
PreviewPublic:
|
|
|
|
active: true
|
|
|
|
# You can optionally disable that only previews with @PreviewParameter are flagged
|
|
|
|
previewPublicOnlyIfParams: false
|
|
|
|
RememberMissing:
|
|
|
|
active: true
|
|
|
|
UnstableCollections:
|
|
|
|
active: true
|