indent-legacy
enforce consistent indentation (indent-legacy)
在--fix
命令行上的选项可以自动修复一些被这条规则反映的问题。
ESLint 4.0.0引入了对indent
规则的重写,现在报告的错误比以前的版本更多。为了简化迁移到4.0.0的过程,该indent-legacy
规则作为indent
ESLint 3.x规则的快照引入。如果在升级到4.0.0之后构建失败,则可以禁用indent
并启用indent-legacy
作为快速修复。最终,您应该切换回indent
规则以获取未来版本中的错误修正和改进。
有几个通用的指导方针需要嵌套块和语句的特定缩进,如:
function hello(indentSize, type) {
if (indentSize === 4 && type !== 'tab') {
console.log('Each next indentation will increase on 4 spaces'
}
}
这些是不同风格指南中推荐的最常见方案:
- 两个空格,不再是标签:Google,npm,Node.js,Idiomatic,Felix
规则细节
此规则强制执行一致的缩进样式。默认样式是4 spaces
。
选项
这条规则有一个混合选项:
例如,对于2格缩进:
{
"indent": ["error", 2]
}
或者用于制表符缩进:
{
"indent": ["error", "tab"]
}
此规则的默认选项的代码错误
示例:
/*eslint indent: "error"*/
if (a) {
b=c;
function foo(d) {
e=f;
}
}
具有默认选项的此规则的正确
代码示例:
/*eslint indent: "error"*/
if (a) {
b=c;
function foo(d) {
e=f;
}
}
该规则有一个对象选项:
"SwitchCase"
(默认:0)强制缩进级别case
的条款switch
声明
缩进级别表示指定缩进的倍数。例:
VariableDeclarator
设置为4的空格2
缩进将使用8个空格缩进多行变量声明。
标签
此规则的错误
代码示例包含以下"tab"
选项:
/*eslint indent: ["error", "tab"]*/
if (a) {
b=c;
function foo(d) {
e=f;
}
}
此规则的正确
代码示例包含以下"tab"
选项:
/*eslint indent: ["error", "tab"]*/
if (a) {
/*tab*/b=c;
/*tab*/function foo(d) {
/*tab*//*tab*/e=f;
/*tab*/}
}
SwitchCase
此规则的代码错误
代码示例2, { "SwitchCase": 1 }
如下:
/*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
switch(a){
case "a":
break;
case "b":
break;
}
此规则的正确
代码示例包含以下2, { "SwitchCase": 1 }
选项:
/*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
switch(a){
case "a":
break;
case "b":
break;
}
VariableDeclarator
此规则的代码错误
代码示例2, { "VariableDeclarator": 1 }
如下:
/*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
/*eslint-env es6*/
var a,
b,
c;
let a,
b,
c;
const a = 1,
b = 2,
c = 3;
此规则的正确
代码示例包含以下2, { "VariableDeclarator": 1 }
选项:
/*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
/*eslint-env es6*/
var a,
b,
c;
let a,
b,
c;
const a = 1,
b = 2,
c = 3;
此规则的正确
代码示例包含以下2, { "VariableDeclarator": 2 }
选项:
/*eslint indent: ["error", 2, { "VariableDeclarator": 2 }]*/
/*eslint-env es6*/
var a,
b,
c;
let a,
b,
c;
const a = 1,
b = 2,
c = 3;
此规则的正确
代码示例包含以下2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } }
选项:
/*eslint indent: ["error", 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } }]*/
/*eslint-env es6*/
var a,
b,
c;
let a,
b,
c;
const a = 1,
b = 2,
c = 3;
outerIIFEBody
此规则的代码错误
代码示例2, { "outerIIFEBody": 0 }
如下:
/*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
(function() {
function foo(x) {
return x + 1;
}
})(
if(y) {
console.log('foo'
}
此规则的正确
代码示例包含以下选项2, {"outerIIFEBody": 0}
:
/*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
(function() {
function foo(x) {
return x + 1;
}
})(
if(y) {
console.log('foo'
}
MemberExpression
此规则的代码错误
代码示例2, { "MemberExpression": 1 }
如下:
/*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
foo
.bar
.baz()
此规则的正确
代码示例包含以下2, { "MemberExpression": 1 }
选项:
/*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
foo
.bar
.baz(
// Any indentation is permitted in variable declarations and assignments.
var bip = aardvark.badger
.coyote;
FunctionDeclaration
此规则的错误
代码示例包含以下2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }
选项:
/*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
function foo(bar,
baz,
qux) {
qux(
}
此规则的正确
代码示例包含以下2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }
选项:
/*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
function foo(bar,
baz,
qux) {
qux(
}
此规则的错误
代码示例包含以下2, { "FunctionDeclaration": {"parameters": "first"} }
选项:
/*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
function foo(bar, baz,
qux, boop) {
qux(
}
此规则的正确
代码示例包含以下2, { "FunctionDeclaration": {"parameters": "first"} }
选项:
/*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
function foo(bar, baz,
qux, boop) {
qux(
}
FunctionExpression
此规则的错误
代码示例包含以下2, { "FunctionExpression": {"body": 1, "parameters": 2} }
选项:
/*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
var foo = function(bar,
baz,
qux) {
qux(
}
此规则的正确
代码示例包含以下2, { "FunctionExpression": {"body": 1, "parameters": 2} }
选项:
/*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
var foo = function(bar,
baz,
qux) {
qux(
}
此规则的错误
代码示例包含以下2, { "FunctionExpression": {"parameters": "first"} }
选项:
/*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
var foo = function(bar, baz,
qux, boop) {
qux(
}
此规则的正确
代码示例包含以下2, { "FunctionExpression": {"parameters": "first"} }
选项:
/*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
var foo = function(bar, baz,
qux, boop) {
qux(
}
CallExpression
此规则的错误
代码示例包含以下2, { "CallExpression": {"arguments": 1} }
选项:
/*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
foo(bar,
baz,
qux
此规则的正确
代码示例包含以下2, { "CallExpression": {"arguments": 1} }
选项:
/*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
foo(bar,
baz,
qux
此规则的错误
代码示例包含以下2, { "CallExpression": {"arguments": "first"} }
选项:
/*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
foo(bar, baz,
baz, boop, beep
此规则的正确
代码示例包含以下2, { "CallExpression": {"arguments": "first"} }
选项:
/*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
foo(bar, baz,
baz, boop, beep
ArrayExpression
此规则的错误
代码示例包含以下2, { "ArrayExpression": 1 }
选项:
/*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
var foo = [
bar,
baz,
qux
];
此规则的正确
代码示例包含以下2, { "ArrayExpression": 1 }
选项:
/*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
var foo = [
bar,
baz,
qux
];
此规则的错误
代码示例包含以下2, { "ArrayExpression": "first" }
选项:
/*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
var foo = [bar,
baz,
qux
];
此规则的正确
代码示例包含以下2, { "ArrayExpression": "first" }
选项:
/*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
var foo = [bar,
baz,
qux
];
ObjectExpression
此规则的错误
代码示例包含以下2, { "ObjectExpression": 1 }
选项:
/*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
var foo = {
bar: 1,
baz: 2,
qux: 3
};
此规则的正确
代码示例包含以下2, { "ObjectExpression": 1 }
选项:
/*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
var foo = {
bar: 1,
baz: 2,
qux: 3
};
此规则的错误
代码示例包含以下2, { "ObjectExpression": "first" }
选项:
/*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
var foo = { bar: 1,
baz: 2 };
此规则的正确
代码示例包含以下2, { "ObjectExpression": "first" }
选项:
/*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
var foo = { bar: 1,
baz: 2 };
兼容性
JSHint
:indent
版
该规则是在ESLint 4.0.0-alpha.0中引入的。