This rule allows/disallows spacing between two given statements. Spacing generally helps
readability. This rule is a generalized version of the
eslint/padding-line-between-statements
rule and can also be used to replace
eslint/lines-between-class-members.
{
"padding/spacing": [
"error",
{ "blankLine": LINEBREAK_TYPE, "prev": STATEMENT_TYPE, "next": STATEMENT_TYPE },
{ "blankLine": LINEBREAK_TYPE, "prev": STATEMENT_TYPE, "next": STATEMENT_TYPE },
{ "blankLine": LINEBREAK_TYPE, "prev": STATEMENT_TYPE, "next": STATEMENT_TYPE },
{ "blankLine": LINEBREAK_TYPE, "prev": STATEMENT_TYPE, "next": STATEMENT_TYPE },
...
]
}
-
LINEBREAK_TYPE
is one of the following.-
"any"
just ignores the statement pair. -
"never"
disallows blank lines. -
"always"
requires one or more blank lines. Note it does not count lines that comments exist as blank lines. te it does not count lines that comments exist as blank lines.
-
-
STATEMENT_TYPE
is one (or an array) of the following:-
A space-delimited list of keyword (e.g.
"const"
,"export const"
, or"class"
) -
One of the following:
-
"*"
is wildcard. This matches any statements. -
"block-like"
- block like statements. This matches statements that the last token is the closing brace of blocks; e.g.{ }
,if (a) { }
, andwhile (a) { }
. Also matches immediately invoked function expression statements. -
"exports"
-export
statements of CommonJS; e.g.module.exports = 0
,module.exports.foo = 1
, andexports.foo = 2
. -
"require"
-require
statements of CommonJS; e.g.const foo = require("foo")
. -
"directive"
- directive prologues. This matches directives; e.g."use strict"
. -
"iife"
- immediately invoked function expression statements. This matches calls on a function expression, optionally prefixed with a unary operator.
-
-
An object of the form
{ "type": NODE_TYPE | undefined, "keyword": KEYWORD | undefined, "inline": boolean | undefined "comment": boolean | 'line' | 'block' | undefined }
where
-
NODE_TYPE
is the name of anESTree
node type, e.g."FunctionDeclaration"
. You can use anAST explorer
to get the name of a particular node. -
KEYWORD
is one (or an array) of either (i) or (ii). -
"inline"
is a flag that denotes the node must span multiple lines (false
) or a single line (true
) -
"comment"
specifies the particular node has a comment before it. String options declare a specific type.
-
-
If you don't want to notify warnings about linebreaks, then it's safe to disable this rule.
Taken with ❤️ from ESLint core