@@ -159,31 +159,38 @@ function! s:async_guru(args) abort
159
159
call add (messages , a: msg )
160
160
endfunction
161
161
162
- function ! s: exit_cb (job, exitval) closure
163
- let out = join ( messages , " \n " )
162
+ let status = {}
163
+ let exitval = 0
164
164
165
+ function ! s: exit_cb (job, exitval) closure
165
166
let status = {
166
167
\ ' desc' : ' last status' ,
167
168
\ ' type' : statusline_type,
168
169
\ ' state' : " finished" ,
169
170
\ }
170
171
171
172
if a: exitval
173
+ let exitval = a: exitval
172
174
let status.state = " failed"
173
175
endif
174
176
175
177
call go#statusline#Update (status_dir, status)
178
+ endfunction
179
+
180
+ function ! s: close_cb (ch ) closure
181
+ let out = join (messages , " \n " )
176
182
177
183
if has_key (a: args , ' custom_parse' )
178
- call a: args .custom_parse (a: exitval , out)
184
+ call a: args .custom_parse (exitval, out)
179
185
else
180
- call s: parse_guru_output (a: exitval , out, a: args .mode )
186
+ call s: parse_guru_output (exitval, out, a: args .mode )
181
187
endif
182
188
endfunction
183
189
184
190
let start_options = {
185
191
\ ' callback' : funcref (" s:callback" ),
186
192
\ ' exit_cb' : funcref (" s:exit_cb" ),
193
+ \ ' close_cb' : funcref (" s:close_cb" ),
187
194
\ }
188
195
189
196
if has_key (result, ' stdin_content' )
0 commit comments