From ee45d5bf8f2e1826b2a106b030abe891cfc0b37c Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Mon, 8 Jan 2024 17:05:05 +0000 Subject: [PATCH] perf(lsp): use host-owned cache for auto-import completions (#21852) --- cli/tsc/99_main_compiler.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cli/tsc/99_main_compiler.js b/cli/tsc/99_main_compiler.js index 766bc0e6ea..5009807e1c 100644 --- a/cli/tsc/99_main_compiler.js +++ b/cli/tsc/99_main_compiler.js @@ -537,6 +537,14 @@ delete Object.prototype.__proto__; getProjectVersion() { return ops.op_project_version(); }, + // @ts-ignore Undocumented method. + getModuleSpecifierCache() { + return moduleSpecifierCache; + }, + // @ts-ignore Undocumented method. + getCachedExportInfoMap() { + return exportMapCache; + }, getSourceFile( specifier, languageVersion, @@ -766,6 +774,12 @@ delete Object.prototype.__proto__; }, }; + // @ts-ignore Undocumented function. + const moduleSpecifierCache = ts.server.createModuleSpecifierCache(host); + + // @ts-ignore Undocumented function. + const exportMapCache = ts.createCacheableExportInfoMap(host); + // override the npm install @types package diagnostics to be deno specific ts.setLocalizedDiagnosticMessages((() => { const nodeMessage = "Cannot find name '{0}'."; // don't offer any suggestions