@@ -10,6 +10,7 @@ import createLanguageClient from './createLanguageClient'
1010import { getFile } from './customRequests'
1111import staticOptions , { LanguageClientId , StaticLanguageClientOptions } from './staticOptions'
1212import { WillDisposeFeature , WillShutdownParams } from './extensions'
13+ import { loadExtensionConfigurations } from './extensionConfiguration'
1314
1415type Status = {
1516 type : string
@@ -39,7 +40,8 @@ export class LanguageClientManager implements LanguageClient {
3940 private languageServerAddress : string ,
4041 private getSecurityToken : ( ) => Promise < string > ,
4142 private languageServerOptions : StaticLanguageClientOptions ,
42- private libraryUrls : string [ ]
43+ private libraryUrls : string [ ] ,
44+ private mutualized : boolean
4345 ) {
4446 }
4547
@@ -226,7 +228,13 @@ export class LanguageClientManager implements LanguageClient {
226228
227229 this . languageClient . registerFeature ( new WillDisposeFeature ( this . languageClient , this . onWillShutdownEmitter ) )
228230
229- this . languageClient . start ( )
231+ loadExtensionConfigurations ( [ this . id ] , this . mutualized ) . catch ( error => {
232+ console . error ( 'Unable to load extension configuration' , error )
233+ } ) . finally ( ( ) => {
234+ if ( ! this . isDisposed ( ) ) {
235+ this . languageClient ! . start ( )
236+ }
237+ } )
230238 }
231239
232240 sendNotification ( method : string , params : unknown ) : void {
@@ -245,7 +253,8 @@ function createLanguageClientManager (
245253 sessionId : string | undefined ,
246254 languageServerAddress : string ,
247255 getSecurityToken : ( ) => Promise < string > ,
248- libraryUrls : string [ ]
256+ libraryUrls : string [ ] ,
257+ mutualized : boolean = languageServerAddress . includes ( 'mutualized' )
249258) : LanguageClientManager {
250259 if ( languageClientManagerByLanguageId [ id ] != null ) {
251260 throw new Error ( `Language client for language ${ id } already started` )
@@ -257,7 +266,7 @@ function createLanguageClientManager (
257266 }
258267 installServices ( )
259268
260- const languageClientManager = new LanguageClientManager ( id , sessionId , languageServerAddress , getSecurityToken , languageServerOptions , libraryUrls )
269+ const languageClientManager = new LanguageClientManager ( id , sessionId , languageServerAddress , getSecurityToken , languageServerOptions , libraryUrls , mutualized )
261270 languageClientManagerByLanguageId [ id ] = languageClientManager
262271
263272 const textModelContentProviderDisposable = registerTextModelContentProvider ( 'file' , {
0 commit comments