# lines-around-comment
评论周围需要空行
一些该规则报告的问题可以通过 --fix 命令行选项 自动修复
许多风格指南要求在评论之前或之后有空行。这些规则的主要目标是使注释更易于阅读并提高代码的可读性。
# 规则详情
此规则要求在评论之前和/或之后有空行。它可以分别为块 (/*
) 和行 (//
) 注释启用。此规则不适用于与代码出现在同一行的注释,并且不需要在文件的开头或结尾处有空行。
# 选项
此规则有一个对象选项:
"beforeBlockComment": true
(默认)在块注释之前需要一个空行"afterBlockComment": true
块注释后需要一个空行"beforeLineComment": true
要求行注释前有一个空行"afterLineComment": true
需要一行注释后空行"allowBlockStart": true
允许注释出现在块语句、函数体、类、switch 语句和类静态块的开头"allowBlockEnd": true
允许注释出现在块语句、函数体、类、switch 语句和类静态块的末尾"allowObjectStart": true
允许注释出现在对象字面量的开头"allowObjectEnd": true
允许注释出现在对象字面量的末尾"allowArrayStart": true
允许注释出现在数组字面量的开头"allowArrayEnd": true
允许注释出现在数组字面量的末尾"allowClassStart": true
允许在课程开始时出现注释"allowClassEnd": true
允许在课程结束时出现注释"applyDefaultIgnorePatterns"
启用或禁用规则忽略的默认注释模式"ignorePattern"
被规则忽略的自定义模式
# beforeBlockComment
此规则使用默认 { "beforeBlockComment": true }
选项的错误代码示例:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true }]*/
var night = "long";
/* what a great and wonderful day */
var day = "great"
此规则使用默认 { "beforeBlockComment": true }
选项的正确代码示例:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true }]*/
var night = "long";
/* what a great and wonderful day */
var day = "great"
# afterBlockComment
此规则使用 { "afterBlockComment": true }
选项的错误代码示例:
/*eslint lines-around-comment: ["error", { "afterBlockComment": true }]*/
var night = "long";
/* what a great and wonderful day */
var day = "great"
此规则使用 { "afterBlockComment": true }
选项的正确代码示例:
/*eslint lines-around-comment: ["error", { "afterBlockComment": true }]*/
var night = "long";
/* what a great and wonderful day */
var day = "great"
# beforeLineComment
此规则使用 { "beforeLineComment": true }
选项的错误代码示例:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true }]*/
var night = "long";
// what a great and wonderful day
var day = "great"
此规则使用 { "beforeLineComment": true }
选项的正确代码示例:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true }]*/
var night = "long";
// what a great and wonderful day
var day = "great"
# afterLineComment
此规则使用 { "afterLineComment": true }
选项的错误代码示例:
/*eslint lines-around-comment: ["error", { "afterLineComment": true }]*/
var night = "long";
// what a great and wonderful day
var day = "great"
此规则使用 { "afterLineComment": true }
选项的正确代码示例:
/*eslint lines-around-comment: ["error", { "afterLineComment": true }]*/
var night = "long";
// what a great and wonderful day
var day = "great"
# allowBlockStart
此规则使用 { "beforeLineComment": true, "allowBlockStart": true }
选项的正确代码示例:
/*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 }
选项的正确代码示例:
/*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 }
选项的正确代码示例:
/*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 }
选项的正确代码示例:
/*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 }
选项的错误代码示例:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true, "allowClassStart": false }]*/
class foo {
// what a great and wonderful day
day() {}
};
此规则使用 { "beforeLineComment": true, "allowClassStart": false }
选项的正确代码示例:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true, "allowClassStart": false }]*/
class foo {
// what a great and wonderful day
day() {}
};
此规则使用 { "beforeLineComment": true, "allowClassStart": true }
选项的正确代码示例:
/*eslint lines-around-comment: ["error", { "beforeLineComment": true, "allowClassStart": true }]*/
class foo {
// what a great and wonderful day
day() {}
};
此规则使用 { "beforeBlockComment": true, "allowClassStart": false }
选项的错误代码示例:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true, "allowClassStart": false }]*/
class foo {
/* what a great and wonderful day */
day() {}
};
此规则使用 { "beforeBlockComment": true, "allowClassStart": false }
选项的正确代码示例:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true, "allowClassStart": false }]*/
class foo {
/* what a great and wonderful day */
day() {}
};
此规则使用 { "beforeBlockComment": true, "allowClassStart": true }
选项的正确代码示例:
/*eslint lines-around-comment: ["error", { "beforeBlockComment": true, "allowClassStart": true }]*/
class foo {
/* what a great and wonderful day */
day() {}
};
# allowClassEnd
此规则使用 { "afterLineComment": true, "allowClassEnd": true }
选项的正确代码示例:
/*eslint lines-around-comment: ["error", { "afterLineComment": true, "allowClassEnd": true }]*/
class foo {
day() {}
// what a great and wonderful day
};
此规则使用 { "afterBlockComment": true, "allowClassEnd": true }
选项的正确代码示例:
/*eslint lines-around-comment: ["error", { "afterBlockComment": true, "allowClassEnd": true }]*/
class foo {
day() {}
/* what a great and wonderful day */
};
# allowObjectStart
此规则使用 { "beforeLineComment": true, "allowObjectStart": true }
选项的正确代码示例:
/*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 }
选项的正确代码示例:
/*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 }
选项的正确代码示例:
/*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 }
选项的正确代码示例:
/*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 }
选项的正确代码示例:
/*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 }
选项的正确代码示例:
/*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 }
选项的正确代码示例:
/*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 }
选项的正确代码示例:
/*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
。要忽略默认值之外的更多注释,请将 ignorePattern
选项设置为将传递给 RegExp 构造函数
的字符串模式。
ignorePattern
选项的正确代码示例:
/*eslint lines-around-comment: ["error"]*/
foo();
/* eslint mentioned in this comment */,
bar();
/*eslint lines-around-comment: ["error", { "ignorePattern": "pragma" }] */
foo();
/* a valid comment using pragma in it */
ignorePattern
选项的错误代码示例:
/*eslint lines-around-comment: ["error", { "ignorePattern": "pragma" }] */
1 + 1;
/* something else */
# applyDefaultIgnorePatterns
即使提供了 ignorePattern
,也会应用默认忽略模式。如果要省略默认模式,请将此选项设置为 false
。
{ "applyDefaultIgnorePatterns": false }
选项的正确代码示例:
/*eslint lines-around-comment: ["error", { "ignorePattern": "pragma", applyDefaultIgnorePatterns: false }] */
foo();
/* a valid comment using pragma in it */
{ "applyDefaultIgnorePatterns": false }
选项的错误代码示例:
/*eslint lines-around-comment: ["error", { "applyDefaultIgnorePatterns": false }] */
foo();
/* eslint mentioned in comment */
# 何时不使用
许多人喜欢简洁的代码风格,并且不介意与代码冲突的评论。如果您属于该类别,则此规则不适合您。