padding-line-between-statements
Require or disallow padding lines between statements (padding-line-between-statements)
在--fix
命令行上的选项可以自动修复一些被这条规则反映的问题。
此规则要求或不允许给定2种语句之间的空行。适当的空白行可帮助开发人员理解代码。
例如,以下配置需要变量声明和return
语句之间的空行。
/*eslint padding-line-between-statements: [
"error",
{ blankLine: "always", prev: "var", next: "return" }
]*/
function foo() {
var a = 1;
return a;
}
规则细节
如果没有配置,此规则不做任何事
配置是具有3个属性的对象; blankLine
,prev
和next
。例如,{ blankLine: "always", prev: "var", next: "return" }
意思是“变量声明和return
语句之间需要一条或多条空行”。您可以提供任意数量的配置。如果语句对匹配多个配置,则将使用最后一个匹配的配置。
{
"padding-line-between-statements": [
"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
是以下之一。
例子
此配置在所有return
语句之前需要空行,如换行前换行符规则。
配置错误
代码示例[{ blankLine: "always", prev: "*", next: "return" }]
:
/*eslint padding-line-between-statements: [
"error",
{ blankLine: "always", prev: "*", next: "return" }
]*/
function foo() {
bar(
return;
}
正确
的[{ blankLine: "always", prev: "*", next: "return" }]
配置代码示例:
/*eslint padding-line-between-statements: [
"error",
{ blankLine: "always", prev: "*", next: "return" }
]*/
function foo() {
bar(
return;
}
function foo() {
return;
}
这种配置在变量声明的每个序列之后需要空行,如newline-after-var规则。
配置错误
代码示例[{ blankLine: "always", prev: ["const", "let", "var"], next: "*"}, { blankLine: "any", prev: ["const", "let", "var"], next: ["const", "let", "var"]}]
:
/*eslint padding-line-between-statements: [
"error",
{ blankLine: "always", prev: ["const", "let", "var"], next: "*"},
{ blankLine: "any", prev: ["const", "let", "var"], next: ["const", "let", "var"]}
]*/
function foo() {
var a = 0;
bar(
}
function foo() {
let a = 0;
bar(
}
function foo() {
const a = 0;
bar(
}
正确
的[{ blankLine: "always", prev: ["const", "let", "var"], next: "*"}, { blankLine: "any", prev: ["const", "let", "var"], next: ["const", "let", "var"]}]
配置代码示例:
/*eslint padding-line-between-statements: [
"error",
{ blankLine: "always", prev: ["const", "let", "var"], next: "*"},
{ blankLine: "any", prev: ["const", "let", "var"], next: ["const", "let", "var"]}
]*/
function foo() {
var a = 0;
var b = 0;
bar(
}
function foo() {
let a = 0;
const b = 0;
bar(
}
function foo() {
const a = 0;
const b = 0;
bar(
}
这种配置在所有的指令序言之后都需要空行,例如lines-around-directive规则。
配置错误
代码示例[{ blankLine: "always", prev: "directive", next: "*" }, { blankLine: "any", prev: "directive", next: "directive" }]
:
/*eslint padding-line-between-statements: [
"error",
{ blankLine: "always", prev: "directive", next: "*" },
{ blankLine: "any", prev: "directive", next: "directive" }
]*/
"use strict";
foo(
正确
的[{ blankLine: "always", prev: "directive", next: "*" }, { blankLine: "any", prev: "directive", next: "directive" }]
配置代码示例:
/*eslint padding-line-between-statements: [
"error",
{ blankLine: "always", prev: "directive", next: "*" },
{ blankLine: "any", prev: "directive", next: "directive" }
]*/
"use strict";
"use asm";
foo(
兼容性
JSCS:
requirePaddingNewLineAfterVariableDeclaration
何时不使用它
如果您不想通知有关换行的警告,那么禁用此规则是安全的。
版
此规则在ESLint 4.0.0-beta.0中引入。