# Formatting Rule Set | Detekt
This rule set provides wrappers for rules implemented by ktlint - https://ktlint.github.io/.
Keywords: rules,formatting

Skip to main content

# 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 ktlint-website for documentation.

Active by default: No

### AnnotationSpacing​

See ktlint-website for documentation.

Active by default: No

### ArgumentListWrapping​

See ktlint-website for documentation.

Active by default: No

#### Configuration options:​

- `indentSize` (default: `4`)

  indentation size

- `maxLineLength` (default: `120`) (android default: `100`)

  maximum line length

### BlockCommentInitialStarAlignment​

See ktlint-website for documentation.

Active by default: No

### ChainWrapping​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### CommentSpacing​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### CommentWrapping​

See ktlint-website for documentation.

Active by default: No

#### Configuration options:​

- `indentSize` (default: `4`)

  indentation size

### DiscouragedCommentLocation​

See ktlint-website for documentation.

Active by default: No

### EnumEntryNameCase​

See ktlint-website for documentation.

Active by default: No

### Filename​

See ktlint-website 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-website 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-website for documentation.

Active by default: No

### FunctionTypeReferenceSpacing​

See ktlint-website for documentation.

Active by default: No

### ImportOrdering​

See ktlint-website 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-website for documentation.

Active by default: Yes - Since v1.19.0

#### Configuration options:​

- `indentSize` (default: `4`)

  indentation size

- `continuationIndentSize` (default: `4`)

  Deprecated: `continuationIndentSize` is ignored by KtLint and will have no effect

  continuation indentation size

### KdocWrapping​

See ktlint-website for documentation.

Active by default: No

#### Configuration options:​

- `indentSize` (default: `4`)

  indentation size

### MaximumLineLength​

See ktlint-website 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 ktlint-website for documentation.

Active by default: No

### ModifierOrdering​

See ktlint-website 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-website for documentation.

Active by default: No

### NoBlankLineBeforeRbrace​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### NoConsecutiveBlankLines​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### NoEmptyClassBody​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### NoEmptyFirstLineInMethodBlock​

See ktlint-website for documentation.

Active by default: No

### NoLineBreakAfterElse​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### NoLineBreakBeforeAssignment​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### NoMultipleSpaces​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### NoSemicolons​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### NoTrailingSpaces​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### NoUnitReturn​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### NoUnusedImports​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### NoWildcardImports​

See ktlint-website 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 ktlint-website for documentation.

Active by default: No

### ParameterListWrapping​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

#### Configuration options:​

- `maxLineLength` (default: `120`) (android default: `100`)

  maximum line length

- `indentSize` (default: `4`)

  Deprecated: `indentSize` is ignored by KtLint and will have no effect

  indentation size

### SpacingAroundAngleBrackets​

See ktlint-website for documentation.

Active by default: No

### SpacingAroundColon​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### SpacingAroundComma​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### SpacingAroundCurly​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### SpacingAroundDot​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### SpacingAroundDoubleColon​

See ktlint-website for documentation.

Active by default: No

### SpacingAroundKeyword​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### SpacingAroundOperators​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### SpacingAroundParens​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### SpacingAroundRangeOperator​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### SpacingAroundUnaryOperator​

See ktlint-website for documentation.

Active by default: No

### SpacingBetweenDeclarationsWithAnnotations​

See ktlint-website for documentation.

Active by default: No

### SpacingBetweenDeclarationsWithComments​

See ktlint-website for documentation.

Active by default: No

### StringTemplate​

See ktlint-website for documentation.

Active by default: Yes - Since v1.0.0

### TrailingComma​

See ktlint-website 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 ktlint-website for documentation.

Active by default: No

### UnnecessaryParenthesesBeforeTrailingLambda​

See ktlint-website for documentation.

Active by default: No

### Wrapping​

See ktlint-website for documentation.

Active by default: Yes - Since v1.20.0