@@ -51,14 +51,20 @@ export class VscodeProvider {
5151
5252 logger . debug ( "setting up vs code..." )
5353 return new Promise < ipc . WorkbenchOptions > ( ( resolve , reject ) => {
54+ const onExit = ( code : number | null ) => reject ( new Error ( `VS Code exited unexpectedly with code ${ code } ` ) )
55+
5456 vscode . once ( "message" , ( message : ipc . VscodeMessage ) => {
5557 logger . debug ( "got message from vs code" , field ( "message" , message ) )
58+ vscode . off ( "error" , reject )
59+ vscode . off ( "exit" , onExit )
5660 return message . type === "options" && message . id === id
5761 ? resolve ( message . options )
5862 : reject ( new Error ( "Unexpected response during initialization" ) )
5963 } )
64+
6065 vscode . once ( "error" , reject )
61- vscode . once ( "exit" , ( code ) => reject ( new Error ( `VS Code exited unexpectedly with code ${ code } ` ) ) )
66+ vscode . once ( "exit" , onExit )
67+
6268 this . send (
6369 {
6470 type : "init" ,
@@ -90,14 +96,19 @@ export class VscodeProvider {
9096 } )
9197
9298 this . _vscode = new Promise ( ( resolve , reject ) => {
99+ const onExit = ( code : number | null ) => reject ( new Error ( `VS Code exited unexpectedly with code ${ code } ` ) )
100+
93101 vscode . once ( "message" , ( message : ipc . VscodeMessage ) => {
94102 logger . debug ( "got message from vs code" , field ( "message" , message ) )
103+ vscode . off ( "error" , reject )
104+ vscode . off ( "exit" , onExit )
95105 return message . type === "ready"
96106 ? resolve ( vscode )
97107 : reject ( new Error ( "Unexpected response waiting for ready response" ) )
98108 } )
109+
99110 vscode . once ( "error" , reject )
100- vscode . once ( "exit" , ( code ) => reject ( new Error ( `VS Code exited unexpectedly with code ${ code } ` ) ) )
111+ vscode . once ( "exit" , onExit )
101112 } )
102113
103114 return this . _vscode
0 commit comments