diff --git a/lib/rules/array-bracket-spacing.js b/lib/rules/array-bracket-spacing.js index 2510159ee48..c2b77a641f7 100644 --- a/lib/rules/array-bracket-spacing.js +++ b/lib/rules/array-bracket-spacing.js @@ -84,16 +84,16 @@ module.exports = { * @returns {void} */ function reportNoBeginningSpace(node, token) { + const nextToken = sourceCode.getTokenAfter(token); + context.report({ node, - loc: token.loc.start, + loc: { start: token.loc.end, end: nextToken.loc.start }, messageId: "unexpectedSpaceAfter", data: { tokenValue: token.value }, fix(fixer) { - const nextToken = sourceCode.getTokenAfter(token); - return fixer.removeRange([token.range[1], nextToken.range[0]]); } }); @@ -106,16 +106,16 @@ module.exports = { * @returns {void} */ function reportNoEndingSpace(node, token) { + const previousToken = sourceCode.getTokenBefore(token); + context.report({ node, - loc: token.loc.start, + loc: { start: previousToken.loc.end, end: token.loc.start }, messageId: "unexpectedSpaceBefore", data: { tokenValue: token.value }, fix(fixer) { - const previousToken = sourceCode.getTokenBefore(token); - return fixer.removeRange([previousToken.range[1], token.range[0]]); } }); @@ -130,7 +130,7 @@ module.exports = { function reportRequiredBeginningSpace(node, token) { context.report({ node, - loc: token.loc.start, + loc: token.loc, messageId: "missingSpaceAfter", data: { tokenValue: token.value @@ -150,7 +150,7 @@ module.exports = { function reportRequiredEndingSpace(node, token) { context.report({ node, - loc: token.loc.start, + loc: token.loc, messageId: "missingSpaceBefore", data: { tokenValue: token.value diff --git a/tests/lib/rules/array-bracket-spacing.js b/tests/lib/rules/array-bracket-spacing.js index 120c905018f..33caf088928 100644 --- a/tests/lib/rules/array-bracket-spacing.js +++ b/tests/lib/rules/array-bracket-spacing.js @@ -190,7 +190,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 12, + endLine: 1, + endColumn: 13 } ] }, @@ -208,7 +210,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 12, + endLine: 1, + endColumn: 13 }, { messageId: "missingSpaceBefore", @@ -217,7 +221,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 36 + column: 36, + endLine: 1, + endColumn: 37 } ] }, @@ -233,7 +239,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 11, + endLine: 1, + endColumn: 12 }, { messageId: "unexpectedSpaceBefore", @@ -242,7 +250,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 35 + column: 34, + endLine: 1, + endColumn: 35 } ] }, @@ -258,7 +268,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 12, + endLine: 1, + endColumn: 13 }, { messageId: "unexpectedSpaceBefore", @@ -267,7 +279,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 50 + column: 49, + endLine: 1, + endColumn: 50 } ] }, @@ -285,7 +299,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 12, + endLine: 1, + endColumn: 13 }, { messageId: "unexpectedSpaceBefore", @@ -294,7 +310,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 19 + column: 18, + endLine: 1, + endColumn: 19 } ] }, @@ -310,7 +328,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 18 + column: 17, + endLine: 1, + endColumn: 18 } ] }, @@ -326,7 +346,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 11, + endLine: 1, + endColumn: 12 }, { messageId: "missingSpaceBefore", @@ -335,7 +357,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 17 + column: 17, + endLine: 1, + endColumn: 18 } ] }, @@ -353,7 +377,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 12, + endLine: 1, + endColumn: 13 } ] }, @@ -369,7 +395,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 31 + column: 30, + endLine: 1, + endColumn: 31 } ] }, @@ -385,7 +413,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 34 + column: 33, + endLine: 1, + endColumn: 34 } ] }, @@ -401,7 +431,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 12, + endLine: 1, + endColumn: 13 } ] }, @@ -417,7 +449,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 12, + endLine: 1, + endColumn: 13 }, { messageId: "unexpectedSpaceBefore", @@ -426,7 +460,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 35 + column: 34, + endLine: 1, + endColumn: 35 } ] }, @@ -444,7 +480,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 5 + column: 5, + endLine: 1, + endColumn: 6 }, { messageId: "missingSpaceBefore", @@ -453,7 +491,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 9 + column: 9, + endLine: 1, + endColumn: 10 }] }, { @@ -468,7 +508,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 5 + column: 5, + endLine: 1, + endColumn: 6 }] }, { @@ -483,7 +525,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 5 + column: 5, + endLine: 1, + endColumn: 6 }, { messageId: "missingSpaceBefore", @@ -492,7 +536,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 12 + column: 12, + endLine: 1, + endColumn: 13 }] }, { @@ -507,7 +553,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 13 + column: 13, + endLine: 1, + endColumn: 14 }] }, { @@ -522,7 +570,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 5 + column: 5, + endLine: 1, + endColumn: 6 }, { messageId: "missingSpaceBefore", @@ -531,7 +581,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 14 + column: 14, + endLine: 1, + endColumn: 15 }] }, { @@ -546,7 +598,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 5 + column: 5, + endLine: 1, + endColumn: 6 }] }, { @@ -561,7 +615,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 5 + column: 6, + endLine: 1, + endColumn: 7 }] }, { @@ -576,7 +632,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 1 + column: 2, + endLine: 1, + endColumn: 3 }] }, { @@ -591,7 +649,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 15 + column: 14, + endLine: 1, + endColumn: 15 }] }, @@ -608,7 +668,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 11, + endLine: 1, + endColumn: 12 }, { messageId: "missingSpaceBefore", @@ -617,7 +679,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 29 + column: 29, + endLine: 1, + endColumn: 30 } ] }, @@ -633,7 +697,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 12, + endLine: 1, + endColumn: 13 } ] }, @@ -651,7 +717,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 12, + endLine: 1, + endColumn: 13 } ] }, @@ -669,7 +737,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 11, + endLine: 1, + endColumn: 12 }, { messageId: "missingSpaceBefore", @@ -678,7 +748,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 22 + column: 22, + endLine: 1, + endColumn: 23 } ] }, @@ -694,7 +766,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 11, + endLine: 1, + endColumn: 12 } ] }, @@ -710,7 +784,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 23 + column: 23, + endLine: 1, + endColumn: 24 } ] }, @@ -728,7 +804,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 12, + endLine: 1, + endColumn: 13 }, { messageId: "unexpectedSpaceBefore", @@ -737,7 +815,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 24 + column: 23, + endLine: 1, + endColumn: 24 } ] }, @@ -753,7 +833,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 23 + column: 22, + endLine: 1, + endColumn: 23 } ] }, @@ -769,7 +851,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 12, + endLine: 1, + endColumn: 13 } ] }, @@ -785,7 +869,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 11 + column: 12, + endLine: 1, + endColumn: 13 }, { messageId: "unexpectedSpaceAfter", @@ -794,7 +880,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 13 + column: 14, + endLine: 1, + endColumn: 15 } ] }, @@ -810,7 +898,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 15 + column: 14, + endLine: 1, + endColumn: 15 }, { messageId: "unexpectedSpaceBefore", @@ -819,7 +909,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayExpression", line: 1, - column: 26 + column: 25, + endLine: 1, + endColumn: 26 } ] }, @@ -841,7 +933,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 2 + column: 3, + endLine: 1, + endColumn: 4 }, { messageId: "unexpectedSpaceBefore", @@ -850,7 +944,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 9 + column: 8, + endLine: 1, + endColumn: 9 } ] }, @@ -870,7 +966,9 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 2 + column: 2, + endLine: 1, + endColumn: 3 }, { messageId: "missingSpaceBefore", @@ -879,7 +977,152 @@ ruleTester.run("array-bracket-spacing", rule, { }, type: "ArrayPattern", line: 1, - column: 7 + column: 7, + endLine: 1, + endColumn: 8 + } + ] + }, + + // multiple spaces + { + code: "var arr = [ 1, 2 ];", + output: "var arr = [1, 2];", + options: ["never"], + errors: [ + { + messageId: "unexpectedSpaceAfter", + data: { + tokenValue: "[" + }, + type: "ArrayExpression", + line: 1, + column: 12, + endLine: 1, + endColumn: 14 + }, + { + messageId: "unexpectedSpaceBefore", + data: { + tokenValue: "]" + }, + type: "ArrayExpression", + line: 1, + column: 18, + endLine: 1, + endColumn: 21 + } + ] + }, + { + code: "function f( [ a, b ] ) {}", + output: "function f( [a, b] ) {}", + options: ["never"], + parserOptions: { + ecmaVersion: 6 + }, + errors: [ + { + messageId: "unexpectedSpaceAfter", + data: { + tokenValue: "[" + }, + type: "ArrayPattern", + line: 1, + column: 14, + endLine: 1, + endColumn: 17 + }, + { + messageId: "unexpectedSpaceBefore", + data: { + tokenValue: "]" + }, + type: "ArrayPattern", + line: 1, + column: 21, + endLine: 1, + endColumn: 23 + } + ] + }, + { + code: "var arr = [ 1,\n 2 ];", + output: "var arr = [1,\n 2];", + options: ["never"], + errors: [ + { + messageId: "unexpectedSpaceAfter", + data: { + tokenValue: "[" + }, + type: "ArrayExpression", + line: 1, + column: 12, + endLine: 1, + endColumn: 13 + }, + { + messageId: "unexpectedSpaceBefore", + data: { + tokenValue: "]" + }, + type: "ArrayExpression", + line: 2, + column: 5, + endLine: 2, + endColumn: 8 + } + ] + }, + { + code: "var arr = [ 1, [ 2, 3 ] ];", + output: "var arr = [1, [2, 3]];", + options: ["never"], + errors: [ + { + messageId: "unexpectedSpaceAfter", + data: { + tokenValue: "[" + }, + type: "ArrayExpression", + line: 1, + column: 12, + endLine: 1, + endColumn: 14 + }, + { + messageId: "unexpectedSpaceAfter", + data: { + tokenValue: "[" + }, + type: "ArrayExpression", + line: 1, + column: 18, + endLine: 1, + endColumn: 19 + }, + { + messageId: "unexpectedSpaceBefore", + data: { + tokenValue: "]" + }, + type: "ArrayExpression", + line: 1, + column: 23, + endLine: 1, + endColumn: 25 + }, + { + messageId: "unexpectedSpaceBefore", + data: { + tokenValue: "]" + }, + type: "ArrayExpression", + line: 1, + column: 26, + endLine: 1, + endColumn: 27 } ] }