Skip to main content

Detekt 3rd-party Marketplace

List of Detekt Rules, Extensions & Plugins that have been built by the community.

🙏 Please add your rulesetFind more on GitHub

All extensions

  • Faire's Detekt Rules

    • ruleset
    Source
    https://github.com/Faire/faire-detekt-rules

    A collection of opinionated rules aiming to provide project code consistency, improve readability and prevent performance issues.

    Rules

    Uses type resolution: true

    • AlwaysUseIsTrueOrIsFalse
    • DoNotAccessVisibleForTesting
    • DoNotSplitByRegex
    • DoNotUseDirectReceiverReferenceInsideWith
    • DoNotUseHasSizeForEmptyListInAssert
    • DoNotUseIsEqualToWhenArgumentIsOne
    • DoNotUseIsEqualToWhenArgumentIsZero
    • DoNotUsePropertyAccessInAssert
    • DoNotUseSingleOnFilter
    • DoNotUseSizePropertyInAssert
    • GetOrDefaultShouldBeReplacedWithGetOrElse
    • NoNonPrivateGlobalVariables
    • NoNullableLambdaWithDefaultNull
    • NoPairWithAmbiguousTypes
    • PreferIgnoreCase
    • PreventBannedImports
    • ReturnValueOfLetMustBeUsed
    • UseEntriesInsteadOfValuesOnEnum
    • UseFirstOrNullInsteadOfFind
    • UseMapNotNullInsteadOfFilterNotNull
    • UseOfCollectionInsteadOfEmptyCollection
    • UseSetInsteadOfListToSet

  • Hbmartin's Ruleset

    • ruleset
    Source
    https://github.com/hbmartin/hbmartin-detekt-rules

    A somewhat opinionated ruleset for Detekt, primarily intended to avoid crashes and bugs related to mutability.

    Rules

    Uses type resolution: true

    • AvoidFirstOrLastOnList
    • AvoidMutableCollections
    • AvoidVarsExceptWithDelegate
    • DontForceCast
    • MutableTypeShouldBePrivate
    • NoNotNullOperator
    • NoVarsInConstructor
    • WhenBranchSingleLineOrBraces

  • Compiler

    • ruleset
    Source
    https://github.com/BraisGabin/detekt-compiler-rules

    A ruleset that wraps the warnings and info messages of the Kotlin compiler as detekt findings..

    Rules

    Uses type resolution: true

    • CompilerInfo
    • CompilerWarning

  • Compose by appKODE

    • ruleset
    Source
    https://github.com/appKODE/detekt-rules-compose

    A set of detekt rules to help prevent common errors in projects using Jetpack Compose.

    Rules

    Uses type resolution: false

    • ComposableEventParameterNaming
    • ComposableParametersOrdering
    • ComposeFunctionName
    • MissingModifierDefaultValue
    • ModifierDefaultValue
    • ModifierHeightWithText
    • ModifierParameterPosition
    • PublicComposablePreview
    • ReusedModifierInstance
    • TopLevelComposableFunctions
    • UnnecessaryEventHandlerParameter

  • Jetpack Compose Rules

    • ruleset
    Source
    https://mrmans0n.github.io/compose-rules/

    Static checks to aid with a healthy adoption of Jetpack Compose.

    Rules

    Uses type resolution: false

    • CompositionLocalAllowlist
    • ContentEmitterReturningValues
    • ModifierComposable
    • ModifierMissing
    • ModifierReused
    • ModifierWithoutDefault
    • MultipleContentEmitters
    • MutableParameters
    • Naming
    • ParameterOrder
    • PreviewNaming
    • PreviewPublic
    • RememberMissing
    • UnstableCollections
    • ViewModelForwarding
    • ViewModelInjection

  • Detekt Rule Authors

    • ruleset
    Source
    https://detekt.dev/docs/next/rules/ruleauthors

    The rule authors ruleset provides rules that ensures good practices when writing detekt rules.

    Rules

    Uses type resolution: true

    • UseEntityAtName
    • ViolatesTypeResolutionRequirements

  • Doist detekt-rules

    • ruleset
    Source
    https://github.com/Doist/detekt-rules

    This repository contains custom detekt rules based on Doist internal coding conventions.

    Rules

    Uses type resolution: false

    • ConsistentWhenEntries
    • MutableObservablePropertyIsPrivate
    • NoBlankNewLineAfterClassHeader
    • NoNotNullOperator
    • SingleLineWhenEntryExpressionsAreWrapped
    • TodoPattern

  • GitLab Report

    • reporter
    Source
    https://gitlab.com/cromefire/detekt-gitlab-report

    A reporter to export detekt findings to GitLab Code Quality (and other code climate compatible tools). This is designed for use with GitLab, but should also work fine with everything else that accepts the code climate format.

  • Hint

    • plugin
    • ruleset
    Source
    https://mkohm.github.io/detekt-hint/

    A ruleset to implement detection of violation of programming principles. detekt-hint offers also instructions on how to integrate with Danger and GitHub Actions

    Rules

    Uses type resolution: true

    • InterfaceSegregationPrinciple
    • LackOfCohesionMethods
    • OpenClosedPrinciple
    • UseCompositionInsteadOfInheritance

  • UseInvokeForOperator

    • ruleset
    Source
    https://github.com/Kiolk/Detekt-rules

    This set contains rules that help to improve readability and to keep a single project-wide convention. UseInvokeForOperater rule detects cases when using invoke expression instead of a direct call with round brackets. The Invoke operator makes code more readable and the rule helps keeping it.

    Rules

    Uses type resolution: true

    • UseInvokeForOperator

  • ktlint

    • ruleset
    Source
    https://detekt.dev/docs/next/rules/formatting

    This rule set provides wrappers for rules implemented by ktlint.

    Rules

    Uses type resolution: false

    • AnnotationOnSeparateLine
    • AnnotationSpacing
    • ArgumentListWrapping
    • BlockCommentInitialStarAlignment
    • ChainWrapping
    • CommentSpacing
    • CommentWrapping
    • DiscouragedCommentLocation
    • EnumEntryNameCase
    • Filename
    • FinalNewline
    • FunKeywordSpacing
    • FunctionReturnTypeSpacing
    • FunctionSignature
    • FunctionStartOfBodySpacing
    • FunctionTypeReferenceSpacing
    • ImportOrdering
    • Indentation
    • KdocWrapping
    • MaximumLineLength
    • ModifierListSpacing
    • ModifierOrdering
    • MultiLineIfElse
    • NoBlankLineBeforeRbrace
    • NoBlankLinesInChainedMethodCalls
    • NoConsecutiveBlankLines
    • NoEmptyClassBody
    • NoEmptyFirstLineInMethodBlock
    • NoLineBreakAfterElse
    • NoLineBreakBeforeAssignment
    • NoMultipleSpaces
    • NoSemicolons
    • NoTrailingSpaces
    • NoUnitReturn
    • NoUnusedImports
    • NoWildcardImports
    • NullableTypeSpacing
    • PackageName
    • ParameterListSpacing
    • ParameterListWrapping
    • SpacingAroundAngleBrackets
    • SpacingAroundColon
    • SpacingAroundComma
    • SpacingAroundCurly
    • SpacingAroundDot
    • SpacingAroundDoubleColon
    • SpacingAroundKeyword
    • SpacingAroundOperators
    • SpacingAroundParens
    • SpacingAroundRangeOperator
    • SpacingAroundUnaryOperator
    • SpacingBetweenDeclarationsWithAnnotations
    • SpacingBetweenDeclarationsWithComments
    • SpacingBetweenFunctionNameAndOpeningParenthesis
    • StringTemplate
    • TrailingCommaOnCallSite
    • TrailingCommaOnDeclarationSite
    • TypeArgumentListSpacing
    • TypeParameterListSpacing
    • UnnecessaryParenthesesBeforeTrailingLambda
    • Wrapping

  • Kure

    • ruleset
    Source
    https://github.com/neeffect/kure-potlin

    The purpose of this ruleset for functional programming is to report the potential use of impure language elements in kotlin code.

    Rules

    Uses type resolution: true

    • AbstractClassDefinition
    • BranchStatement
    • ClassDefinition
    • LoopDefinition
    • MissingElse
    • MutableCollections
    • ReturnStatement
    • ReturnUnit
    • ThrowExpression
    • VariableDefinition

  • Library Authors

    • ruleset
    Source
    https://detekt.dev/docs/next/rules/libraries

    Rules in this rule set report issues related to libraries API exposure.

    Rules

    Uses type resolution: true

    • ForbiddenPublicDataClass
    • LibraryCodeMustSpecifyReturnType
    • LibraryEntitiesShouldNotBePublic

  • Operator

    • ruleset
    Source
    https://github.com/colematthew4/detekt-operator

    Rules to prefer expressions over named functions for kotlin operators.

    Rules

    Uses type resolution: false

    • PreferArithmeticSymbolSyntax
    • PreferBracketAccessorOverFunctionSyntax
    • PreferInOverContainsSyntax
    • PreferUnaryPrefixOverFunctionSyntax
    • PreferUnaryPostfixOverFunctionSyntax

  • Verify Implementation

    • ruleset
    Source
    https://github.com/cph-cachet/detekt-verify-implementation

    A ruleset which enables verifying whether concrete classes are implemented as specified according to annotations applied to base types.

    Rules

    Uses type resolution: true

    • DataClass
    • Immutable