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