From 84e1db447f045f19fcdb6c5135e73f59352a4614 Mon Sep 17 00:00:00 2001 From: Matsuuu Date: Thu, 15 Sep 2022 14:00:31 +0300 Subject: [PATCH 1/2] Skip setting file to language service if exists and has not changed --- src/typescript-worker/language-service-context.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/typescript-worker/language-service-context.ts b/src/typescript-worker/language-service-context.ts index 00d9cdbf..2ea57154 100644 --- a/src/typescript-worker/language-service-context.ts +++ b/src/typescript-worker/language-service-context.ts @@ -66,12 +66,17 @@ class WorkerLanguageServiceHost implements ts.LanguageServiceHost { */ updateFileContentIfNeeded(fileName: string, content: string) { const file = this.files.get(fileName); - if (file && file.content !== content) { - file.content = content; - file.version += 1; - } else { - this.files.set(fileName, {content, version: 0}); + if (file) { + if (file.content === content) { + // The file hasn't changed, exit early. + return; + } + file.content = content; + file.version += 1; + return; } + + this.files.set(fileName, {content, version: 0}); } /** From 5c0fb31ac24af164eb164cd728a3109fd49c4179 Mon Sep 17 00:00:00 2001 From: Matsuuu Date: Thu, 15 Sep 2022 14:07:22 +0300 Subject: [PATCH 2/2] Lint & format --- src/typescript-worker/language-service-context.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/typescript-worker/language-service-context.ts b/src/typescript-worker/language-service-context.ts index 2ea57154..41ab03e1 100644 --- a/src/typescript-worker/language-service-context.ts +++ b/src/typescript-worker/language-service-context.ts @@ -67,13 +67,13 @@ class WorkerLanguageServiceHost implements ts.LanguageServiceHost { updateFileContentIfNeeded(fileName: string, content: string) { const file = this.files.get(fileName); if (file) { - if (file.content === content) { - // The file hasn't changed, exit early. - return; - } - file.content = content; - file.version += 1; + if (file.content === content) { + // The file hasn't changed, exit early. return; + } + file.content = content; + file.version += 1; + return; } this.files.set(fileName, {content, version: 0});