File tree Expand file tree Collapse file tree 2 files changed +12
-1
lines changed Expand file tree Collapse file tree 2 files changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -368,6 +368,7 @@ export default class AutoLanguageClient {
368
368
369
369
private captureServerErrors ( lsProcess : LanguageServerProcess , projectPath : string ) : void {
370
370
lsProcess . on ( 'error' , ( err ) => this . handleSpawnFailure ( err ) ) ;
371
+ lsProcess . on ( "close" , ( ...args ) => this . handleCloseFailure ( ...args ) ) ;
371
372
lsProcess . on ( 'exit' , ( code , signal ) => this . logger . debug ( `exit: code ${ code } signal ${ signal } ` ) ) ;
372
373
lsProcess . stderr . setEncoding ( 'utf8' ) ;
373
374
lsProcess . stderr . on ( 'data' , ( chunk : Buffer ) => {
@@ -391,6 +392,14 @@ export default class AutoLanguageClient {
391
392
) ;
392
393
}
393
394
395
+ private handleCloseFailure ( code : number | null , signal : NodeJS . Signals | null ) : void {
396
+ if ( code !== 0 && signal === null ) {
397
+ atom . notifications . addError (
398
+ `${ this . getServerName ( ) } language server for ${ this . getLanguageName ( ) } was closed with code: ${ code } .`
399
+ ) ;
400
+ }
401
+ }
402
+
394
403
/** Creates the RPC connection which can be ipc, socket or stdio */
395
404
private createRpcConnection ( lsProcess : LanguageServerProcess ) : rpc . MessageConnection {
396
405
let reader : rpc . MessageReader ;
Original file line number Diff line number Diff line change @@ -24,8 +24,10 @@ export interface LanguageServerProcess extends EventEmitter {
24
24
pid : number ;
25
25
26
26
kill ( signal ?: NodeJS . Signals | number ) : void ;
27
+ on ( event : 'close' , listener : ( code : number | null , signal : NodeJS . Signals | null ) => void ) : this;
28
+ on ( event : 'disconnect' , listener : ( ) => void ) : this;
27
29
on ( event : 'error' , listener : ( err : Error ) => void ) : this;
28
- on ( event : 'exit' , listener : ( code : number , signal : NodeJS . Signals | number ) => void ) : this;
30
+ on ( event : 'exit' , listener : ( code : number | null , signal : NodeJS . Signals | null ) => void ) : this;
29
31
}
30
32
31
33
/** The necessary elements for a server that has started or is starting. */
You can’t perform that action at this time.
0 commit comments