From 005f93e50aa4aa1a333b73cbeff2b4a07ef34a70 Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Fri, 4 Jul 2025 16:37:48 +0200 Subject: [PATCH] Fixes https://github.com/microsoft/vscode-internalbacklog/issues/5602 (#254099) * Fixes https://github.com/microsoft/vscode-internalbacklog/issues/5602 * Aligns test --- .../inlineCompletions/browser/model/inlineCompletionsModel.ts | 1 + .../inlineCompletions/test/browser/inlineCompletions.test.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.ts b/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.ts index ad4f401d00a6..abb3ac944cbd 100644 --- a/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.ts +++ b/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.ts @@ -172,6 +172,7 @@ export class InlineCompletionsModel extends Disposable { changeSummary.changeReason = detailedReasons.length > 0 ? detailedReasons[0].getType() : ''; changeSummary.textChange = true; } else if (ctx.didChange(this._forceUpdateExplicitlySignal)) { + changeSummary.preserveCurrentCompletion = true; changeSummary.inlineCompletionTriggerKind = InlineCompletionTriggerKind.Explicit; } else if (ctx.didChange(this.dontRefetchSignal)) { changeSummary.dontRefetch = true; diff --git a/src/vs/editor/contrib/inlineCompletions/test/browser/inlineCompletions.test.ts b/src/vs/editor/contrib/inlineCompletions/test/browser/inlineCompletions.test.ts index 1e4f0f7c9345..a8e0d0ea8b07 100644 --- a/src/vs/editor/contrib/inlineCompletions/test/browser/inlineCompletions.test.ts +++ b/src/vs/editor/contrib/inlineCompletions/test/browser/inlineCompletions.test.ts @@ -340,6 +340,7 @@ suite('Inline Completions', () => { test('when accepting word by word', async function () { // The user types the text as suggested and the provider reports a different suggestion. + // Even when triggering explicitly, we want to keep the suggestion. const provider = new MockInlineCompletionsProvider(); await withAsyncTestCodeEditorAndInlineCompletionsModel('', @@ -356,7 +357,7 @@ suite('Inline Completions', () => { await ctx.model.triggerExplicitly(); // reset to provider truth await timeout(10000); - assert.deepStrictEqual(ctx.context.getAndClearViewStates(), (["foo[ baz]"])); + assert.deepStrictEqual(ctx.context.getAndClearViewStates(), ([])); } ); });