diff --git a/src/server/project.ts b/src/server/project.ts index 44ec0bff482c3..14c98583bd6a7 100644 --- a/src/server/project.ts +++ b/src/server/project.ts @@ -1606,6 +1606,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; @@ -1615,14 +1625,8 @@ namespace ts.server { return; } - // 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(), "../../.."), - ]; - // Enable global plugins with synthetic configuration entries + const searchPaths = this.getGlobalPluginSearchPaths(); for (const globalPluginName of this.projectService.globalPlugins) { // Skip empty names from odd commandline parses if (!globalPluginName) continue; @@ -2530,10 +2534,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`);