Skip to content

Commit b50f366

Browse files
committed
fix(amazonq): should update session manager state accordingly if Edits suggestion was shown
1 parent 6bfa34f commit b50f366

File tree

3 files changed

+22
-25
lines changed

3 files changed

+22
-25
lines changed

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

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ 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'
1615
import { vsCodeState } from 'aws-core-vscode/codewhisperer'
1716

1817
export class EditDecorationManager {
@@ -281,8 +280,7 @@ export async function displaySvgDecoration(
281280
originalCodeHighlightRanges: Array<{ line: number; start: number; end: number }>,
282281
session: CodeWhispererSession,
283282
languageClient: LanguageClient,
284-
item: InlineCompletionItemWithReferences,
285-
inlineCompletionProvider?: AmazonQInlineCompletionItemProvider
283+
item: InlineCompletionItemWithReferences
286284
) {
287285
const originalCode = editor.document.getText()
288286

@@ -325,19 +323,6 @@ export async function displaySvgDecoration(
325323
}
326324
languageClient.sendNotification('aws/logInlineCompletionSessionResults', params)
327325
session.triggerOnAcceptance = true
328-
// VS Code triggers suggestion on every keystroke, temporarily disable trigger on acceptance
329-
// if (inlineCompletionProvider && session.editsStreakPartialResultToken) {
330-
// await inlineCompletionProvider.provideInlineCompletionItems(
331-
// editor.document,
332-
// endPosition,
333-
// {
334-
// triggerKind: vscode.InlineCompletionTriggerKind.Automatic,
335-
// selectedCompletionInfo: undefined,
336-
// },
337-
// new vscode.CancellationTokenSource().token,
338-
// { emitTelemetry: false, showUi: false, editsStreakToken: session.editsStreakPartialResultToken }
339-
// )
340-
// }
341326
},
342327
async () => {
343328
// Handle reject

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

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,23 @@ 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'
1413

14+
/*
15+
* Method to render the edit suggestion as an SVG image
16+
* @param item - The edit suggestion
17+
* @param editor - The active text editor
18+
* @param session - The current session
19+
* @param languageClient - The language client
20+
* @returns A promise that resolves to true if the image is rendered successfully, false otherwise
21+
*/
1522
export async function showEdits(
1623
item: InlineCompletionItemWithReferences,
1724
editor: vscode.TextEditor | undefined,
1825
session: CodeWhispererSession,
19-
languageClient: LanguageClient,
20-
inlineCompletionProvider?: AmazonQInlineCompletionItemProvider
21-
) {
26+
languageClient: LanguageClient
27+
): Promise<boolean> {
2228
if (!editor) {
23-
return
29+
return false
2430
}
2531
try {
2632
const svgGenerationService = new SvgGenerationService()
@@ -34,7 +40,7 @@ export async function showEdits(
3440
// TODO: To investigate why it fails and patch [generateDiffSvg]
3541
if (newCode.length === 0) {
3642
getLogger('nextEditPrediction').warn('not able to apply provided edit suggestion, skip rendering')
37-
return
43+
return false
3844
}
3945

4046
if (svgImage) {
@@ -47,13 +53,15 @@ export async function showEdits(
4753
originalCodeHighlightRange,
4854
session,
4955
languageClient,
50-
item,
51-
inlineCompletionProvider
56+
item
5257
)
58+
return true
5359
} else {
5460
getLogger('nextEditPrediction').error('SVG image generation returned an empty result.')
61+
return false
5562
}
5663
} catch (error) {
5764
getLogger('nextEditPrediction').error(`Error generating SVG image: ${error}`)
65+
return false
5866
}
5967
}

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,11 @@ ${itemLog}
439439
if (item.isInlineEdit) {
440440
// Check if Next Edit Prediction feature flag is enabled
441441
if (Experiments.instance.get('amazonqLSPNEP', true)) {
442-
await showEdits(item, editor, session, this.languageClient, this)
442+
const editShown = await showEdits(item, editor, session, this.languageClient)
443+
// check if the EDITS suggestion is shown and update the session manager state accordingly
444+
if (editShown) {
445+
this.sessionManager.checkInlineSuggestionVisibility()
446+
}
443447
logstr += `- duration between trigger to edits suggestion is displayed: ${performance.now() - t0}ms`
444448
}
445449
return []

0 commit comments

Comments
 (0)