lines-around-comment
注释周围需要空行
此规则报告的一些问题可通过 --fix
命令行选项自动修复
此规则在 ESLint v8.53.0 中已弃用。请在 @stylistic/eslint-plugin-js
中使用 相应的规则。
¥This rule was deprecated in ESLint v8.53.0. Please use the corresponding rule in @stylistic/eslint-plugin-js
.
许多风格指南要求在注释之前或之后有空行。这些规则的主要目标是使注释更易于阅读并提高代码的可读性。
¥Many style guides require empty lines before or after comments. The primary goal of these rules is to make the comments easier to read and improve readability of the code.
规则详情
¥Rule Details
此规则要求在注释之前和/或之后有空行。它可以分别为块 (/*
) 和行 (//
) 注释启用。此规则不适用于与代码出现在同一行的注释,并且不需要在文件的开头或结尾处有空行。
¥This rule requires empty lines before and/or after comments. It can be enabled separately for both block (/*
) and line (//
) comments. This rule does not apply to comments that appear on the same line as code and does not require empty lines at the beginning or end of a file.
选项
¥Options
此规则有一个对象选项:
¥This rule has an object option:
-
"beforeBlockComment": true
(默认)在块注释之前需要一个空行¥
"beforeBlockComment": true
(default) requires an empty line before block comments -
"afterBlockComment": true
需要在块注释后有一个空行¥
"afterBlockComment": true
requires an empty line after block comments -
"beforeLineComment": true
需要在行注释前有一个空行¥
"beforeLineComment": true
requires an empty line before line comments -
"afterLineComment": true
需要在行注释后有一个空行¥
"afterLineComment": true
requires an empty line after line comments -
"allowBlockStart": true
允许注释出现在块语句、函数体、类、switch 语句和类静态块的开头¥
"allowBlockStart": true
allows comments to appear at the start of block statements, function bodies, classes, switch statements, and class static blocks -
"allowBlockEnd": true
允许注释出现在块语句、函数体、类、switch 语句和类静态块的末尾¥
"allowBlockEnd": true
allows comments to appear at the end of block statements, function bodies, classes, switch statements, and class static blocks -
"allowObjectStart": true
允许注释出现在对象字面量的开头¥
"allowObjectStart": true
allows comments to appear at the start of object literals -
"allowObjectEnd": true
允许注释出现在对象字面量的末尾¥
"allowObjectEnd": true
allows comments to appear at the end of object literals -
"allowArrayStart": true
允许注释出现在数组字面量的开头¥
"allowArrayStart": true
allows comments to appear at the start of array literals -
"allowArrayEnd": true
允许注释出现在数组字面量的末尾¥
"allowArrayEnd": true
allows comments to appear at the end of array literals -
"allowClassStart": true
允许注释出现在类开始时¥
"allowClassStart": true
allows comments to appear at the start of classes -
"allowClassEnd": true
允许注释出现在类结束时¥
"allowClassEnd": true
allows comments to appear at the end of classes -
"applyDefaultIgnorePatterns"
启用或禁用规则忽略的默认注释模式¥
"applyDefaultIgnorePatterns"
enables or disables the default comment patterns to be ignored by the rule -
规则将忽略
"ignorePattern"
个自定义模式¥
"ignorePattern"
custom patterns to be ignored by the rule -
"afterHashbangComment": true
需要在 hashbang 注释后有一个空行¥
"afterHashbangComment": true
requires an empty line after hashbang comments
beforeBlockComment
使用默认 { "beforeBlockComment": true }
选项的此规则的错误代码示例:
¥Examples of incorrect code for this rule with the default { "beforeBlockComment": true }
option:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true }]*/
var night = "long";
/* what a great and wonderful day */
var day = "great"
使用默认 { "beforeBlockComment": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the default { "beforeBlockComment": true }
option:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true }]*/
var night = "long";
/* what a great and wonderful day */
var day = "great"
afterBlockComment
使用 { "afterBlockComment": true }
选项的此规则的错误代码示例:
¥Examples of incorrect code for this rule with the { "afterBlockComment": true }
option:
/*eslint lines-around-comment: ["error", { "afterBlockComment": true }]*/
var night = "long";
/* what a great and wonderful day */
var day = "great"
使用 { "afterBlockComment": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "afterBlockComment": true }
option:
/*eslint lines-around-comment: ["error", { "afterBlockComment": true }]*/
var night = "long";
/* what a great and wonderful day */
var day = "great"
beforeLineComment
使用 { "beforeLineComment": true }
选项的此规则的错误代码示例:
¥Examples of incorrect code for this rule with the { "beforeLineComment": true }
option:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true }]*/
var night = "long";
// what a great and wonderful day
var day = "great"
使用 { "beforeLineComment": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "beforeLineComment": true }
option:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true }]*/
var night = "long";
// what a great and wonderful day
var day = "great"
afterLineComment
使用 { "afterLineComment": true }
选项的此规则的错误代码示例:
¥Examples of incorrect code for this rule with the { "afterLineComment": true }
option:
/*eslint lines-around-comment: ["error", { "afterLineComment": true }]*/
var night = "long";
// what a great and wonderful day
var day = "great"
使用 { "afterLineComment": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "afterLineComment": true }
option:
/*eslint lines-around-comment: ["error", { "afterLineComment": true }]*/
var night = "long";
// what a great and wonderful day
var day = "great"
allowBlockStart
使用 { "beforeLineComment": true, "allowBlockStart": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "beforeLineComment": true, "allowBlockStart": true }
options:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true, "allowBlockStart": true }]*/
function foo(){
// what a great and wonderful day
var day = "great"
return day;
}
if (bar) {
// what a great and wonderful day
foo();
}
class C {
// what a great and wonderful day
method() {
// what a great and wonderful day
foo();
}
static {
// what a great and wonderful day
foo();
}
}
使用 { "beforeBlockComment": true, "allowBlockStart": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "beforeBlockComment": true, "allowBlockStart": true }
options:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true, "allowBlockStart": true }]*/
function foo(){
/* what a great and wonderful day */
var day = "great"
return day;
}
if (bar) {
/* what a great and wonderful day */
foo();
}
class C {
/* what a great and wonderful day */
method() {
/* what a great and wonderful day */
foo();
}
static {
/* what a great and wonderful day */
foo();
}
}
switch (foo) {
/* what a great and wonderful day */
case 1:
bar();
break;
}
allowBlockEnd
使用 { "afterLineComment": true, "allowBlockEnd": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "afterLineComment": true, "allowBlockEnd": true }
option:
/*eslint lines-around-comment: ["error", { "afterLineComment": true, "allowBlockEnd": true }]*/
function foo(){
var day = "great"
return day;
// what a great and wonderful day
}
if (bar) {
foo();
// what a great and wonderful day
}
class C {
method() {
foo();
// what a great and wonderful day
}
static {
foo();
// what a great and wonderful day
}
// what a great and wonderful day
}
使用 { "afterBlockComment": true, "allowBlockEnd": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "afterBlockComment": true, "allowBlockEnd": true }
option:
/*eslint lines-around-comment: ["error", { "afterBlockComment": true, "allowBlockEnd": true }]*/
function foo(){
var day = "great"
return day;
/* what a great and wonderful day */
}
if (bar) {
foo();
/* what a great and wonderful day */
}
class C {
method() {
foo();
/* what a great and wonderful day */
}
static {
foo();
/* what a great and wonderful day */
}
/* what a great and wonderful day */
}
switch (foo) {
case 1:
bar();
break;
/* what a great and wonderful day */
}
allowClassStart
使用 { "beforeLineComment": true, "allowClassStart": false }
选项的此规则的错误代码示例:
¥Examples of incorrect code for this rule with the { "beforeLineComment": true, "allowClassStart": false }
option:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true, "allowClassStart": false }]*/
class foo {
// what a great and wonderful day
day() {}
};
使用 { "beforeLineComment": true, "allowClassStart": false }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "beforeLineComment": true, "allowClassStart": false }
option:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true, "allowClassStart": false }]*/
class foo {
// what a great and wonderful day
day() {}
};
使用 { "beforeLineComment": true, "allowClassStart": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "beforeLineComment": true, "allowClassStart": true }
option:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true, "allowClassStart": true }]*/
class foo {
// what a great and wonderful day
day() {}
};
使用 { "beforeBlockComment": true, "allowClassStart": false }
选项的此规则的错误代码示例:
¥Examples of incorrect code for this rule with the { "beforeBlockComment": true, "allowClassStart": false }
option:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true, "allowClassStart": false }]*/
class foo {
/* what a great and wonderful day */
day() {}
};
使用 { "beforeBlockComment": true, "allowClassStart": false }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "beforeBlockComment": true, "allowClassStart": false }
option:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true, "allowClassStart": false }]*/
class foo {
/* what a great and wonderful day */
day() {}
};
使用 { "beforeBlockComment": true, "allowClassStart": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "beforeBlockComment": true, "allowClassStart": true }
option:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true, "allowClassStart": true }]*/
class foo {
/* what a great and wonderful day */
day() {}
};
allowClassEnd
使用 { "afterLineComment": true, "allowClassEnd": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "afterLineComment": true, "allowClassEnd": true }
option:
/*eslint lines-around-comment: ["error", { "afterLineComment": true, "allowClassEnd": true }]*/
class foo {
day() {}
// what a great and wonderful day
};
使用 { "afterBlockComment": true, "allowClassEnd": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "afterBlockComment": true, "allowClassEnd": true }
option:
/*eslint lines-around-comment: ["error", { "afterBlockComment": true, "allowClassEnd": true }]*/
class foo {
day() {}
/* what a great and wonderful day */
};
allowObjectStart
使用 { "beforeLineComment": true, "allowObjectStart": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "beforeLineComment": true, "allowObjectStart": true }
option:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true, "allowObjectStart": true }]*/
var foo = {
// what a great and wonderful day
day: "great"
};
const {
// what a great and wonderful day
foo: someDay
} = {foo: "great"};
const {
// what a great and wonderful day
day
} = {day: "great"};
使用 { "beforeBlockComment": true, "allowObjectStart": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "beforeBlockComment": true, "allowObjectStart": true }
option:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true, "allowObjectStart": true }]*/
var foo = {
/* what a great and wonderful day */
day: "great"
};
const {
/* what a great and wonderful day */
foo: someDay
} = {foo: "great"};
const {
/* what a great and wonderful day */
day
} = {day: "great"};
allowObjectEnd
使用 { "afterLineComment": true, "allowObjectEnd": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "afterLineComment": true, "allowObjectEnd": true }
option:
/*eslint lines-around-comment: ["error", { "afterLineComment": true, "allowObjectEnd": true }]*/
var foo = {
day: "great"
// what a great and wonderful day
};
const {
foo: someDay
// what a great and wonderful day
} = {foo: "great"};
const {
day
// what a great and wonderful day
} = {day: "great"};
使用 { "afterBlockComment": true, "allowObjectEnd": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "afterBlockComment": true, "allowObjectEnd": true }
option:
/*eslint lines-around-comment: ["error", { "afterBlockComment": true, "allowObjectEnd": true }]*/
var foo = {
day: "great"
/* what a great and wonderful day */
};
const {
foo: someDay
/* what a great and wonderful day */
} = {foo: "great"};
const {
day
/* what a great and wonderful day */
} = {day: "great"};
allowArrayStart
使用 { "beforeLineComment": true, "allowArrayStart": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "beforeLineComment": true, "allowArrayStart": true }
option:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true, "allowArrayStart": true }]*/
var day = [
// what a great and wonderful day
"great",
"wonderful"
];
const [
// what a great and wonderful day
someDay
] = ["great", "not great"];
使用 { "beforeBlockComment": true, "allowArrayStart": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "beforeBlockComment": true, "allowArrayStart": true }
option:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true, "allowArrayStart": true }]*/
var day = [
/* what a great and wonderful day */
"great",
"wonderful"
];
const [
/* what a great and wonderful day */
someDay
] = ["great", "not great"];
allowArrayEnd
使用 { "afterLineComment": true, "allowArrayEnd": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "afterLineComment": true, "allowArrayEnd": true }
option:
/*eslint lines-around-comment: ["error", { "afterLineComment": true, "allowArrayEnd": true }]*/
var day = [
"great",
"wonderful"
// what a great and wonderful day
];
const [
someDay
// what a great and wonderful day
] = ["great", "not great"];
使用 { "afterBlockComment": true, "allowArrayEnd": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "afterBlockComment": true, "allowArrayEnd": true }
option:
/*eslint lines-around-comment: ["error", { "afterBlockComment": true, "allowArrayEnd": true }]*/
var day = [
"great",
"wonderful"
/* what a great and wonderful day */
];
const [
someDay
/* what a great and wonderful day */
] = ["great", "not great"];
ignorePattern
默认情况下,此规则会忽略以以下单词开头的注释:eslint
, jshint
, jslint
, istanbul
, global
, exported
, jscs
.
¥By default this rule ignores comments starting with the following words: eslint
, jshint
, jslint
, istanbul
, global
, exported
, jscs
.
此规则的正确代码示例:
¥Examples of correct code for this rule:
/*eslint lines-around-comment: ["error"]*/
foo();
/* jshint mentioned in this comment */
bar();
要忽略默认值之外的更多注释,请将 ignorePattern
选项设置为将传递给 RegExp
构造函数 的字符串模式。
¥To ignore more comments in addition to the defaults, set the ignorePattern
option to a string pattern that will be passed to the RegExp
constructor.
ignorePattern
选项的正确代码示例:
¥Examples of correct code for the ignorePattern
option:
/*eslint lines-around-comment: ["error", { "ignorePattern": "pragma" }] */
foo();
/* jshint mentioned in this comment */
bar();
foo();
/* a valid comment using pragma in it */
ignorePattern
选项的错误代码示例:
¥Examples of incorrect code for the ignorePattern
option:
/*eslint lines-around-comment: ["error", { "ignorePattern": "pragma" }] */
1 + 1;
/* something else */
applyDefaultIgnorePatterns
即使提供了 ignorePattern
,也会应用默认忽略模式。如果要省略默认模式,请将此选项设置为 false
。
¥Default ignore patterns are applied even when ignorePattern
is provided. If you want to omit default patterns, set this option to false
.
{ "applyDefaultIgnorePatterns": false }
选项的正确代码示例:
¥Examples of correct code for the { "applyDefaultIgnorePatterns": false }
option:
/*eslint lines-around-comment: ["error", { "ignorePattern": "pragma", applyDefaultIgnorePatterns: false }] */
foo();
/* a valid comment using pragma in it */
{ "applyDefaultIgnorePatterns": false }
选项的错误代码示例:
¥Examples of incorrect code for the { "applyDefaultIgnorePatterns": false }
option:
/*eslint lines-around-comment: ["error", { "applyDefaultIgnorePatterns": false }] */
foo();
/* jshint mentioned in comment */
afterHashbangComment
使用 { "afterHashbangComment": true }
选项的此规则的错误代码示例:
¥Examples of incorrect code for this rule with the { "afterHashbangComment": true }
option:
#!foo
var day = "great"
/*eslint lines-around-comment: ["error", { "afterHashbangComment": true }] */
使用 { "afterHashbangComment": true }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "afterHashbangComment": true }
option:
#!foo
var day = "great"
/*eslint lines-around-comment: ["error", { "afterHashbangComment": true }] */
何时不使用
¥When Not To Use It
许多人喜欢简洁的代码风格,并且不介意与代码冲突的注释。如果你属于该类别,则此规则不适合你。
¥Many people enjoy a terser code style and don’t mind comments bumping up against code. If you fall into that category this rule is not for you.
相关规则
版本
此规则是在 ESLint v0.22.0 中引入。