Detekt 3rd-party Marketplace
List of Detekt Rules, Extensions & Plugins that have been built by the community.
🙏 Please add your rulesetFind more on GitHubAll extensions
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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.
- 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
- 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
- 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
- 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
- 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
- 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
- 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
Unpublished community resources
List of Detekt Rules, Extensions that may be hidden from sight.
- ruleset
- processor
- reporter
- configvalidator
- plugin