Skip to content

An ESLint plugin regarding any and all spacing between statements.

License

Notifications You must be signed in to change notification settings

mathematic-inc/eslint-plugin-padding

Repository files navigation

eslint-plugin-padding

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.

Syntax

{
    "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:

    1. A space-delimited list of keyword (e.g. "const", "export const", or "class")

    2. 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) { }, and while (a) { }. Also matches immediately invoked function expression statements.
      • "exports" - export statements of CommonJS; e.g. module.exports = 0, module.exports.foo = 1, and exports.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 an ESTree node type, e.g. "FunctionDeclaration". You can use an AST 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.

When Not To Use It

If you don't want to notify warnings about linebreaks, then it's safe to disable this rule.

Taken with ❤️ from ESLint core

About

An ESLint plugin regarding any and all spacing between statements.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published