Skip to content

Commit 4a1b444

Browse files
committed
feat: trigger inline suggestion via acceptance for EDITS
1 parent 40adfc7 commit 4a1b444

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

packages/amazonq/src/app/inline/EditRendering/displayImage.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { LogInlineCompletionSessionResultsParams } from '@aws/language-server-ru
1212
import { InlineCompletionItemWithReferences } from '@aws/language-server-runtimes/protocol'
1313
import path from 'path'
1414
import { imageVerticalOffset } from './svgGenerator'
15+
import { AmazonQInlineCompletionItemProvider } from '../completion'
1516

1617
export class EditDecorationManager {
1718
private imageDecorationType: vscode.TextEditorDecorationType
@@ -279,15 +280,16 @@ export async function displaySvgDecoration(
279280
originalCodeHighlightRanges: Array<{ line: number; start: number; end: number }>,
280281
session: CodeWhispererSession,
281282
languageClient: LanguageClient,
282-
item: InlineCompletionItemWithReferences
283+
item: InlineCompletionItemWithReferences,
284+
inlineCompletionProvider?: AmazonQInlineCompletionItemProvider
283285
) {
284286
const originalCode = editor.document.getText()
285287

286288
decorationManager.displayEditSuggestion(
287289
editor,
288290
svgImage,
289291
startLine,
290-
() => {
292+
async () => {
291293
// Handle accept
292294
getLogger().info('Edit suggestion accepted')
293295

@@ -315,6 +317,18 @@ export async function displaySvgDecoration(
315317
firstCompletionDisplayLatency: session.firstCompletionDisplayLatency,
316318
}
317319
languageClient.sendNotification('aws/logInlineCompletionSessionResults', params)
320+
if (inlineCompletionProvider) {
321+
await inlineCompletionProvider.provideInlineCompletionItems(
322+
editor.document,
323+
endPosition,
324+
{
325+
triggerKind: vscode.InlineCompletionTriggerKind.Automatic,
326+
selectedCompletionInfo: undefined,
327+
},
328+
new vscode.CancellationTokenSource().token,
329+
{ emitTelemetry: false, showUi: false }
330+
)
331+
}
318332
},
319333
() => {
320334
// Handle reject

packages/amazonq/src/app/inline/EditRendering/imageRenderer.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ import { getLogger } from 'aws-core-vscode/shared'
1010
import { LanguageClient } from 'vscode-languageclient'
1111
import { InlineCompletionItemWithReferences } from '@aws/language-server-runtimes/protocol'
1212
import { CodeWhispererSession } from '../sessionManager'
13+
import { AmazonQInlineCompletionItemProvider } from '../completion'
1314

1415
export async function showEdits(
1516
item: InlineCompletionItemWithReferences,
1617
editor: vscode.TextEditor | undefined,
1718
session: CodeWhispererSession,
18-
languageClient: LanguageClient
19+
languageClient: LanguageClient,
20+
inlineCompletionProvider?: AmazonQInlineCompletionItemProvider
1921
) {
2022
if (!editor) {
2123
return
@@ -37,7 +39,8 @@ export async function showEdits(
3739
origionalCodeHighlightRange,
3840
session,
3941
languageClient,
40-
item
42+
item,
43+
inlineCompletionProvider
4144
)
4245
} else {
4346
getLogger('nextEditPrediction').error('SVG image generation returned an empty result.')

packages/amazonq/src/app/inline/completion.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ ${itemLog}
354354
if (item.isInlineEdit) {
355355
// Check if Next Edit Prediction feature flag is enabled
356356
if (Experiments.instance.isExperimentEnabled('amazonqLSPNEP')) {
357-
void showEdits(item, editor, session, this.languageClient).then(() => {
357+
void showEdits(item, editor, session, this.languageClient, this).then(() => {
358358
const t3 = performance.now()
359359
logstr = logstr + `- duration since trigger to NEP suggestion is displayed: ${t3 - t0}ms`
360360
this.logger.info(logstr)

0 commit comments

Comments
 (0)