Skip to content

Commit 2943021

Browse files
authored
feat: update parser (#687)
1 parent a31d2bd commit 2943021

File tree

7 files changed

+42
-15
lines changed

7 files changed

+42
-15
lines changed

.changeset/twenty-trainers-peel.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"eslint-plugin-svelte": patch
3+
---
4+
5+
feat: update parser

.eslintignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,7 @@
3232

3333
# JSONSchema bug?
3434
/.devcontainer/devcontainer.json
35+
36+
# Parser bug?
37+
/tests/fixtures/rules/indent/invalid/const-tag01-input.svelte
38+
/tests/fixtures/rules/indent/invalid/const-tag01-output.svelte

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
},
6060
"peerDependencies": {
6161
"eslint": "^7.0.0 || ^8.0.0-0 || ^9.0.0-0",
62-
"svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.33"
62+
"svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.68"
6363
},
6464
"peerDependenciesMeta": {
6565
"svelte": {
@@ -78,7 +78,7 @@
7878
"postcss-safe-parser": "^6.0.0",
7979
"postcss-selector-parser": "^6.0.11",
8080
"semver": "^7.5.3",
81-
"svelte-eslint-parser": ">=0.34.0-next.4 <1.0.0"
81+
"svelte-eslint-parser": ">=0.34.0-next.9 <1.0.0"
8282
},
8383
"devDependencies": {
8484
"@1stg/browserslist-config": "^2.0.0",
@@ -166,7 +166,7 @@
166166
"stylelint": "^16.0.0",
167167
"stylelint-config-standard": "^36.0.0",
168168
"stylus": "^0.62.0",
169-
"svelte": "^5.0.0-next.33",
169+
"svelte": "^5.0.0-next.68",
170170
"svelte-adapter-ghpages": "0.2.2",
171171
"svelte-i18n": "^4.0.0",
172172
"tslib": "^2.5.0",

src/rules/indent-helpers/svelte.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ export function defineVisitor(context: IndentContext): NodeListener {
227227
const rightParenToken = sourceCode.getTokenBefore(sourceCode.getLastToken(node));
228228

229229
offsets.setOffsetToken(leftParenToken, 1, calleeToken);
230-
offsets.setOffsetElementList([node.argument], leftParenToken, rightParenToken, 1);
230+
offsets.setOffsetElementList(node.arguments, leftParenToken, rightParenToken, 1);
231231
},
232232
// ----------------------------------------------------------------------
233233
// BLOCKS
@@ -488,19 +488,22 @@ export function defineVisitor(context: IndentContext): NodeListener {
488488
offsets.setOffsetToken(id.firstToken, 1, snippetToken);
489489

490490
const leftParenToken = sourceCode.getTokenBefore(
491-
node.context || sourceCode.getLastToken(node),
491+
node.params[0] || sourceCode.getLastToken(node),
492492
{
493493
filter: isOpeningParenToken,
494494
includeComments: false
495495
}
496496
)!;
497497

498-
const rightParenToken = sourceCode.getTokenAfter(node.context || leftParenToken, {
499-
filter: isClosingParenToken,
500-
includeComments: false
501-
})!;
498+
const rightParenToken = sourceCode.getTokenAfter(
499+
node.params[node.params.length - 1] || leftParenToken,
500+
{
501+
filter: isClosingParenToken,
502+
includeComments: false
503+
}
504+
)!;
502505
offsets.setOffsetToken(leftParenToken, 1, id.firstToken);
503-
offsets.setOffsetElementList([node.context], leftParenToken, rightParenToken, 1);
506+
offsets.setOffsetElementList(node.params, leftParenToken, rightParenToken, 1);
504507
},
505508
// ----------------------------------------------------------------------
506509
// COMMENTS

src/rules/mustache-spacing.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -400,10 +400,13 @@ export default createRule('mustache-spacing', {
400400
},
401401
SvelteSnippetBlock(node) {
402402
const openBlockOpeningToken = sourceCode.getFirstToken(node);
403-
const openBlockClosingToken = sourceCode.getTokenAfter(node.context || node.id, {
404-
includeComments: false,
405-
filter: isClosingBraceToken
406-
})!;
403+
const openBlockClosingToken = sourceCode.getTokenAfter(
404+
node.params[node.params.length - 1] || node.id,
405+
{
406+
includeComments: false,
407+
filter: isClosingBraceToken
408+
}
409+
)!;
407410
verifyBraces(
408411
openBlockOpeningToken,
409412
openBlockClosingToken,
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"FIXME": "Bug in Svelte v5-next.68?",
3+
"svelte": "^4 || ^3"
4+
}

tests/utils/utils.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,14 @@ export function loadTestCases(
132132
}
133133
const errors = fs.readFileSync(errorFile, 'utf8');
134134
config.errors = parseYaml(errors);
135+
for (const error of config.errors) {
136+
if (error.suggestions) {
137+
error.suggestions = error.suggestions?.map((s: any) => ({
138+
output: s.output,
139+
desc: s.desc
140+
}));
141+
}
142+
}
135143
if (fixable) {
136144
let output;
137145
try {
@@ -140,7 +148,7 @@ export function loadTestCases(
140148
writeFixtures(ruleName, inputFile);
141149
output = fs.readFileSync(outputFile, 'utf8');
142150
}
143-
config.output = output;
151+
config.output = output === config.code ? null : output;
144152
}
145153

146154
return config;

0 commit comments

Comments
 (0)