diff --git a/src/daemon.ts b/src/daemon.ts index 2fec016..49cf3fe 100644 --- a/src/daemon.ts +++ b/src/daemon.ts @@ -191,11 +191,15 @@ function forwardEvents(entry: ClientEntry, events: FileEvent[]): void { if (process.env.LSP_DEBUG) { log(`watcher fire`, entry.server.id, JSON.stringify(events)); } + for (const uri of entry.opened.keys()) entry.client.clearDiagnostics(uri); entry.client.sendNotification("workspace/didChangeWatchedFiles", { changes: events, }); - if (entry.usesDerivedWatchers) { - evict(entry, "derived watcher event"); + if (entry.usesDerivedWatchers && entry.server.id === "typescript-language-server") { + void entry.client.sendRequest("workspace/executeCommand", { + command: "typescript.tsserverRequest", + arguments: ["reloadProjects"], + }).catch((err) => log("typescript reloadProjects failed", (err as Error).message)); } } catch (err) { log(`watcher send failed`, entry.server.id, (err as Error).message);