From 26a4f37de806ba048432db3fe9323a6523419034 Mon Sep 17 00:00:00 2001 From: jpedley Date: Sat, 30 Nov 2024 10:41:42 +0800 Subject: [PATCH 1/2] Only apply required changes to let non-file type URIs work with the extension --- .../src/plugins/typescript/DocumentSnapshot.ts | 8 ++++++-- packages/language-server/src/utils.ts | 7 +++++-- packages/svelte-vscode/src/extension.ts | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/language-server/src/plugins/typescript/DocumentSnapshot.ts b/packages/language-server/src/plugins/typescript/DocumentSnapshot.ts index aaf2a11e6..360506824 100644 --- a/packages/language-server/src/plugins/typescript/DocumentSnapshot.ts +++ b/packages/language-server/src/plugins/typescript/DocumentSnapshot.ts @@ -266,7 +266,7 @@ function preprocessSvelteFile(document: Document, options: SvelteSnapshotOptions export class SvelteDocumentSnapshot implements DocumentSnapshot { private mapper?: DocumentMapper; private lineOffsets?: number[]; - private url = pathToUrl(this.filePath); + private url = this.fileUrl; version = this.parent.version; isSvelte5Plus = Number(this.svelteVersion?.split('.')[0]) >= 5; @@ -281,7 +281,11 @@ export class SvelteDocumentSnapshot implements DocumentSnapshot { private readonly exportedNames: IExportedNames, private readonly tsxMap?: EncodedSourceMap, private readonly htmlAst?: TemplateNode - ) {} + ) { } + + get fileUrl() { + return this.parent.getURL() || ''; + } get filePath() { return this.parent.getFilePath() || ''; diff --git a/packages/language-server/src/utils.ts b/packages/language-server/src/utils.ts index a79c49999..51c14f4f4 100644 --- a/packages/language-server/src/utils.ts +++ b/packages/language-server/src/utils.ts @@ -28,13 +28,16 @@ export function clamp(num: number, min: number, max: number): number { export function urlToPath(stringUrl: string): string | null { const url = URI.parse(stringUrl); - if (url.scheme !== 'file') { + if (url.scheme === 'http' || url.scheme === 'https') { return null; } return url.fsPath.replace(/\\/g, '/'); } -export function pathToUrl(path: string) { +export function pathToUrl(path: string, scheme?: string) { + const baseUri = URI.file(path); + if (scheme) + return baseUri.with({ scheme: scheme }).toString(); return URI.file(path).toString(); } diff --git a/packages/svelte-vscode/src/extension.ts b/packages/svelte-vscode/src/extension.ts index 267d4772c..f62f27308 100644 --- a/packages/svelte-vscode/src/extension.ts +++ b/packages/svelte-vscode/src/extension.ts @@ -151,7 +151,7 @@ export function activateSvelteLanguageServer(context: ExtensionContext) { } const clientOptions: LanguageClientOptions = { - documentSelector: [{ scheme: 'file', language: 'svelte' }], + documentSelector: [{ scheme: '*', language: 'svelte' }], revealOutputChannelOn: RevealOutputChannelOn.Never, synchronize: { // TODO deprecated, rework upon next VS Code minimum version bump From 41a3cdc00ae0c702b2f0baddd2faf06f9267f663 Mon Sep 17 00:00:00 2001 From: James Bennion-Pedley <35117353+BOJIT@users.noreply.github.com> Date: Wed, 4 Dec 2024 17:35:35 +0800 Subject: [PATCH 2/2] Update packages/language-server/src/utils.ts Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com> --- packages/language-server/src/utils.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/language-server/src/utils.ts b/packages/language-server/src/utils.ts index 51c14f4f4..2caca64a4 100644 --- a/packages/language-server/src/utils.ts +++ b/packages/language-server/src/utils.ts @@ -36,9 +36,10 @@ export function urlToPath(stringUrl: string): string | null { export function pathToUrl(path: string, scheme?: string) { const baseUri = URI.file(path); - if (scheme) + if (scheme) { return baseUri.with({ scheme: scheme }).toString(); - return URI.file(path).toString(); + } + return baseUri.toString(); } /**