@@ -51,14 +51,20 @@ export class VscodeProvider {
51
51
52
52
logger . debug ( "setting up vs code..." )
53
53
return new Promise < ipc . WorkbenchOptions > ( ( resolve , reject ) => {
54
+ const onExit = ( code : number | null ) => reject ( new Error ( `VS Code exited unexpectedly with code ${ code } ` ) )
55
+
54
56
vscode . once ( "message" , ( message : ipc . VscodeMessage ) => {
55
57
logger . debug ( "got message from vs code" , field ( "message" , message ) )
58
+ vscode . off ( "error" , reject )
59
+ vscode . off ( "exit" , onExit )
56
60
return message . type === "options" && message . id === id
57
61
? resolve ( message . options )
58
62
: reject ( new Error ( "Unexpected response during initialization" ) )
59
63
} )
64
+
60
65
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
+
62
68
this . send (
63
69
{
64
70
type : "init" ,
@@ -90,14 +96,19 @@ export class VscodeProvider {
90
96
} )
91
97
92
98
this . _vscode = new Promise ( ( resolve , reject ) => {
99
+ const onExit = ( code : number | null ) => reject ( new Error ( `VS Code exited unexpectedly with code ${ code } ` ) )
100
+
93
101
vscode . once ( "message" , ( message : ipc . VscodeMessage ) => {
94
102
logger . debug ( "got message from vs code" , field ( "message" , message ) )
103
+ vscode . off ( "error" , reject )
104
+ vscode . off ( "exit" , onExit )
95
105
return message . type === "ready"
96
106
? resolve ( vscode )
97
107
: reject ( new Error ( "Unexpected response waiting for ready response" ) )
98
108
} )
109
+
99
110
vscode . once ( "error" , reject )
100
- vscode . once ( "exit" , ( code ) => reject ( new Error ( `VS Code exited unexpectedly with code ${ code } ` ) ) )
111
+ vscode . once ( "exit" , onExit )
101
112
} )
102
113
103
114
return this . _vscode
0 commit comments