@@ -313,15 +313,18 @@ export async function displaySvgDecoration(
313313 item : InlineCompletionItemWithReferences ,
314314 inlineCompletionProvider ?: AmazonQInlineCompletionItemProvider
315315) {
316+ function logSuggestionFailure ( type : 'DISCARD' | 'REJECT' , reason : string , suggestionContent : string ) {
317+ getLogger ( 'nextEditPrediction' ) . debug (
318+ `Auto ${ type } edit suggestion with reason=${ reason } , suggetion: ${ suggestionContent } `
319+ )
320+ }
316321 // Check if edit is too far from current cursor position
317322 const currentCursorLine = editor . selection . active . line
318323 if ( Math . abs ( startLine - currentCursorLine ) >= autoDiscardEditCursorDistance ) {
319324 // Emit DISCARD telemetry for edit suggestion that can't be shown because the suggestion is too far away
320325 const params = createDiscardTelemetryParams ( session , item )
321326 languageClient . sendNotification ( 'aws/logInlineCompletionSessionResults' , params )
322- getLogger ( 'nextEditPrediction' ) . debug (
323- `Auto discarded edit suggestion for suggestion that is too far away: ${ item . insertText as string } `
324- )
327+ logSuggestionFailure ( 'DISCARD' , 'cursor is too far away' , item . insertText as string )
325328 return
326329 }
327330
@@ -340,9 +343,7 @@ export async function displaySvgDecoration(
340343 // Emit DISCARD telemetry for edit suggestion that can't be shown due to active completion
341344 const params = createDiscardTelemetryParams ( session , item )
342345 languageClient . sendNotification ( 'aws/logInlineCompletionSessionResults' , params )
343- getLogger ( 'nextEditPrediction' ) . debug (
344- `Auto discarded edit suggestion for active completion suggestion: ${ item . insertText as string } `
345- )
346+ logSuggestionFailure ( 'DISCARD' , 'Conflicting active inline completion' , item . insertText as string )
346347 return
347348 }
348349
@@ -355,6 +356,7 @@ export async function displaySvgDecoration(
355356 const params = createDiscardTelemetryParams ( session , item )
356357 // TODO: this session is closed on flare side hence discarded is not emitted in flare
357358 languageClient . sendNotification ( 'aws/logInlineCompletionSessionResults' , params )
359+ logSuggestionFailure ( 'DISCARD' , 'Invalid patch' , item . insertText as string )
358360 return
359361 }
360362 const documentChangeListener = vscode . workspace . onDidChangeTextDocument ( ( e ) => {
@@ -373,9 +375,7 @@ export async function displaySvgDecoration(
373375
374376 const isPatchValid = applyPatch ( e . document . getText ( ) , item . insertText as string )
375377 if ( ! isPatchValid ) {
376- getLogger ( 'nextEditPrediction' ) . debug (
377- `Auto rejected edit suggestion for invalid patch: ${ item . insertText as string } }`
378- )
378+ logSuggestionFailure ( 'REJECT' , 'Invalid patch due to document change' , item . insertText as string )
379379 void vscode . commands . executeCommand ( 'aws.amazonq.inline.rejectEdit' )
380380 }
381381 } )
@@ -389,6 +389,11 @@ export async function displaySvgDecoration(
389389 const currentPosition = e . selections [ 0 ] . active
390390 const distance = Math . abs ( currentPosition . line - startLine )
391391 if ( distance > autoRejectEditCursorDistance ) {
392+ logSuggestionFailure (
393+ 'REJECT' ,
394+ `cursor position move too far away off ${ autoRejectEditCursorDistance } lines` ,
395+ item . insertText as string
396+ )
392397 void vscode . commands . executeCommand ( 'aws.amazonq.inline.rejectEdit' )
393398 }
394399 } )
0 commit comments