Skip to content

Commit 27a698f

Browse files
authored
feat(amazonq): show code diff instead of only code fix for fix preview
### Problem We currently see only code fix for fix preview. We want to see the diff containing both code fix and original code. ### Solution Remove logic to generate only the code fix. Remove logic for line number as it will be different for the diff.
1 parent 4c190f4 commit 27a698f

File tree

3 files changed

+12
-22
lines changed

3 files changed

+12
-22
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "Feature",
3+
"description": "/review: show code diff for fix preview"
4+
}

packages/core/src/codewhisperer/service/securityIssueHoverProvider.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,11 @@ export class SecurityIssueHoverProvider implements vscode.HoverProvider {
157157
* @returns The markdown string
158158
*/
159159
private _makeCodeBlock(code: string, language?: string) {
160-
const lines = code.replaceAll('\n\\ No newline at end of file', '').split('\n')
160+
const lines = code
161+
.replaceAll('\n\\ No newline at end of file', '')
162+
.replaceAll('--- buggyCode\n', '')
163+
.replaceAll('+++ fixCode\n', '')
164+
.split('\n')
161165
const maxLineChars = lines.reduce((acc, curr) => Math.max(acc, curr.length), 0)
162166
const paddedLines = lines.map((line) => line.padEnd(maxLineChars + 2))
163167

packages/core/src/codewhisperer/views/securityIssue/vue/root.vue

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ import highSeverity from '../../../../../resources/images/severity-high.svg'
103103
import criticalSeverity from '../../../../../resources/images/severity-critical.svg'
104104
import markdownIt from 'markdown-it'
105105
import hljs from 'highlight.js'
106-
import { parsePatch } from 'diff'
107106
import { CodeScanIssue } from '../../../models/model'
108107
109108
const client = WebviewClientFactory.create<SecurityIssueWebview>()
@@ -344,28 +343,11 @@ export default defineComponent({
344343
if (!this.isFixAvailable) {
345344
return
346345
}
347-
const [parsedDiff] = parsePatch(this.suggestedFix)
348-
const { oldStart } = parsedDiff.hunks[0]
349-
const [referenceStart, referenceEnd] = this.referenceSpan
350-
const htmlString = md.render(`
351-
\`\`\`${this.languageId} showLineNumbers startFrom=${oldStart} ${
352-
referenceStart && referenceEnd
353-
? `highlightStart=${referenceStart + 1} highlightEnd=${referenceEnd + 1}`
354-
: ''
355-
}
356-
${this.fixedCode}
346+
return md.render(`
347+
\`\`\`${this.languageId}
348+
${this.suggestedFix.replaceAll('--- buggyCode\n', '').replaceAll('+++ fixCode\n', '')}
357349
\`\`\`
358350
`)
359-
const parser = new DOMParser()
360-
const doc = parser.parseFromString(htmlString, 'text/html')
361-
const referenceTracker = doc.querySelector('.reference-tracker')
362-
if (referenceTracker) {
363-
const tooltip = doc.createElement('div')
364-
tooltip.classList.add('tooltip')
365-
tooltip.innerHTML = this.referenceText
366-
referenceTracker.appendChild(tooltip)
367-
}
368-
return doc.body.innerHTML
369351
},
370352
scrollTo(refName: string) {
371353
this.$nextTick(() => this.$refs?.[refName]?.scrollIntoView({ behavior: 'smooth' }))

0 commit comments

Comments
 (0)