diff --git a/.changeset/three-turkeys-marry.md b/.changeset/three-turkeys-marry.md
new file mode 100644
index 000000000..6bf12d43d
--- /dev/null
+++ b/.changeset/three-turkeys-marry.md
@@ -0,0 +1,5 @@
+---
+"eslint-plugin-svelte": patch
+---
+
+fix(no-unused-svelte-ignore): ignore reactive-component warnings
diff --git a/packages/eslint-plugin-svelte/src/rules/no-unused-svelte-ignore.ts b/packages/eslint-plugin-svelte/src/rules/no-unused-svelte-ignore.ts
index 01b137d93..51fc63e13 100644
--- a/packages/eslint-plugin-svelte/src/rules/no-unused-svelte-ignore.ts
+++ b/packages/eslint-plugin-svelte/src/rules/no-unused-svelte-ignore.ts
@@ -2,6 +2,8 @@ import { getSvelteCompileWarnings } from '../shared/svelte-compile-warns/index.j
import { createRule } from '../utils/index.js';
import type { IgnoreItem } from '../shared/svelte-compile-warns/ignore-comment.js';
import { getSvelteIgnoreItems } from '../shared/svelte-compile-warns/ignore-comment.js';
+import { VERSION as SVELTE_VERSION } from 'svelte/compiler';
+import semver from 'semver';
export default createRule('no-unused-svelte-ignore', {
meta: {
@@ -46,6 +48,14 @@ export default createRule('no-unused-svelte-ignore', {
}
for (const unused of warnings.unusedIgnores) {
+ if (unused.code === 'reactive-component' && semver.satisfies(SVELTE_VERSION, '<5')) {
+ // Svelte v4 `reactive-component` warnings are not emitted
+ // when we use the `generate: false` compiler option.
+ // This is probably not the intended behavior of Svelte v4, but it's not going to be fixed,
+ // so as a workaround we'll ignore the `reactive-component` warnings.
+ // See https://github.com/sveltejs/eslint-plugin-svelte/issues/1192
+ continue;
+ }
context.report({
loc: {
start: sourceCode.getLocFromIndex(unused.range[0]),
diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/reactive-component-input.svelte b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/reactive-component-input.svelte
new file mode 100644
index 000000000..d612deb43
--- /dev/null
+++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/reactive-component-input.svelte
@@ -0,0 +1,15 @@
+
+
+{#if MyComponent}
+
+
+{/if}
diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/reactive-component-requirements.json b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/reactive-component-requirements.json
new file mode 100644
index 000000000..b224b893c
--- /dev/null
+++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/reactive-component-requirements.json
@@ -0,0 +1,3 @@
+{
+ "svelte": "^4"
+}
\ No newline at end of file