Formatting Rule Set
This rule set provides wrappers for rules implemented by ktlint - https://ktlint.github.io/.
Note: Issues reported by this rule set can only be suppressed on file level (@file:Suppress("detekt.rule"). 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.
AnnotationOnSeparateLine
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: No
AnnotationSpacing
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: No
ArgumentListWrapping
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: No
Configuration options:
indentSize(default:4)indentation size
maxLineLength(default:120) (android default:100)maximum line length
BlockCommentInitialStarAlignment
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
ChainWrapping
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
CommentSpacing
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
CommentWrapping
See <a href="https://ktlint.github.io/#rule-indentation">ktlint-website</a> for documentation.
Active by default: No
Configuration options:
indentSize(default:4)indentation size
DiscouragedCommentLocation
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
EnumEntryNameCase
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: No
Filename
See <a href="https://ktlint.github.io">ktlint-website</a> 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 <a href="https://ktlint.github.io">ktlint-website</a> 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 <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
FunctionTypeReferenceSpacing
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
ImportOrdering
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
For defining import layout patterns see: https://github.com/pinterest/ktlint/blob/a6ca5b2edf95cc70a138a9470cfb6c4fd5d9d3ce/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/ImportOrderingRule.kt
Active by default: Yes - Since v1.19.0
Configuration options:
layout(default:'*,java.**,javax.**,kotlin.**,^') (android default:'*')the import ordering layout
Indentation
See <a href="https://ktlint.github.io/#rule-indentation">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.19.0
Configuration options:
indentSize(default:4)indentation size
(default:continuationIndentSize4)Deprecated:
continuationIndentSizeis ignored by KtLint and will have no effectcontinuation indentation size
KdocWrapping
See <a href="https://ktlint.github.io/#rule-indentation">ktlint-website</a> for documentation.
Active by default: No
Configuration options:
indentSize(default:4)indentation size
MaximumLineLength
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
This rules overlaps with style>MaxLineLength
from the standard rules, make sure to enable just one or keep them aligned. The pro of this rule is that it can
auto-correct the issue.
Active by default: Yes - Since v1.0.0
Configuration options:
maxLineLength(default:120) (android default:100)maximum line length
ignoreBackTickedIdentifier(default:false)ignore back ticked identifier
ModifierListSpacing
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
ModifierOrdering
See <a href="https://ktlint.github.io/#rule-modifier-order">ktlint-website</a> 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 <a href="https://ktlint.github.io/#rule-modifier-order">ktlint-website</a> for documentation.
Active by default: No
NoBlankLineBeforeRbrace
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
NoConsecutiveBlankLines
See <a href="https://ktlint.github.io/#rule-blank">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
NoEmptyClassBody
See <a href="https://ktlint.github.io/#rule-empty-class-body">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
NoEmptyFirstLineInMethodBlock
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: No
NoLineBreakAfterElse
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
NoLineBreakBeforeAssignment
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
NoMultipleSpaces
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
NoSemicolons
See <a href="https://ktlint.github.io/#rule-semi">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
NoTrailingSpaces
See <a href="https://ktlint.github.io/#rule-trailing-whitespaces">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
NoUnitReturn
See <a href="https://ktlint.github.io/#rule-unit-return">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
NoUnusedImports
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
NoWildcardImports
See <a href="https://ktlint.github.io/#rule-import">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
Configuration options:
packagesToUseImportOnDemandProperty(default:'java.util.*,kotlinx.android.synthetic.**')Defines allowed wildcard imports
PackageName
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: No
ParameterListWrapping
See <a href="https://ktlint.github.io">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
Configuration options:
maxLineLength(default:120) (android default:100)maximum line length
(default:indentSize4)Deprecated:
indentSizeis ignored by KtLint and will have no effectindentation size
SpacingAroundAngleBrackets
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
SpacingAroundColon
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundComma
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundCurly
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundDot
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundDoubleColon
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
SpacingAroundKeyword
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundOperators
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundParens
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundRangeOperator
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
SpacingAroundUnaryOperator
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
SpacingBetweenDeclarationsWithAnnotations
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
SpacingBetweenDeclarationsWithComments
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
StringTemplate
See <a href="https://ktlint.github.io/#rule-string-template">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.0.0
TrailingComma
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
Configuration options:
allowTrailingComma(default:false)Defines whether a trailing comma (or no trailing comma) should be enforced on the defining side
allowTrailingCommaOnCallSite(default:false)Defines whether a trailing comma (or no trailing comma) should be enforced on the calling side
TypeArgumentListSpacing
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
UnnecessaryParenthesesBeforeTrailingLambda
See <a href="https://ktlint.github.io/#rule-spacing">ktlint-website</a> for documentation.
Active by default: No
Wrapping
See <a href="https://ktlint.github.io/#rule-indentation">ktlint-website</a> for documentation.
Active by default: Yes - Since v1.20.0