From c5324eb34e85d68d28b1fe75683aa47e1ba9dfc3 Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Fri, 28 Mar 2025 17:41:35 +0000 Subject: [PATCH 1/4] feat: add fixer for `no-at-debug-tags` Adds a simple fixer which removes the debug node. --- .../src/rules/no-at-debug-tags.ts | 4 +++- .../no-at-debug-tags/invalid/debug01-output.svelte | 11 +++++++++++ .../no-at-debug-tags/invalid/debug02-output.svelte | 11 +++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-output.svelte create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-output.svelte diff --git a/packages/eslint-plugin-svelte/src/rules/no-at-debug-tags.ts b/packages/eslint-plugin-svelte/src/rules/no-at-debug-tags.ts index 13e3de616..5e94515de 100644 --- a/packages/eslint-plugin-svelte/src/rules/no-at-debug-tags.ts +++ b/packages/eslint-plugin-svelte/src/rules/no-at-debug-tags.ts @@ -8,6 +8,7 @@ export default createRule('no-at-debug-tags', { recommended: true, default: 'warn' }, + fixable: 'code', schema: [], messages: { unexpected: 'Unexpected `{@debug}`.' @@ -19,7 +20,8 @@ export default createRule('no-at-debug-tags', { SvelteDebugTag(node) { context.report({ node, - messageId: 'unexpected' + messageId: 'unexpected', + fix: (fixer) => fixer.remove(node) }); } }; diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-output.svelte b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-output.svelte new file mode 100644 index 000000000..60dd65335 --- /dev/null +++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-output.svelte @@ -0,0 +1,11 @@ + + + + + +

Hello {user.firstname}!

diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-output.svelte b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-output.svelte new file mode 100644 index 000000000..60dd65335 --- /dev/null +++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-output.svelte @@ -0,0 +1,11 @@ + + + + + +

Hello {user.firstname}!

From ba3acbb7492a8567d07b17b703afced14fb6a9d6 Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Sat, 29 Mar 2025 13:24:24 +0000 Subject: [PATCH 2/4] chore: move to a suggestion --- .../src/rules/no-at-debug-tags.ts | 12 +++++++++--- .../invalid/debug01-errors.yaml | 18 +++++++++++++++++- .../invalid/debug01-output.svelte | 11 ----------- .../invalid/debug02-errors.yaml | 18 +++++++++++++++++- .../invalid/debug02-output.svelte | 11 ----------- 5 files changed, 43 insertions(+), 27 deletions(-) delete mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-output.svelte delete mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-output.svelte diff --git a/packages/eslint-plugin-svelte/src/rules/no-at-debug-tags.ts b/packages/eslint-plugin-svelte/src/rules/no-at-debug-tags.ts index 5e94515de..f7876de93 100644 --- a/packages/eslint-plugin-svelte/src/rules/no-at-debug-tags.ts +++ b/packages/eslint-plugin-svelte/src/rules/no-at-debug-tags.ts @@ -8,10 +8,11 @@ export default createRule('no-at-debug-tags', { recommended: true, default: 'warn' }, - fixable: 'code', + hasSuggestions: true, schema: [], messages: { - unexpected: 'Unexpected `{@debug}`.' + unexpected: 'Unexpected `{@debug}`.', + suggestRemove: 'Remove `{@debug}` from the source' }, type: 'problem' }, @@ -21,7 +22,12 @@ export default createRule('no-at-debug-tags', { context.report({ node, messageId: 'unexpected', - fix: (fixer) => fixer.remove(node) + suggest: [ + { + messageId: 'suggestRemove', + fix: (fixer) => fixer.remove(node) + } + ] }); } }; diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-errors.yaml b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-errors.yaml index 7583d5bc0..6327cee06 100644 --- a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-errors.yaml +++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-errors.yaml @@ -1,4 +1,20 @@ - message: Unexpected `{@debug}`. line: 11 column: 1 - suggestions: null + suggestions: + - desc: Remove `{@debug}` from the source + messageId: suggestRemove + output: | + + + + + + + +

Hello {user.firstname}!

diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-output.svelte b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-output.svelte deleted file mode 100644 index 60dd65335..000000000 --- a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-output.svelte +++ /dev/null @@ -1,11 +0,0 @@ - - - - - -

Hello {user.firstname}!

diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-errors.yaml b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-errors.yaml index 7583d5bc0..6327cee06 100644 --- a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-errors.yaml +++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-errors.yaml @@ -1,4 +1,20 @@ - message: Unexpected `{@debug}`. line: 11 column: 1 - suggestions: null + suggestions: + - desc: Remove `{@debug}` from the source + messageId: suggestRemove + output: | + + + + + + + +

Hello {user.firstname}!

diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-output.svelte b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-output.svelte deleted file mode 100644 index 60dd65335..000000000 --- a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-output.svelte +++ /dev/null @@ -1,11 +0,0 @@ - - - - - -

Hello {user.firstname}!

From a69b07c6507d93dc99ab07723d363ec8ec501fbd Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Sat, 29 Mar 2025 14:22:01 +0000 Subject: [PATCH 3/4] chore: update docs --- README.md | 2 +- docs/rules.md | 2 +- docs/rules/no-at-debug-tags.md | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index db731dd26..59a2ec419 100644 --- a/README.md +++ b/README.md @@ -294,7 +294,7 @@ These rules relate to better ways of doing things to help you avoid problems: |:--------|:------------|:---| | [svelte/block-lang](https://sveltejs.github.io/eslint-plugin-svelte/rules/block-lang/) | disallows the use of languages other than those specified in the configuration for the lang attribute of `