From fc5db4655f7a53c7cc21b5a38fb8470c75697523 Mon Sep 17 00:00:00 2001 From: johnsoncodehk Date: Sun, 23 Oct 2022 03:04:48 +0800 Subject: [PATCH] fix: file watcher not working close #2028 --- packages/language-server/src/utils/project.ts | 1 + .../language-server/src/utils/workspaces.ts | 29 +++++++++++-------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/packages/language-server/src/utils/project.ts b/packages/language-server/src/utils/project.ts index 23982a8a7..78ea1b997 100644 --- a/packages/language-server/src/utils/project.ts +++ b/packages/language-server/src/utils/project.ts @@ -131,6 +131,7 @@ export async function createProject( if (creates.length || deletes.length) { parsedCommandLine = createParsedCommandLine(ts, sys, shared.getPathOfUri(rootUri.toString()), tsConfig, plugins); + projectVersion++; typeRootVersion++; } } diff --git a/packages/language-server/src/utils/workspaces.ts b/packages/language-server/src/utils/workspaces.ts index 77c80ec16..23224740f 100644 --- a/packages/language-server/src/utils/workspaces.ts +++ b/packages/language-server/src/utils/workspaces.ts @@ -41,6 +41,9 @@ export function createWorkspaces( if (tsConfigChanges.length) { reloadDiagnostics(); } + else { + onDriveFileUpdated(); + } }); runtimeEnv.onDidChangeConfiguration?.(async () => { onDriveFileUpdated(); @@ -51,18 +54,20 @@ export function createWorkspaces( getProject, reloadProject, add: (rootUri: URI) => { - workspaces.set(rootUri.toString(), createWorkspaceProjects( - runtimeEnv, - plugins, - fsHost, - rootUri, - ts, - tsLocalized, - documents, - configurationHost, - cancelTokenHost, - options, - )); + if (!workspaces.has(rootUri.toString())) { + workspaces.set(rootUri.toString(), createWorkspaceProjects( + runtimeEnv, + plugins, + fsHost, + rootUri, + ts, + tsLocalized, + documents, + configurationHost, + cancelTokenHost, + options, + )); + } }, remove: (rootUri: URI) => { const _workspace = workspaces.get(rootUri.toString());