From b1f6d2f7e921d7b19f4cbaacef8c28af8bcd39c8 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Wed, 24 Jul 2024 13:49:12 -0700 Subject: [PATCH] Handle bad directory watch on web Fix #221299 toResource throws here because we're tyring to watch directories outside of the workspace root. Should be fixed on TS side. Until them, adding a `catch` --- .../typescript-language-features/web/src/serverHost.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/extensions/typescript-language-features/web/src/serverHost.ts b/extensions/typescript-language-features/web/src/serverHost.ts index b3b454cc73bf5..dedec85991fbb 100644 --- a/extensions/typescript-language-features/web/src/serverHost.ts +++ b/extensions/typescript-language-features/web/src/serverHost.ts @@ -11,6 +11,7 @@ import { FileWatcherManager } from './fileWatcherManager'; import { Logger } from './logging'; import { PathMapper, looksLikeNodeModules, mapUri } from './pathMapper'; import { findArgument, hasArgument } from './util/args'; +import { URI } from 'vscode-uri'; type ServerHostWithImport = ts.server.ServerHost & { importPlugin(root: string, moduleName: string): Promise }; @@ -349,7 +350,13 @@ function createServerHost( return path; } - let uri = pathMapper.toResource(path); + let uri: URI; + try { + uri = pathMapper.toResource(path); + } catch { + return path; + } + if (isNm) { uri = mapUri(uri, 'vscode-node-modules'); }