File tree Expand file tree Collapse file tree 1 file changed +10
-2
lines changed Expand file tree Collapse file tree 1 file changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -152,6 +152,10 @@ export class LanguageClientManager implements LanguageClient {
152152      try  { 
153153        this . startPromise  =  this . _start ( ) 
154154        await  this . startPromise 
155+         // If the initialize request fails, the start method still returns a resolve promise due to a vscode-languageclient bug 
156+         if  ( ! ( this . languageClient ?. isRunning ( )  ??  false ) )  { 
157+           throw  new  Error ( 'Language server not running' ) 
158+         } 
155159        started  =  true 
156160      }  catch  ( error )  { 
157161        this . languageClient  =  undefined 
@@ -299,8 +303,12 @@ export class LanguageClientManager implements LanguageClient {
299303        } 
300304        case  State . Stopped : { 
301305          this . updateStatus ( 'closed' ) 
302- 
303-           if  ( state . oldState  ===  State . Running  &&  ! this . isDisposed ( ) )  { 
306+           setTimeout ( ( )  =>  { 
307+             // setTimeout is required or the dispose() fails (Client is stopping but no stop promise available.) 
308+             void  languageClient . dispose ( ) 
309+           } ) 
310+           if  ( state . oldState  ===  State . Running  &&  ! this . isDisposed ( )  &&  this . languageClient  ===  languageClient )  { 
311+             this . languageClient  =  undefined 
304312            console . info ( '[LSP] Restarting language client' ,  state ) 
305313            this . start ( ) . catch ( error  =>  { 
306314              monaco . errorHandler . onUnexpectedError ( new  Error ( '[LSP] Language client stopped' ,  { 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments