From 8938ad70b8ec158f411b3c675cca962a26e1b807 Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Sun, 25 Aug 2024 00:39:01 +0800 Subject: [PATCH] Update typescriptProjectLs.ts --- .../lib/project/typescriptProjectLs.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/language-server/lib/project/typescriptProjectLs.ts b/packages/language-server/lib/project/typescriptProjectLs.ts index f1d011b6..f1c01197 100644 --- a/packages/language-server/lib/project/typescriptProjectLs.ts +++ b/packages/language-server/lib/project/typescriptProjectLs.ts @@ -75,6 +75,7 @@ export async function createTypeScriptLS( sys, uriConverter, }); + const unsavedRootFileUris = createUriMap(); const disposables = [ server.documents.onDidOpen(({ document }) => updateFsCacheFromSyncedDocument(document)), server.documents.onDidSave(({ document }) => updateFsCacheFromSyncedDocument(document)), @@ -95,18 +96,17 @@ export async function createTypeScriptLS( const stat = await serviceEnv.fs?.stat(uri); const isUnsaved = stat?.type !== 1; if (isUnsaved) { + const lastProjectVersion = projectVersion; await updateCommandLine(); + if (lastProjectVersion !== projectVersion) { + unsavedRootFileUris.set(uri, true); + } } }), server.documents.onDidClose(async ({ document }) => { const uri = URI.parse(document.uri); - const isWorkspaceFile = workspaceFolder.scheme === uri.scheme; - if (!isWorkspaceFile) { - return; - } - const stat = await serviceEnv.fs?.stat(uri); - const isUnsaved = stat?.type !== 1; - if (isUnsaved) { + if (unsavedRootFileUris.has(uri)) { + unsavedRootFileUris.delete(uri); await updateCommandLine(); } }),