Skip to content

Commit 9a71318

Browse files
authored
fix: void attribute and empty attribute are different (#458)
* fix: void attribute and empty attribute are different close #450 * fix: void attribute range
1 parent b038db9 commit 9a71318

File tree

6 files changed

+4198
-164
lines changed

6 files changed

+4198
-164
lines changed

.changeset/forty-jobs-boil.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"eslint-mdx": patch
3+
---
4+
5+
fix: void attribute and empty attribute are different

packages/eslint-mdx/src/tokens.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,9 @@ export const restoreTokens = (
151151

152152
const attrValue = attr.value
153153

154-
if (!attrValue) {
154+
// void attribute and empty attribute are different
155+
// @see #450
156+
if (attrValue == null) {
155157
lastAttrOffset = attrStart + attrNameLength
156158
continue
157159
}

packages/eslint-mdx/src/worker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ runAsWorker(
450450

451451
if (attrValue == null) {
452452
return {
453-
...normalizeNode(attrStart, lastAttrOffset + 1),
453+
...normalizeNode(attrStart, lastAttrOffset),
454454
type: 'JSXAttribute',
455455
name: {
456456
...attrNamePos,

test/__snapshots__/fixtures.test.ts.snap

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,173 @@ exports[`fixtures should match all snapshots: 429.mdx 1`] = `
430430
]
431431
`;
432432
433+
exports[`fixtures should match all snapshots: 450.mdx 1`] = `
434+
[
435+
{
436+
"column": 45,
437+
"endColumn": 46,
438+
"endLine": 1,
439+
"fix": {
440+
"range": [
441+
44,
442+
45,
443+
],
444+
"text": "",
445+
},
446+
"line": 1,
447+
"message": "Delete \`;\`",
448+
"messageId": "delete",
449+
"nodeType": null,
450+
"ruleId": "prettier/prettier",
451+
"severity": 2,
452+
},
453+
{
454+
"column": 1,
455+
"endColumn": 3,
456+
"endLine": 15,
457+
"fix": {
458+
"range": [
459+
193,
460+
195,
461+
],
462+
"text": "",
463+
},
464+
"line": 15,
465+
"message": "Delete \`··\`",
466+
"messageId": "delete",
467+
"nodeType": null,
468+
"ruleId": "prettier/prettier",
469+
"severity": 2,
470+
},
471+
{
472+
"column": 1,
473+
"endColumn": 3,
474+
"endLine": 16,
475+
"fix": {
476+
"range": [
477+
216,
478+
218,
479+
],
480+
"text": "",
481+
},
482+
"line": 16,
483+
"message": "Delete \`··\`",
484+
"messageId": "delete",
485+
"nodeType": null,
486+
"ruleId": "prettier/prettier",
487+
"severity": 2,
488+
},
489+
{
490+
"column": 1,
491+
"endColumn": 3,
492+
"endLine": 17,
493+
"fix": {
494+
"range": [
495+
230,
496+
232,
497+
],
498+
"text": "",
499+
},
500+
"line": 17,
501+
"message": "Delete \`··\`",
502+
"messageId": "delete",
503+
"nodeType": null,
504+
"ruleId": "prettier/prettier",
505+
"severity": 2,
506+
},
507+
{
508+
"column": 1,
509+
"endColumn": 3,
510+
"endLine": 18,
511+
"fix": {
512+
"range": [
513+
245,
514+
247,
515+
],
516+
"text": "",
517+
},
518+
"line": 18,
519+
"message": "Delete \`··\`",
520+
"messageId": "delete",
521+
"nodeType": null,
522+
"ruleId": "prettier/prettier",
523+
"severity": 2,
524+
},
525+
{
526+
"column": 1,
527+
"endColumn": 3,
528+
"endLine": 19,
529+
"fix": {
530+
"range": [
531+
263,
532+
265,
533+
],
534+
"text": "",
535+
},
536+
"line": 19,
537+
"message": "Delete \`··\`",
538+
"messageId": "delete",
539+
"nodeType": null,
540+
"ruleId": "prettier/prettier",
541+
"severity": 2,
542+
},
543+
{
544+
"column": 1,
545+
"endColumn": 3,
546+
"endLine": 20,
547+
"fix": {
548+
"range": [
549+
294,
550+
296,
551+
],
552+
"text": "",
553+
},
554+
"line": 20,
555+
"message": "Delete \`··\`",
556+
"messageId": "delete",
557+
"nodeType": null,
558+
"ruleId": "prettier/prettier",
559+
"severity": 2,
560+
},
561+
{
562+
"column": 1,
563+
"endColumn": 3,
564+
"endLine": 21,
565+
"fix": {
566+
"range": [
567+
333,
568+
335,
569+
],
570+
"text": "",
571+
},
572+
"line": 21,
573+
"message": "Delete \`··\`",
574+
"messageId": "delete",
575+
"nodeType": null,
576+
"ruleId": "prettier/prettier",
577+
"severity": 2,
578+
},
579+
{
580+
"column": 1,
581+
"endColumn": 3,
582+
"endLine": 22,
583+
"fix": {
584+
"range": [
585+
374,
586+
376,
587+
],
588+
"text": "",
589+
},
590+
"line": 22,
591+
"message": "Delete \`··\`",
592+
"messageId": "delete",
593+
"nodeType": null,
594+
"ruleId": "prettier/prettier",
595+
"severity": 2,
596+
},
597+
]
598+
`;
599+
433600
exports[`fixtures should match all snapshots: acorn.mdx 1`] = `
434601
[
435602
{

0 commit comments

Comments
 (0)