@@ -239,6 +239,7 @@ type LastNesSuggestion = {
239239 docUri : vscode . Uri ;
240240 docVersionId : number ;
241241 docWithNesEditApplied : StringText ;
242+ completionItem : NesCompletionItem ;
242243} ;
243244
244245class JointCompletionsProvider extends Disposable implements vscode . InlineCompletionItemProvider {
@@ -404,7 +405,7 @@ class JointCompletionsProvider extends Disposable implements vscode.InlineComple
404405 return list ;
405406 }
406407
407- const firstItem = list . items [ 0 ] ;
408+ const firstItem = ( list . items as NesCompletionItem [ ] ) [ 0 ] ;
408409 if ( ! firstItem . range || typeof firstItem . insertText !== 'string' ) {
409410 return list ;
410411 }
@@ -419,6 +420,7 @@ class JointCompletionsProvider extends Disposable implements vscode.InlineComple
419420 docUri : document . uri ,
420421 docVersionId,
421422 docWithNesEditApplied : new StringText ( applied ) ,
423+ completionItem : firstItem ,
422424 } ;
423425
424426 return list ;
@@ -464,9 +466,9 @@ class JointCompletionsProvider extends Disposable implements vscode.InlineComple
464466
465467 tracer . trace ( 'requesting completions and/or NES' ) ;
466468
467- if ( ! lastNesSuggestion ) {
469+ if ( ! lastNesSuggestion || ! lastNesSuggestion . completionItem . wasShown ) {
468470 // prefer completions unless there are none
469- tracer . trace ( `no last NES suggestion to consider ` ) ;
471+ tracer . trace ( `defaulting to yielding to completions; last NES suggestion is ${ lastNesSuggestion ? 'not shown' : 'not available' } ` ) ;
470472 const completionsP = this . _invokeCompletionsProvider ( tracer , document , position , context , tokens . completionsCts . token , sw ) ;
471473 const nesP = this . _invokeNESProvider ( tracer , document , position , true , context , tokens . nesCts . token , sw ) ;
472474 return this . _returnCompletionsOrOtherwiseNES ( completionsP , nesP , docSnapshot , sw , tracer , tokens ) ;
0 commit comments