Skip to main content

consistent-empty-lines

Enforce configured empty-line consistency between selected nodes.

Deprecated

The replacement owns maintained empty-line normalization. Translate this rule's selector-specific policy into the nearest supported Stylistic limits; its option shape is not a direct match.

Targeted pattern scope​

This rule operates on the full file text and checks for runs of empty lines.

It allows:

  • zero empty lines, or
  • exactly one empty line between non-empty lines.

It reports when it finds two or more consecutive empty lines.

What this rule reports​

This rule reports files containing consecutive blank-line runs longer than one line.

An autofix is provided and collapses each run to a single blank line.

Why this rule exists​

Extra vertical whitespace often accumulates during edits and merge conflict resolution. Enforcing a single-blank-line maximum keeps files visually dense and reduces noisy formatting diffs.

❌ Incorrect​

const first = 1;

const second = 2;

✅ Correct​

const first = 1;

const second = 2;

Behavior and migration notes​

This rule is fully autofixable (fixable: "whitespace").

Recommended rollout:

  1. Run once with --fix-dry-run to estimate churn.
  2. Apply autofix in a dedicated formatting PR.
  3. Enable as error to keep the baseline clean.

Options​

This rule has no options.

Additional examples​

function run(): void {
stepOne();

stepTwo();
}

ESLint flat config example​

import etcMisc from "eslint-plugin-etc-misc";

export default [
{
plugins: { "etc-misc": etcMisc },
rules: {
"etc-misc/consistent-empty-lines": "error",
},
},
];

When not to use it​

Disable this rule if your style guide intentionally allows multiple blank lines for sectioning or if another formatter already controls vertical spacing exactly as desired.

Package documentation​

Rule catalog ID: R005

Further reading​

Adoption resources​

  • Start at warning level in CI, then move to error after cleanup.
  • Use focused codemods/autofix batches per package or directory.