diff --git a/news/2 Fixes/15452.md b/news/2 Fixes/15452.md new file mode 100644 index 000000000000..ade93536ece8 --- /dev/null +++ b/news/2 Fixes/15452.md @@ -0,0 +1 @@ +Register Jedi regardless of what language server is configured. diff --git a/src/client/activation/activationService.ts b/src/client/activation/activationService.ts index b8db849d1d51..6e9735fb0135 100644 --- a/src/client/activation/activationService.ts +++ b/src/client/activation/activationService.ts @@ -243,6 +243,7 @@ export class LanguageServerExtensionActivationService if (serverType === LanguageServerType.Jedi) { throw ex; } + traceError(ex); this.output.appendLine(LanguageService.lsFailedToStart()); serverType = LanguageServerType.Jedi; server = this.serviceContainer.get(ILanguageServerActivator, serverType); diff --git a/src/client/activation/serviceRegistry.ts b/src/client/activation/serviceRegistry.ts index baa10ab345cf..8245b364a9e2 100644 --- a/src/client/activation/serviceRegistry.ts +++ b/src/client/activation/serviceRegistry.ts @@ -136,12 +136,6 @@ export function registerTypes(serviceManager: IServiceManager, languageServerTyp ILanguageServerFolderService, NodeLanguageServerFolderService, ); - } else if (languageServerType === LanguageServerType.Jedi) { - serviceManager.add( - ILanguageServerActivator, - JediExtensionActivator, - LanguageServerType.Jedi, - ); } else if (languageServerType === LanguageServerType.JediLSP) { serviceManager.add( ILanguageServerActivator, @@ -165,6 +159,11 @@ export function registerTypes(serviceManager: IServiceManager, languageServerTyp LanguageServerType.None, ); } + serviceManager.add( + ILanguageServerActivator, + JediExtensionActivator, + LanguageServerType.Jedi, + ); // We fallback to Jedi if for some reason we're unable to use other language servers, hence register this always. serviceManager.addSingleton( IDownloadChannelRule, diff --git a/src/test/activation/serviceRegistry.unit.test.ts b/src/test/activation/serviceRegistry.unit.test.ts index bd48ef6f62ef..614fe02e6514 100644 --- a/src/test/activation/serviceRegistry.unit.test.ts +++ b/src/test/activation/serviceRegistry.unit.test.ts @@ -9,6 +9,7 @@ import { DownloadBetaChannelRule, DownloadDailyChannelRule } from '../../client/ import { LanguageServerDownloader } from '../../client/activation/common/downloader'; import { LanguageServerDownloadChannel } from '../../client/activation/common/packageRepository'; import { ExtensionSurveyPrompt } from '../../client/activation/extensionSurvey'; +import { JediExtensionActivator } from '../../client/activation/jedi'; import { DotNetLanguageServerActivator } from '../../client/activation/languageServer/activator'; import { DotNetLanguageServerAnalysisOptions } from '../../client/activation/languageServer/analysisOptions'; import { DotNetLanguageClientFactory } from '../../client/activation/languageServer/languageClientFactory'; @@ -161,6 +162,13 @@ suite('Unit Tests - Language Server Activation Service Registry', () => { LanguageServerType.Microsoft, ), ).once(); + verify( + serviceManager.add( + ILanguageServerActivator, + JediExtensionActivator, + LanguageServerType.Jedi, + ), + ).once(); verify(serviceManager.add(ILanguageServerProxy, DotNetLanguageServerProxy)).once(); verify(serviceManager.add(ILanguageServerManager, DotNetLanguageServerManager)).once(); verify(