Created
August 17, 2022 14:02
-
-
Save laithnurie/0de07141813f23d7b91e3e5eacf8a216 to your computer and use it in GitHub Desktop.
Detekt rules
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
build: | |
maxIssues: 0 | |
excludeCorrectable: false | |
weights: | |
# complexity: 2 | |
# LongParameterList: 1 | |
# style: 1 | |
# comments: 1 | |
config: | |
validation: true | |
# when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]' | |
excludes: '' | |
processors: | |
active: true | |
exclude: | |
- 'DetektProgressListener' | |
# - 'FunctionCountProcessor' | |
# - 'PropertyCountProcessor' | |
# - 'ClassCountProcessor' | |
# - 'PackageCountProcessor' | |
# - 'KtFileCountProcessor' | |
console-reports: | |
active: true | |
exclude: | |
- 'ProjectStatisticsReport' | |
- 'ComplexityReport' | |
- 'NotificationReport' | |
# - 'FindingsReport' | |
- 'FileBasedFindingsReport' | |
comments: | |
active: true | |
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] | |
AbsentOrWrongFileLicense: | |
active: false | |
licenseTemplateFile: 'license.template' | |
CommentOverPrivateFunction: | |
active: false | |
CommentOverPrivateProperty: | |
active: false | |
EndOfSentenceFormat: | |
active: false | |
endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)' | |
UndocumentedPublicClass: | |
active: false | |
searchInNestedClass: true | |
searchInInnerClass: true | |
searchInInnerObject: true | |
searchInInnerInterface: true | |
UndocumentedPublicFunction: | |
active: false | |
UndocumentedPublicProperty: | |
active: false | |
complexity: | |
active: true | |
ComplexCondition: | |
active: true | |
threshold: 4 | |
ComplexInterface: | |
active: false | |
threshold: 10 | |
includeStaticDeclarations: false | |
includePrivateDeclarations: false | |
ComplexMethod: | |
active: true | |
threshold: 15 | |
ignoreSingleWhenExpression: false | |
ignoreSimpleWhenEntries: false | |
ignoreNestingFunctions: false | |
nestingFunctions: [run, let, apply, with, also, use, forEach, isNotNull, ifNull] | |
LabeledExpression: | |
active: false | |
ignoredLabels: [] | |
LargeClass: | |
active: true | |
threshold: 600 | |
LongMethod: | |
active: true | |
threshold: 200 | |
LongParameterList: | |
active: true | |
functionThreshold: 10 | |
constructorThreshold: 7 | |
ignoreDefaultParameters: true | |
ignoreDataClasses: true | |
ignoreAnnotated: [] | |
MethodOverloading: | |
active: false | |
threshold: 6 | |
NestedBlockDepth: | |
active: true | |
threshold: 4 | |
StringLiteralDuplication: | |
active: false | |
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: 30 | |
thresholdInClasses: 30 | |
thresholdInInterfaces: 30 | |
thresholdInObjects: 30 | |
thresholdInEnums: 30 | |
ignoreDeprecated: false | |
ignorePrivate: false | |
ignoreOverridden: false | |
coroutines: | |
active: true | |
GlobalCoroutineUsage: | |
active: false | |
RedundantSuspendModifier: | |
active: false | |
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: false | |
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: false | |
methodNames: [toString, hashCode, equals, finalize] | |
InstanceOfCheckForException: | |
active: false | |
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] | |
NotImplementedDeclaration: | |
active: false | |
PrintStackTrace: | |
active: false | |
RethrowCaughtException: | |
active: false | |
ReturnFromFinally: | |
active: false | |
ignoreLabeled: false | |
SwallowedException: | |
active: false | |
ignoredExceptionTypes: | |
- InterruptedException | |
- NumberFormatException | |
- ParseException | |
- MalformedURLException | |
allowedExceptionNameRegex: '_|(ignore|expected).*' | |
ThrowingExceptionFromFinally: | |
active: false | |
ThrowingExceptionInMain: | |
active: false | |
ThrowingExceptionsWithoutMessageOrCause: | |
active: false | |
exceptions: | |
- IllegalArgumentException | |
- IllegalStateException | |
- IOException | |
ThrowingNewInstanceOfSameException: | |
active: false | |
TooGenericExceptionCaught: | |
active: false | |
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] | |
exceptionNames: | |
- ArrayIndexOutOfBoundsException | |
- Error | |
- Exception | |
- IllegalMonitorStateException | |
- NullPointerException | |
- IndexOutOfBoundsException | |
- RuntimeException | |
- Throwable | |
allowedExceptionNameRegex: '_|(ignore|expected).*' | |
TooGenericExceptionThrown: | |
active: true | |
exceptionNames: | |
- Error | |
- Exception | |
- Throwable | |
- RuntimeException | |
formatting: | |
active: true | |
android: true | |
autoCorrect: true | |
AnnotationOnSeparateLine: | |
active: false | |
autoCorrect: true | |
ChainWrapping: | |
active: true | |
autoCorrect: true | |
CommentSpacing: | |
active: true | |
autoCorrect: true | |
EnumEntryNameCase: | |
active: false | |
autoCorrect: true | |
Filename: | |
active: true | |
FinalNewline: | |
active: true | |
autoCorrect: true | |
insertFinalNewLine: true | |
ImportOrdering: | |
active: false | |
autoCorrect: true | |
Indentation: | |
active: false | |
autoCorrect: true | |
indentSize: 4 | |
continuationIndentSize: 4 | |
MaximumLineLength: | |
active: true | |
maxLineLength: 120 | |
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: false | |
autoCorrect: true | |
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: false | |
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 | |
SpacingAroundDot: | |
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/**', '**/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: false | |
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] | |
forbiddenName: [] | |
FunctionMaxLength: | |
active: false | |
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] | |
maximumFunctionNameLength: 30 | |
FunctionMinLength: | |
active: false | |
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] | |
minimumFunctionNameLength: 3 | |
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: false | |
rootPackage: '' | |
MatchingDeclarationName: | |
active: true | |
mustBeFirst: true | |
MemberNameEqualsClassName: | |
active: true | |
ignoreOverridden: true | |
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: ['**/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: false | |
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] | |
maximumVariableNameLength: 64 | |
VariableMinLength: | |
active: false | |
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] | |
minimumVariableNameLength: 1 | |
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: true | |
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] | |
UnnecessaryTemporaryInstantiation: | |
active: true | |
potential-bugs: | |
active: true | |
Deprecation: | |
active: false | |
DuplicateCaseInWhenExpression: | |
active: true | |
EqualsAlwaysReturnsTrueOrFalse: | |
active: true | |
EqualsWithHashCodeExist: | |
active: true | |
ExplicitGarbageCollectionCall: | |
active: true | |
HasPlatformType: | |
active: false | |
ImplicitDefaultLocale: | |
active: false | |
InvalidRange: | |
active: true | |
IteratorHasNextCallsNextMethod: | |
active: true | |
IteratorNotThrowingNoSuchElementException: | |
active: true | |
LateinitUsage: | |
active: false | |
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] | |
excludeAnnotatedProperties: [] | |
ignoreOnClassesPattern: '' | |
MapGetWithNotNullAssertionOperator: | |
active: false | |
MissingWhenCase: | |
active: true | |
RedundantElseInWhen: | |
active: true | |
UnconditionalJumpStatementInLoop: | |
active: false | |
UnnecessaryNotNullOperator: | |
active: false | |
UnnecessarySafeCall: | |
active: false | |
UnreachableCode: | |
active: true | |
UnsafeCallOnNullableType: | |
active: true | |
UnsafeCast: | |
active: false | |
UselessPostfixExpression: | |
active: false | |
WrongEqualsTypeParameter: | |
active: true | |
style: | |
active: true | |
CollapsibleIfStatements: | |
active: false | |
DataClassContainsFunctions: | |
active: false | |
conversionFunctionPrefix: 'to' | |
DataClassShouldBeImmutable: | |
active: false | |
EqualsNullCall: | |
active: true | |
EqualsOnSignatureLine: | |
active: false | |
ExplicitCollectionElementAccessMethod: | |
active: false | |
ExplicitItLambdaParameter: | |
active: false | |
ExpressionBodySyntax: | |
active: false | |
includeLineWrapping: false | |
ForbiddenComment: | |
active: true | |
values: ['TODO:', 'FIXME:', 'STOPSHIP:'] | |
allowedPatterns: '' | |
ForbiddenImport: | |
active: false | |
imports: [] | |
forbiddenPatterns: '' | |
ForbiddenMethodCall: | |
active: false | |
methods: [] | |
ForbiddenPublicDataClass: | |
active: false | |
ignorePackages: ['*.internal', '*.internal.*'] | |
ForbiddenVoid: | |
active: false | |
ignoreOverridden: false | |
ignoreUsageInGenerics: false | |
FunctionOnlyReturningConstant: | |
active: true | |
ignoreOverridableFunction: true | |
excludedFunctions: 'describeContents' | |
excludeAnnotatedFunction: ['dagger.Provides'] | |
LibraryCodeMustSpecifyReturnType: | |
active: true | |
LoopWithTooManyJumpStatements: | |
active: true | |
maxJumpCount: 1 | |
MagicNumber: | |
active: true | |
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] | |
ignoreNumbers: ['-1', '0', '1', '2'] | |
ignoreHashCodeFunction: true | |
ignorePropertyDeclaration: false | |
ignoreLocalVariableDeclaration: false | |
ignoreConstantDeclaration: true | |
ignoreCompanionObjectPropertyDeclaration: true | |
ignoreAnnotation: false | |
ignoreNamedArgument: true | |
ignoreEnums: false | |
ignoreRanges: false | |
MandatoryBracesIfStatements: | |
active: false | |
MandatoryBracesLoops: | |
active: false | |
MaxLineLength: | |
active: true | |
maxLineLength: 120 | |
excludePackageStatements: true | |
excludeImportStatements: true | |
excludeCommentStatements: false | |
MayBeConst: | |
active: true | |
ModifierOrder: | |
active: true | |
NestedClassesVisibility: | |
active: false | |
NewLineAtEndOfFile: | |
active: true | |
NoTabs: | |
active: false | |
OptionalAbstractKeyword: | |
active: true | |
OptionalUnit: | |
active: false | |
OptionalWhenBraces: | |
active: false | |
PreferToOverPairSyntax: | |
active: false | |
ProtectedMemberInFinalClass: | |
active: true | |
RedundantExplicitType: | |
active: false | |
RedundantVisibilityModifierRule: | |
active: false | |
ReturnCount: | |
active: true | |
max: 2 | |
excludedFunctions: 'equals' | |
excludeLabeled: false | |
excludeReturnFromLambda: true | |
excludeGuardClauses: false | |
SafeCast: | |
active: true | |
SerialVersionUIDInSerializableClass: | |
active: false | |
SpacingBetweenPackageAndImports: | |
active: false | |
ThrowsCount: | |
active: true | |
max: 2 | |
TrailingWhitespace: | |
active: false | |
UnderscoresInNumericLiterals: | |
active: false | |
acceptableDecimalLength: 5 | |
UnnecessaryAbstractClass: | |
active: true | |
excludeAnnotatedClasses: ['dagger.Module'] | |
UnnecessaryAnnotationUseSiteTarget: | |
active: false | |
UnnecessaryApply: | |
active: false | |
UnnecessaryInheritance: | |
active: true | |
UnnecessaryLet: | |
active: false | |
UnnecessaryParentheses: | |
active: false | |
UntilInsteadOfRangeTo: | |
active: false | |
UnusedImports: | |
active: false | |
UnusedPrivateClass: | |
active: true | |
UnusedPrivateMember: | |
active: false | |
allowedNames: '(_|ignored|expected|serialVersionUID)' | |
UseArrayLiteralsInAnnotations: | |
active: false | |
UseCheckOrError: | |
active: false | |
UseDataClass: | |
active: false | |
excludeAnnotatedClasses: [] | |
allowVars: false | |
UseIfInsteadOfWhen: | |
active: false | |
UseRequire: | |
active: false | |
UselessCallOnNotNull: | |
active: true | |
UtilityClassWithPublicConstructor: | |
active: true | |
VarCouldBeVal: | |
active: false | |
WildcardImport: | |
active: false | |
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] | |
excludeImports: ['java.util.*', 'kotlinx.android.synthetic.*'] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment