Formatting Rule Set
This rule set provides wrappers for rules implemented by ktlint - https://ktlint.github.io/.
Note: The formatting
rule set is not included in the detekt-cli or Gradle plugin.
To enable this rule set, add detektPlugins "io.gitlab.arturbosch.detekt:detekt-formatting:$version"
to your gradle dependencies
or reference the detekt-formatting
-jar with the --plugins
option
in the command line interface.
Note: Issues reported by this rule set can only be suppressed on file level (@file:Suppress("detekt.rule")
).
AnnotationOnSeparateLine
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
Configuration options:
-
indentSize
(default:4
)indentation size
AnnotationSpacing
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
ArgumentListWrapping
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
Configuration options:
-
indentSize
(default:4
)indentation size
-
maxLineLength
(default:120
) (android default:100
)maximum line length
-
ignoreRuleParameterThreshold
(default:8
)paremeter threshold to ignore rule
BackingPropertyNaming
See ktlint docs for documentation.
Active by default: No
BinaryExpressionWrapping
See ktlint docs for documentation.
Active by default: No
Configuration options:
-
maxLineLength
(default:120
) (android default:100
)maximum line length
-
indentSize
(default:4
)indentation size
BlankLineBeforeDeclaration
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
BlankLineBetweenWhenConditions
See ktlint docs for documentation.
Active by default: No
Configuration options:
-
lineBreakAfterWhenEntries
(default:true
)require line breaks after multiline entries
BlockCommentInitialStarAlignment
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
ChainMethodContinuation
See ktlint docs for documentation.
Active by default: No
Configuration options:
-
indentSize
(default:4
)indentation size
-
maxLineLength
(default:120
) (android default:100
)maximum line length
-
forceMultilineWhenChainOperatorCountGreaterOrEqualThan
(default:4
)chain operator count means multiline threshold
ChainWrapping
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
ClassName
See ktlint docs for documentation.
Active by default: No
ClassSignature
See ktlint docs for documentation.
Active by default: No
Configuration options:
-
indentSize
(default:4
)indentation size
-
maxLineLength
(default:120
) (android default:100
)maximum line length
CommentSpacing
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
CommentWrapping
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
Configuration options:
-
indentSize
(default:4
)indentation size
ConditionWrapping
See ktlint docs for documentation.
Active by default: No
Configuration options:
-
indentSize
(default:4
)indentation size
ContextReceiverMapping
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
maxLineLength
(default:120
) (android default:100
)maximum line length
-
indentSize
(default:4
)indentation size
EnumEntryNameCase
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
Aliases: EnumEntryName
Configuration options:
-
enumEntryNameCasing
(default:'upper_or_camel_cases'
)enum entry naming casing
EnumWrapping
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
Filename
See ktlint docs for documentation.
This rules overlaps with naming>MatchingDeclarationName from the standard rules, make sure to enable just one.
Active by default: Yes - Since v1.0.0
FinalNewline
See ktlint docs for documentation.
This rules overlaps with style>NewLineAtEndOfFile from the standard rules, make sure to enable just one. The pro of this rule is that it can auto-correct the issue.
Active by default: Yes - Since v1.0.0
Configuration options:
-
insertFinalNewLine
(default:true
)report absence or presence of a newline
FunKeywordSpacing
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
FunctionExpressionBody
See ktlint docs for documentation.
Active by default: No
Configuration options:
-
indentSize
(default:4
)indentation size
-
maxLineLength
(default:120
) (android default:100
)maximum line length
FunctionLiteral
See ktlint docs for documentation.
Active by default: No
Configuration options:
-
indentSize
(default:4
)indentation size
-
maxLineLength
(default:120
) (android default:100
)maximum line length
FunctionName
See ktlint docs for documentation.
Active by default: No
FunctionReturnTypeSpacing
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
Configuration options:
-
maxLineLength
(default:120
) (android default:100
)maximum line length
FunctionSignature
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
forceMultilineWhenParameterCountGreaterOrEqualThan
(default:2147483647
)parameter count means multiline threshold
-
functionBodyExpressionWrapping
(default:'default'
)indentation size
-
maxLineLength
(default:120
) (android default:100
)maximum line length
-
indentSize
(default:4
)indentation size
FunctionStartOfBodySpacing
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
FunctionTypeModifierSpacing
See ktlint docs for documentation.
Active by default: No
FunctionTypeReferenceSpacing
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
IfElseBracing
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
IfElseWrapping
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
ImportOrdering
See ktlint docs for documentation.
For defining import layout patterns see the KtLint Source Code
Active by default: Yes - Since v1.19.0
Configuration options:
-
layout
(default:'*,java.**,javax.**,kotlin.**,^'
) (android default:'*'
)the import ordering layout
Indentation
See ktlint docs for documentation.
Active by default: Yes - Since v1.19.0
Configuration options:
-
indentSize
(default:4
)indentation size
-
indentWhenArrowOnNewLine
(default:false
)indent when arrow on new line
Kdoc
See ktlint docs for documentation.
Active by default: No
KdocWrapping
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
Configuration options:
-
indentSize
(default:4
)indentation size
MaximumLineLength
See ktlint docs for documentation.
This rules overlaps with style>MaxLineLength from the standard rules, make sure to enable just one or keep them aligned.
Active by default: Yes - Since v1.0.0
Aliases: MaxLineLength
Configuration options:
-
maxLineLength
(default:120
) (android default:100
)maximum line length
-
ignoreBackTickedIdentifier
(default:false
)ignore back ticked identifier
MixedConditionOperators
See ktlint docs for documentation.
Active by default: No
ModifierListSpacing
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
ModifierOrdering
See ktlint docs for documentation.
This rules overlaps with style>ModifierOrder from the standard rules, make sure to enable just one. The pro of this rule is that it can auto-correct the issue.
Active by default: Yes - Since v1.0.0
MultiLineIfElse
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
Configuration options:
-
indentSize
(default:4
)indentation size
MultilineExpressionWrapping
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
-
functionBodyExpressionWrapping
(default:'multiline'
)function body expression wrapping
MultilineLoop
See ktlint docs for documentation.
Active by default: No
Configuration options:
-
indentSize
(default:4
)indentation size
NoBlankLineBeforeRbrace
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
NoBlankLineInList
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
NoBlankLinesInChainedMethodCalls
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
NoConsecutiveBlankLines
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
NoConsecutiveComments
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
NoEmptyClassBody
See ktlint docs for documentation.
This rules overlaps with empty-blocks>EmptyClassBlock from the standard rules, make sure to enable just one.
Active by default: Yes - Since v1.0.0
NoEmptyFile
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
NoEmptyFirstLineInClassBody
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
NoEmptyFirstLineInMethodBlock
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
NoLineBreakAfterElse
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
NoLineBreakBeforeAssignment
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
NoMultipleSpaces
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
NoSemicolons
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
NoSingleLineBlockComment
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
NoTrailingSpaces
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
NoUnitReturn
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
NoUnusedImports
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
NoWildcardImports
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
Configuration options:
-
packagesToUseImportOnDemandProperty
(default:'java.util.*,kotlinx.android.synthetic.**'
)Defines allowed wildcard imports
NullableTypeSpacing
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
PackageName
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
ParameterListSpacing
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
maxLineLength
(default:120
) (android default:100
)maximum line length
ParameterListWrapping
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
Configuration options:
-
maxLineLength
(default:120
) (android default:100
)maximum line length
-
indentSize
(default:4
)indentation size
ParameterWrapping
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
Configuration options:
-
indentSize
(default:4
)indentation size
-
maxLineLength
(default:120
) (android default:100
)maximum line length
PropertyName
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
PropertyWrapping
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
Configuration options:
-
indentSize
(default:4
)indentation size
-
maxLineLength
(default:120
) (android default:100
)maximum line length
SpacingAroundAngleBrackets
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
SpacingAroundColon
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundComma
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundCurly
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
SpacingAroundDot
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundDoubleColon
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
SpacingAroundKeyword
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundOperators
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundParens
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundRangeOperator
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundSquareBrackets
See ktlint docs for documentation.
Active by default: No
SpacingAroundUnaryOperator
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
SpacingBetweenDeclarationsWithAnnotations
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
SpacingBetweenDeclarationsWithComments
See ktlint docs for documentation.
Active by default: Yes - Since v1.22.0
SpacingBetweenFunctionNameAndOpeningParenthesis
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
StatementWrapping
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
StringTemplate
See ktlint docs for documentation.
Active by default: Yes - Since v1.0.0
StringTemplateIndent
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
TrailingCommaOnCallSite
See ktlint docs for documentation.
The default config comes from ktlint and follows these conventions:
- Kotlin coding convention recommends trailing comma encourage the use of trailing commas at the declaration site and leaves it at your discretion for the call site.
- Android Kotlin style guide does not include trailing comma usage yet.
Active by default: No
Configuration options:
-
useTrailingCommaOnCallSite
(default:true
) (android default:false
)Defines whether trailing commas are required (true) or forbidden (false) at call sites
TrailingCommaOnDeclarationSite
See ktlint docs for documentation.
The default config comes from ktlint and follows these conventions:
- Kotlin coding convention recommends trailing comma encourage the use of trailing commas at the declaration site and leaves it at your discretion for the call site.
- Android Kotlin style guide does not include trailing comma usage yet.
Active by default: No
Configuration options:
-
useTrailingCommaOnDeclarationSite
(default:true
) (android default:false
)Defines whether trailing commas are required (true) or forbidden (false) at declaration sites
TryCatchFinallySpacing
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
TypeArgumentComment
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
TypeArgumentListSpacing
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
TypeParameterComment
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
TypeParameterListSpacing
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Configuration options:
-
indentSize
(default:4
)indentation size
UnnecessaryParenthesesBeforeTrailingLambda
See ktlint docs for documentation.
Active by default: Yes - Since v1.23.0
ValueArgumentComment
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
ValueParameterComment
See ktlint docs for documentation.
Active by default: Yes - Since v2.0.0
Wrapping
See ktlint docs for documentation.
Active by default: Yes - Since v1.20.0
Configuration options:
-
indentSize
(default:4
)indentation size
-
maxLineLength
(default:120
) (android default:100
)maximum line length