From 66958dc385077751abedee7a2e84770bd332b2db Mon Sep 17 00:00:00 2001 From: "Lyu, Wei Da" Date: Sun, 9 Nov 2025 10:52:24 +0800 Subject: [PATCH 1/4] fix: support experimental feature in "Show compiled Code" --- .changeset/wet-lamps-dress.md | 5 +++++ .../language-server/src/plugins/svelte/SveltePlugin.ts | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 .changeset/wet-lamps-dress.md diff --git a/.changeset/wet-lamps-dress.md b/.changeset/wet-lamps-dress.md new file mode 100644 index 000000000..7bcb03fc7 --- /dev/null +++ b/.changeset/wet-lamps-dress.md @@ -0,0 +1,5 @@ +--- +'svelte-language-server': patch +--- + +fix: support experimental feature in "Show compiled Code" diff --git a/packages/language-server/src/plugins/svelte/SveltePlugin.ts b/packages/language-server/src/plugins/svelte/SveltePlugin.ts index 70e00e9a0..08b233af5 100644 --- a/packages/language-server/src/plugins/svelte/SveltePlugin.ts +++ b/packages/language-server/src/plugins/svelte/SveltePlugin.ts @@ -110,8 +110,11 @@ export class SveltePlugin async getCompiledResult(document: Document): Promise { try { const svelteDoc = await this.getSvelteDoc(document); - // @ts-ignore is 'client' in Svelte 5 - return svelteDoc.getCompiledWith({ generate: 'dom' }); + return await svelteDoc.getCompiledWith({ + // @ts-ignore is 'client' in Svelte 5 + generate: 'dom', + experimental: document.config?.compilerOptions?.experimental + }); } catch (error) { return null; } From 3b6378aef50e3e871a7334431b91d03826a64e5f Mon Sep 17 00:00:00 2001 From: "Lyu, Wei Da" Date: Sun, 9 Nov 2025 10:57:53 +0800 Subject: [PATCH 2/4] ts-ignore for svelte 4 --- packages/language-server/src/plugins/svelte/SveltePlugin.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/language-server/src/plugins/svelte/SveltePlugin.ts b/packages/language-server/src/plugins/svelte/SveltePlugin.ts index 08b233af5..3373777ad 100644 --- a/packages/language-server/src/plugins/svelte/SveltePlugin.ts +++ b/packages/language-server/src/plugins/svelte/SveltePlugin.ts @@ -113,6 +113,7 @@ export class SveltePlugin return await svelteDoc.getCompiledWith({ // @ts-ignore is 'client' in Svelte 5 generate: 'dom', + // @ts-ignore only available in Svelte 5 experimental: document.config?.compilerOptions?.experimental }); } catch (error) { From 1b328fb863412144d9d3eb27a04f58b360df14b3 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Tue, 11 Nov 2025 10:23:31 +0100 Subject: [PATCH 3/4] Update packages/language-server/src/plugins/svelte/SveltePlugin.ts --- .../src/plugins/svelte/SveltePlugin.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/language-server/src/plugins/svelte/SveltePlugin.ts b/packages/language-server/src/plugins/svelte/SveltePlugin.ts index 3373777ad..fb46c53a7 100644 --- a/packages/language-server/src/plugins/svelte/SveltePlugin.ts +++ b/packages/language-server/src/plugins/svelte/SveltePlugin.ts @@ -110,12 +110,12 @@ export class SveltePlugin async getCompiledResult(document: Document): Promise { try { const svelteDoc = await this.getSvelteDoc(document); - return await svelteDoc.getCompiledWith({ - // @ts-ignore is 'client' in Svelte 5 - generate: 'dom', - // @ts-ignore only available in Svelte 5 - experimental: document.config?.compilerOptions?.experimental - }); + const options: any = { generate: 'dom' }; // 'client' in Svelte 5 + if (document.config?.compilerOptions?.experimental) { + // Svelte 5 only; we gotta write it like this else Svelte 4 fails on unknown key + options.experimental = document.config.compilerOptions.experimental; + } + return await svelteDoc.getCompiledWith(options); } catch (error) { return null; } From b7a97fdf26a080b3b5b423c77b0ac11d3b34450b Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Tue, 11 Nov 2025 10:26:14 +0100 Subject: [PATCH 4/4] Apply suggestions from code review --- packages/language-server/src/plugins/svelte/SveltePlugin.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/language-server/src/plugins/svelte/SveltePlugin.ts b/packages/language-server/src/plugins/svelte/SveltePlugin.ts index fb46c53a7..3ac797f4d 100644 --- a/packages/language-server/src/plugins/svelte/SveltePlugin.ts +++ b/packages/language-server/src/plugins/svelte/SveltePlugin.ts @@ -111,8 +111,9 @@ export class SveltePlugin try { const svelteDoc = await this.getSvelteDoc(document); const options: any = { generate: 'dom' }; // 'client' in Svelte 5 + // @ts-ignore Svelte 5 only; we gotta write it like this else Svelte 4 fails on unknown key if (document.config?.compilerOptions?.experimental) { - // Svelte 5 only; we gotta write it like this else Svelte 4 fails on unknown key + // @ts-ignore Svelte 5 only options.experimental = document.config.compilerOptions.experimental; } return await svelteDoc.getCompiledWith(options);