diff --git a/packages/amazonq/src/app/inline/EditRendering/displayImage.ts b/packages/amazonq/src/app/inline/EditRendering/displayImage.ts index 300d877257b..810877a2025 100644 --- a/packages/amazonq/src/app/inline/EditRendering/displayImage.ts +++ b/packages/amazonq/src/app/inline/EditRendering/displayImage.ts @@ -324,19 +324,20 @@ export async function displaySvgDecoration( isInlineEdit: true, } languageClient.sendNotification('aws/logInlineCompletionSessionResults', params) - // Only auto trigger on acceptance if there is a nextToken - if (inlineCompletionProvider && session.editsStreakPartialResultToken) { - await inlineCompletionProvider.provideInlineCompletionItems( - editor.document, - endPosition, - { - triggerKind: vscode.InlineCompletionTriggerKind.Automatic, - selectedCompletionInfo: undefined, - }, - new vscode.CancellationTokenSource().token, - { emitTelemetry: false, showUi: false, editsStreakToken: session.editsStreakPartialResultToken } - ) - } + session.triggerOnAcceptance = true + // VS Code triggers suggestion on every keystroke, temporarily disable trigger on acceptance + // if (inlineCompletionProvider && session.editsStreakPartialResultToken) { + // await inlineCompletionProvider.provideInlineCompletionItems( + // editor.document, + // endPosition, + // { + // triggerKind: vscode.InlineCompletionTriggerKind.Automatic, + // selectedCompletionInfo: undefined, + // }, + // new vscode.CancellationTokenSource().token, + // { emitTelemetry: false, showUi: false, editsStreakToken: session.editsStreakPartialResultToken } + // ) + // } }, async () => { // Handle reject diff --git a/packages/amazonq/src/app/inline/completion.ts b/packages/amazonq/src/app/inline/completion.ts index 90b9d4cf15f..96d2b0de03f 100644 --- a/packages/amazonq/src/app/inline/completion.ts +++ b/packages/amazonq/src/app/inline/completion.ts @@ -272,6 +272,12 @@ export class AmazonQInlineCompletionItemProvider implements InlineCompletionItem const prevSessionId = prevSession?.sessionId const prevItemId = this.sessionManager.getActiveRecommendation()?.[0]?.itemId const prevStartPosition = prevSession?.startPosition + if (prevSession?.triggerOnAcceptance) { + getAllRecommendationsOptions = { + ...getAllRecommendationsOptions, + editsStreakToken: prevSession?.editsStreakPartialResultToken, + } + } const editor = window.activeTextEditor if (prevSession && prevSessionId && prevItemId && prevStartPosition) { const prefix = document.getText(new Range(prevStartPosition, position)) diff --git a/packages/amazonq/src/app/inline/sessionManager.ts b/packages/amazonq/src/app/inline/sessionManager.ts index 05673132e9e..385bb324c4c 100644 --- a/packages/amazonq/src/app/inline/sessionManager.ts +++ b/packages/amazonq/src/app/inline/sessionManager.ts @@ -18,6 +18,7 @@ export interface CodeWhispererSession { diagnosticsBeforeAccept: FileDiagnostic | undefined // partialResultToken for the next trigger if user accepts an EDITS suggestion editsStreakPartialResultToken?: number | string + triggerOnAcceptance?: boolean } export class SessionManager {