@@ -143,7 +143,7 @@ export class Picker<T> implements AsyncDisposable {
143143 { args } : { args : string [ ] } ,
144144 { signal } : { signal ?: AbortSignal } = { } ,
145145 ) : Promise < PickerResult < T > | undefined > {
146- using stack = new DisposableStack ( ) ;
146+ await using stack = new AsyncDisposableStack ( ) ;
147147
148148 this . #collectProcessor. start ( denops , { args } ) ;
149149 stack . defer ( ( ) => this . #collectProcessor. pause ( ) ) ;
@@ -158,8 +158,8 @@ export class Picker<T> implements AsyncDisposable {
158158 cmdline : this . #inputComponent. cmdline ,
159159 cmdpos : this . #inputComponent. cmdpos ,
160160 } ) ;
161- using scheduler = new Scheduler ( this . #schedulerInterval) ;
162- scheduler . start ( async ( ) => {
161+ const scheduler = stack . use ( new Scheduler ( this . #schedulerInterval) ) ;
162+ const waiter = scheduler . start ( async ( ) => {
163163 // Check cmdline/cmdpos
164164 await cmdliner . check ( denops ) ;
165165
@@ -197,7 +197,11 @@ export class Picker<T> implements AsyncDisposable {
197197 }
198198 } , { signal } ) ;
199199
200- const query = await cmdliner . input ( denops , { signal } ) ;
200+ stack . defer ( ( ) => Cmdliner . cancel ( denops ) ) ;
201+ const query = await Promise . race ( [
202+ cmdliner . input ( denops , { signal } ) ,
203+ waiter ,
204+ ] ) ;
201205 if ( query == null ) {
202206 return ;
203207 }
@@ -278,6 +282,11 @@ export class Picker<T> implements AsyncDisposable {
278282 accept : ( name : string ) => Promise < void > ;
279283 } ) : void {
280284 switch ( event . type ) {
285+ case "debug-error" :
286+ console . log (
287+ `[fall] 'debug-error' event has received: ${ event . message } ` ,
288+ ) ;
289+ throw new Error ( event . message ) ;
281290 case "vim-resized" : {
282291 this . #resized = {
283292 width : event . width ,
0 commit comments