Skip to content

Commit 5126763

Browse files
authored
nes: joint: don't prefer last NES suggestion if it wasn't shown anyway (#2537)
1 parent da50984 commit 5126763

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/extension/inlineEdits/vscode-node/jointInlineCompletionProvider.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ type LastNesSuggestion = {
239239
docUri: vscode.Uri;
240240
docVersionId: number;
241241
docWithNesEditApplied: StringText;
242+
completionItem: NesCompletionItem;
242243
};
243244

244245
class 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

Comments
 (0)