Skip to content

Commit 18a0b0e

Browse files
chiawendtplatinumazure
authored andcommitted
Update: improve report location for no-space-in-parens (#12364)
* Update: improve report location for no-space-in-parens * Add test cases with multiple spaces
1 parent d61c8a5 commit 18a0b0e

2 files changed

Lines changed: 48 additions & 30 deletions

File tree

lib/rules/space-in-parens.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ module.exports = {
232232
if (token.value === "(" && openerMissingSpace(token, nextToken)) {
233233
context.report({
234234
node,
235-
loc: token.loc.start,
235+
loc: token.loc,
236236
messageId: "missingOpeningSpace",
237237
fix(fixer) {
238238
return fixer.insertTextAfter(token, " ");
@@ -244,7 +244,7 @@ module.exports = {
244244
if (token.value === "(" && openerRejectsSpace(token, nextToken)) {
245245
context.report({
246246
node,
247-
loc: token.loc.start,
247+
loc: { start: token.loc.end, end: nextToken.loc.start },
248248
messageId: "rejectedOpeningSpace",
249249
fix(fixer) {
250250
return fixer.removeRange([token.range[1], nextToken.range[0]]);
@@ -256,7 +256,7 @@ module.exports = {
256256
if (token.value === ")" && closerMissingSpace(prevToken, token)) {
257257
context.report({
258258
node,
259-
loc: token.loc.start,
259+
loc: token.loc,
260260
messageId: "missingClosingSpace",
261261
fix(fixer) {
262262
return fixer.insertTextBefore(token, " ");
@@ -268,7 +268,7 @@ module.exports = {
268268
if (token.value === ")" && closerRejectsSpace(prevToken, token)) {
269269
context.report({
270270
node,
271-
loc: token.loc.start,
271+
loc: { start: prevToken.loc.end, end: token.loc.start },
272272
messageId: "rejectedClosingSpace",
273273
fix(fixer) {
274274
return fixer.removeRange([prevToken.range[1], token.range[0]]);

tests/lib/rules/space-in-parens.js

Lines changed: 44 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -128,17 +128,35 @@ ruleTester.run("space-in-parens", rule, {
128128
output: "bar(baz)",
129129
options: ["never"],
130130
errors: [
131-
{ messageId: "rejectedOpeningSpace", line: 1, column: 4 },
132-
{ messageId: "rejectedClosingSpace", line: 1, column: 10 }
131+
{ messageId: "rejectedOpeningSpace", line: 1, column: 5, endColumn: 6 },
132+
{ messageId: "rejectedClosingSpace", line: 1, column: 9, endColumn: 10 }
133+
]
134+
},
135+
{
136+
code: "bar( baz )",
137+
output: "bar(baz)",
138+
options: ["never"],
139+
errors: [
140+
{ messageId: "rejectedOpeningSpace", line: 1, column: 5, endColumn: 7 },
141+
{ messageId: "rejectedClosingSpace", line: 1, column: 10, endColumn: 12 }
133142
]
134143
},
135144
{
136145
code: "foo( )",
137146
output: "foo()",
138147
options: ["never"],
139148
errors: [
140-
{ messageId: "rejectedOpeningSpace", line: 1, column: 4 },
141-
{ messageId: "rejectedClosingSpace", line: 1, column: 6 }
149+
{ messageId: "rejectedOpeningSpace", line: 1, column: 5, endColumn: 6 },
150+
{ messageId: "rejectedClosingSpace", line: 1, column: 5, endColumn: 6 }
151+
]
152+
},
153+
{
154+
code: "foo( )",
155+
output: "foo()",
156+
options: ["never"],
157+
errors: [
158+
{ messageId: "rejectedOpeningSpace", line: 1, column: 5, endColumn: 7 },
159+
{ messageId: "rejectedClosingSpace", line: 1, column: 5, endColumn: 7 }
142160
]
143161
},
144162
{
@@ -151,7 +169,7 @@ ruleTester.run("space-in-parens", rule, {
151169
code: "foo\n(\nbar )",
152170
output: "foo\n(\nbar)",
153171
options: ["never"],
154-
errors: [{ messageId: "rejectedClosingSpace", line: 3, column: 5 }]
172+
errors: [{ messageId: "rejectedClosingSpace", line: 3, column: 4 }]
155173
},
156174
{
157175
code: "foo\n(bar\n)\n",
@@ -170,8 +188,8 @@ ruleTester.run("space-in-parens", rule, {
170188
output: "foo( bar )",
171189
options: ["always"],
172190
errors: [
173-
{ messageId: "missingOpeningSpace", line: 1, column: 4 },
174-
{ messageId: "missingClosingSpace", line: 1, column: 8 }
191+
{ messageId: "missingOpeningSpace", line: 1, column: 4, endColumn: 5 },
192+
{ messageId: "missingClosingSpace", line: 1, column: 8, endColumn: 9 }
175193
]
176194
},
177195

@@ -248,7 +266,7 @@ ruleTester.run("space-in-parens", rule, {
248266
code: "foo( /* bar */ baz)",
249267
output: "foo(/* bar */ baz)",
250268
options: ["never"],
251-
errors: [{ messageId: "rejectedOpeningSpace", line: 1, column: 4 }]
269+
errors: [{ messageId: "rejectedOpeningSpace", line: 1, column: 5 }]
252270
},
253271

254272
// exceptions
@@ -266,25 +284,25 @@ ruleTester.run("space-in-parens", rule, {
266284
output: "foo()",
267285
options: ["always", { exceptions: ["()", "empty"] }],
268286
errors: [
269-
{ messageId: "rejectedOpeningSpace", line: 1, column: 4 },
270-
{ messageId: "rejectedClosingSpace", line: 1, column: 6 }
287+
{ messageId: "rejectedOpeningSpace", line: 1, column: 5 },
288+
{ messageId: "rejectedClosingSpace", line: 1, column: 5 }
271289
]
272290
},
273291
{
274292
code: "foo( )",
275293
output: "foo()",
276294
options: ["always", { exceptions: ["empty"] }],
277295
errors: [
278-
{ messageId: "rejectedOpeningSpace", line: 1, column: 4 },
279-
{ messageId: "rejectedClosingSpace", line: 1, column: 6 }
296+
{ messageId: "rejectedOpeningSpace", line: 1, column: 5 },
297+
{ messageId: "rejectedClosingSpace", line: 1, column: 5 }
280298
]
281299
},
282300
{
283301
code: "foo( bar() )",
284302
output: "foo( bar())",
285303
options: ["always", { exceptions: ["()", "empty"] }],
286304
errors: [
287-
{ messageId: "rejectedClosingSpace", line: 1, column: 12 }
305+
{ messageId: "rejectedClosingSpace", line: 1, column: 11 }
288306
]
289307
},
290308
{
@@ -300,10 +318,10 @@ ruleTester.run("space-in-parens", rule, {
300318
output: "foo(bar( ))",
301319
options: ["never", { exceptions: ["empty"] }],
302320
errors: [
303-
{ messageId: "rejectedOpeningSpace", line: 1, column: 4 },
321+
{ messageId: "rejectedOpeningSpace", line: 1, column: 5 },
304322
{ messageId: "missingOpeningSpace", line: 1, column: 9 },
305323
{ messageId: "missingClosingSpace", line: 1, column: 10 },
306-
{ messageId: "rejectedClosingSpace", line: 1, column: 12 }
324+
{ messageId: "rejectedClosingSpace", line: 1, column: 11 }
307325
]
308326
},
309327
{
@@ -312,7 +330,7 @@ ruleTester.run("space-in-parens", rule, {
312330
options: ["never", { exceptions: ["[]"] }],
313331
errors: [
314332
{ messageId: "missingOpeningSpace", line: 1, column: 4 },
315-
{ messageId: "rejectedClosingSpace", line: 1, column: 18 }
333+
{ messageId: "rejectedClosingSpace", line: 1, column: 17 }
316334
]
317335
},
318336
{
@@ -449,19 +467,19 @@ ruleTester.run("space-in-parens", rule, {
449467
output: "(( 1 + 2 ))",
450468
options: ["always", { exceptions: ["()"] }],
451469
errors: [
452-
{ messageId: "rejectedOpeningSpace", line: 1, column: 1 },
453-
{ messageId: "rejectedClosingSpace", line: 1, column: 13 }
470+
{ messageId: "rejectedOpeningSpace", line: 1, column: 2 },
471+
{ messageId: "rejectedClosingSpace", line: 1, column: 12 }
454472
]
455473
},
456474
{
457475
code: "( ( 1 + 2 ) )",
458476
output: "((1 + 2))",
459477
options: ["never"],
460478
errors: [
461-
{ messageId: "rejectedOpeningSpace", line: 1, column: 1 },
462-
{ messageId: "rejectedOpeningSpace", line: 1, column: 3 },
463-
{ messageId: "rejectedClosingSpace", line: 1, column: 11 },
464-
{ messageId: "rejectedClosingSpace", line: 1, column: 13 }
479+
{ messageId: "rejectedOpeningSpace", line: 1, column: 2 },
480+
{ messageId: "rejectedOpeningSpace", line: 1, column: 4 },
481+
{ messageId: "rejectedClosingSpace", line: 1, column: 10 },
482+
{ messageId: "rejectedClosingSpace", line: 1, column: 12 }
465483
]
466484
},
467485
{
@@ -506,7 +524,7 @@ ruleTester.run("space-in-parens", rule, {
506524
output: "var result = ( 1 / ( 1 + 2 )) + 3",
507525
options: ["always", { exceptions: ["()"] }],
508526
errors: [
509-
{ messageId: "rejectedClosingSpace", line: 1, column: 30 }
527+
{ messageId: "rejectedClosingSpace", line: 1, column: 29 }
510528
]
511529
},
512530
{
@@ -524,7 +542,7 @@ ruleTester.run("space-in-parens", rule, {
524542
errors: [
525543
{ messageId: "missingOpeningSpace", line: 1, column: 14 },
526544
{ messageId: "missingClosingSpace", line: 1, column: 26 },
527-
{ messageId: "rejectedClosingSpace", line: 1, column: 28 }
545+
{ messageId: "rejectedClosingSpace", line: 1, column: 27 }
528546
]
529547
},
530548

@@ -535,8 +553,8 @@ ruleTester.run("space-in-parens", rule, {
535553
options: ["never"],
536554
parserOptions: { ecmaVersion: 6 },
537555
errors: [
538-
{ messageId: "rejectedOpeningSpace", line: 1, column: 19 },
539-
{ messageId: "rejectedClosingSpace", line: 1, column: 27 }
556+
{ messageId: "rejectedOpeningSpace", line: 1, column: 20 },
557+
{ messageId: "rejectedClosingSpace", line: 1, column: 26 }
540558
]
541559
},
542560
{

0 commit comments

Comments
 (0)