diff --git a/src/server/project.ts b/src/server/project.ts index e3dc2b77369d6..6d86dd5271706 100644 --- a/src/server/project.ts +++ b/src/server/project.ts @@ -1604,6 +1604,16 @@ namespace ts.server { return !!this.program && this.program.isSourceOfProjectReferenceRedirect(fileName); } + /*@internal*/ + protected getGlobalPluginSearchPaths() { + // Search any globally-specified probe paths, then our peer node_modules + return [ + ...this.projectService.pluginProbeLocations, + // ../../.. to walk from X/node_modules/typescript/lib/tsserver.js to X/node_modules/ + combinePaths(this.projectService.getExecutingFilePath(), "../../.."), + ]; + } + protected enableGlobalPlugins(options: CompilerOptions, pluginConfigOverrides: Map | undefined): void { if (!this.projectService.globalPlugins.length) return; const host = this.projectService.host; @@ -1614,11 +1624,7 @@ namespace ts.server { } // Search any globally-specified probe paths, then our peer node_modules - const searchPaths = [ - ...this.projectService.pluginProbeLocations, - // ../../.. to walk from X/node_modules/typescript/lib/tsserver.js to X/node_modules/ - combinePaths(this.projectService.getExecutingFilePath(), "../../.."), - ]; + const searchPaths = this.getGlobalPluginSearchPaths(); // Enable global plugins with synthetic configuration entries for (const globalPluginName of this.projectService.globalPlugins) { @@ -2527,10 +2533,7 @@ namespace ts.server { return; } - // Search our peer node_modules, then any globally-specified probe paths - // ../../.. to walk from X/node_modules/typescript/lib/tsserver.js to X/node_modules/ - const searchPaths = [combinePaths(this.projectService.getExecutingFilePath(), "../../.."), ...this.projectService.pluginProbeLocations]; - + const searchPaths = this.getGlobalPluginSearchPaths(); if (this.projectService.allowLocalPluginLoads) { const local = getDirectoryPath(this.canonicalConfigFilePath); this.projectService.logger.info(`Local plugin loading enabled; adding ${local} to search paths`);