From 010e6651b1b9250ec70f6dbf34e26e26ce0a3863 Mon Sep 17 00:00:00 2001 From: Yaofu Zuo Date: Fri, 11 Apr 2025 14:20:15 -0700 Subject: [PATCH 1/3] fix(amazonq): make code fix's line number or file to be accurate --- ...g Fix-42b2c2f0-e40e-4f97-842b-cb7ead1a010b.json | 4 ++++ .../commands/startCodeFixGeneration.ts | 4 ++++ .../codewhisperer/service/securityIssueProvider.ts | 14 ++++++++------ 3 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 packages/amazonq/.changes/next-release/Bug Fix-42b2c2f0-e40e-4f97-842b-cb7ead1a010b.json diff --git a/packages/amazonq/.changes/next-release/Bug Fix-42b2c2f0-e40e-4f97-842b-cb7ead1a010b.json b/packages/amazonq/.changes/next-release/Bug Fix-42b2c2f0-e40e-4f97-842b-cb7ead1a010b.json new file mode 100644 index 00000000000..4831c54ff52 --- /dev/null +++ b/packages/amazonq/.changes/next-release/Bug Fix-42b2c2f0-e40e-4f97-842b-cb7ead1a010b.json @@ -0,0 +1,4 @@ +{ + "type": "Bug Fix", + "description": "fix bug where code fix line number or file was not accurate" +} diff --git a/packages/core/src/codewhisperer/commands/startCodeFixGeneration.ts b/packages/core/src/codewhisperer/commands/startCodeFixGeneration.ts index 9dc2fd5f68f..f0118eef46a 100644 --- a/packages/core/src/codewhisperer/commands/startCodeFixGeneration.ts +++ b/packages/core/src/codewhisperer/commands/startCodeFixGeneration.ts @@ -20,6 +20,7 @@ import { TelemetryHelper } from '../util/telemetryHelper' import { tempDirPath } from '../../shared/filesystemUtilities' import { CodeWhispererSettings } from '../util/codewhispererSettings' import { AuthUtil } from '../util/authUtil' +import { saveDocumentIfDirty } from '../../shared/utilities/textDocumentUtilities' export async function startCodeFixGeneration( client: DefaultCodeWhispererClient, @@ -44,6 +45,9 @@ export async function startCodeFixGeneration( * Step 1: Generate zip */ throwIfCancelled() + + // Save the file if it has unsaved changes to ensure the latest content is included in the zip + await saveDocumentIfDirty(filePath) const admZip = new AdmZip() admZip.addLocalFile(filePath) diff --git a/packages/core/src/codewhisperer/service/securityIssueProvider.ts b/packages/core/src/codewhisperer/service/securityIssueProvider.ts index 4e1662753e4..9fd49d9e995 100644 --- a/packages/core/src/codewhisperer/service/securityIssueProvider.ts +++ b/packages/core/src/codewhisperer/service/securityIssueProvider.ts @@ -46,12 +46,14 @@ export class SecurityIssueProvider { ...group, issues: group.issues .filter((issue) => { - const range = new vscode.Range( - issue.startLine, - event.document.lineAt(issue.startLine)?.range.start.character ?? 0, - issue.endLine, - event.document.lineAt(issue.endLine - 1)?.range.end.character ?? 0 - ) + // event document is the new document after deleting lines, but issue.startLine and endLines are not + let range + if (issue.startLine === issue.endLine) { + range = new vscode.Range(issue.startLine, 0, issue.endLine + 1, 0) + } else { + range = new vscode.Range(issue.startLine, 0, issue.endLine, 0) + } + const intersection = changedRange.intersection(range) return !(intersection && (/\S/.test(changedText) || changedText === '')) }) From a8b186f8d1da46bd01ba16baf02da091af9812ba Mon Sep 17 00:00:00 2001 From: zuoyaofu Date: Fri, 11 Apr 2025 14:25:59 -0700 Subject: [PATCH 2/3] Update securityIssueProvider.ts --- packages/core/src/codewhisperer/service/securityIssueProvider.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core/src/codewhisperer/service/securityIssueProvider.ts b/packages/core/src/codewhisperer/service/securityIssueProvider.ts index 9fd49d9e995..fd808a8e2c7 100644 --- a/packages/core/src/codewhisperer/service/securityIssueProvider.ts +++ b/packages/core/src/codewhisperer/service/securityIssueProvider.ts @@ -46,7 +46,6 @@ export class SecurityIssueProvider { ...group, issues: group.issues .filter((issue) => { - // event document is the new document after deleting lines, but issue.startLine and endLines are not let range if (issue.startLine === issue.endLine) { range = new vscode.Range(issue.startLine, 0, issue.endLine + 1, 0) From 5929da6e32d9de6aabaa81f6574e988c1ba45f0d Mon Sep 17 00:00:00 2001 From: Yaofu Zuo Date: Fri, 11 Apr 2025 14:50:09 -0700 Subject: [PATCH 3/3] change style and log --- ...Bug Fix-42b2c2f0-e40e-4f97-842b-cb7ead1a010b.json | 2 +- .../codewhisperer/service/securityIssueProvider.ts | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/amazonq/.changes/next-release/Bug Fix-42b2c2f0-e40e-4f97-842b-cb7ead1a010b.json b/packages/amazonq/.changes/next-release/Bug Fix-42b2c2f0-e40e-4f97-842b-cb7ead1a010b.json index 4831c54ff52..ca8f9878401 100644 --- a/packages/amazonq/.changes/next-release/Bug Fix-42b2c2f0-e40e-4f97-842b-cb7ead1a010b.json +++ b/packages/amazonq/.changes/next-release/Bug Fix-42b2c2f0-e40e-4f97-842b-cb7ead1a010b.json @@ -1,4 +1,4 @@ { "type": "Bug Fix", - "description": "fix bug where code fix line number or file was not accurate" + "description": "Code fix line number or file is sometimes not accurate" } diff --git a/packages/core/src/codewhisperer/service/securityIssueProvider.ts b/packages/core/src/codewhisperer/service/securityIssueProvider.ts index fd808a8e2c7..61957e6eca5 100644 --- a/packages/core/src/codewhisperer/service/securityIssueProvider.ts +++ b/packages/core/src/codewhisperer/service/securityIssueProvider.ts @@ -46,12 +46,12 @@ export class SecurityIssueProvider { ...group, issues: group.issues .filter((issue) => { - let range - if (issue.startLine === issue.endLine) { - range = new vscode.Range(issue.startLine, 0, issue.endLine + 1, 0) - } else { - range = new vscode.Range(issue.startLine, 0, issue.endLine, 0) - } + const range = new vscode.Range( + issue.startLine, + 0, + issue.startLine === issue.endLine ? issue.endLine + 1 : issue.endLine, + 0 + ) const intersection = changedRange.intersection(range) return !(intersection && (/\S/.test(changedText) || changedText === ''))