Skip to content

Commit 7d4404d

Browse files
fix(amazonq): fix more formatting issues
1 parent 2588777 commit 7d4404d

File tree

4 files changed

+19
-124
lines changed

4 files changed

+19
-124
lines changed

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/codescan/CodeWhispererCodeScanIssueDetailsPanel.kt

Lines changed: 0 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@ import com.intellij.openapi.ide.CopyPasteManager
1515
import com.intellij.openapi.project.Project
1616
import com.intellij.ui.components.JBScrollPane
1717
import com.intellij.util.Alarm
18-
import kotlinx.coroutines.CoroutineScope
19-
import kotlinx.coroutines.launch
20-
import software.aws.toolkits.core.utils.getLogger
21-
import software.aws.toolkits.core.utils.warn
2218
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.context.CodeScanIssueDetailsDisplayType
2319
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.utils.additionBackgroundColor
2420
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.utils.additionForegroundColor
@@ -34,15 +30,12 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.utils.get
3430
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.utils.metaBackgroundColor
3531
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.utils.metaForegroundColor
3632
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.utils.openDiff
37-
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.utils.sendCodeFixGeneratedTelemetryToServiceAPI
3833
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.utils.truncateIssueTitle
3934
import software.aws.toolkits.jetbrains.services.codewhisperer.telemetry.CodeWhispererTelemetryService
4035
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants
4136
import software.aws.toolkits.jetbrains.services.codewhisperer.util.getHexString
42-
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
4337
import software.aws.toolkits.resources.message
4438
import software.aws.toolkits.telemetry.Component
45-
import software.aws.toolkits.telemetry.MetricResult
4639
import java.awt.BorderLayout
4740
import java.awt.Dimension
4841
import java.awt.datatransfer.StringSelection
@@ -57,115 +50,14 @@ import javax.swing.ScrollPaneConstants
5750
import javax.swing.event.HyperlinkEvent
5851
import javax.swing.text.html.HTMLEditorKit
5952

60-
private val logger = getLogger<CodeWhispererCodeScanIssueDetailsPanel>()
6153
internal class CodeWhispererCodeScanIssueDetailsPanel(
6254
private val project: Project,
6355
issue: CodeWhispererCodeScanIssue,
64-
private val defaultScope: CoroutineScope,
6556
) : JPanel(BorderLayout()) {
6657
private val kit = HTMLEditorKit()
6758
private val doc = kit.createDefaultDocument()
68-
private val amazonQCodeFixSession = AmazonQCodeFixSession(project)
6959
private val codeScanManager = CodeWhispererCodeScanManager.getInstance(project)
7060

71-
private suspend fun handleGenerateFix(issue: CodeWhispererCodeScanIssue, isRegenerate: Boolean = false) {
72-
if (issue.ruleId == "sbom-software-assurance-services") {
73-
logger.warn { "GenerateFix is not available for SAS findings." }
74-
return
75-
}
76-
editorPane.text = getCodeScanIssueDetailsHtml(
77-
issue, CodeScanIssueDetailsDisplayType.DetailsPane, CodeWhispererConstants.FixGenerationState.GENERATING,
78-
project = project
79-
)
80-
editorPane.revalidate()
81-
editorPane.repaint()
82-
runInEdt {
83-
editorPane.scrollToReference("fixLoadingSection")
84-
}
85-
86-
val codeFixResponse: AmazonQCodeFixSession.CodeFixResponse = amazonQCodeFixSession.runCodeFixWorkflow(issue)
87-
if (codeFixResponse.failureResponse != null) {
88-
editorPane.apply {
89-
text = getCodeScanIssueDetailsHtml(
90-
issue, CodeScanIssueDetailsDisplayType.DetailsPane, CodeWhispererConstants.FixGenerationState.FAILED,
91-
project = project
92-
)
93-
revalidate()
94-
repaint()
95-
runInEdt {
96-
scrollToReference("fixFailureSection")
97-
}
98-
}
99-
CodeWhispererTelemetryService.getInstance().sendCodeScanIssueGenerateFix(
100-
Component.Webview,
101-
issue,
102-
isRegenerate,
103-
MetricResult.Failed,
104-
codeFixResponse.failureResponse
105-
)
106-
} else {
107-
val isReferenceAllowed = CodeWhispererSettings.getInstance().isIncludeCodeWithReference()
108-
var suggestedFix = SuggestedFix(
109-
code = "",
110-
description = ""
111-
)
112-
codeFixResponse.getCodeFixJobResponse?.suggestedFix()?.let {
113-
it.codeDiff()?.let { codeDiff ->
114-
// TODO: enable later
115-
if (it.references() == null || it.references()?.isEmpty() == true) {
116-
suggestedFix = SuggestedFix(
117-
code = codeDiff.split("\n").drop(2).joinToString("\n"), // drop first two comment lines
118-
description = it.description(),
119-
codeFixJobId = codeFixResponse.jobId,
120-
references = it.references(),
121-
)
122-
}
123-
}
124-
}
125-
126-
val showReferenceWarning = !isReferenceAllowed && suggestedFix.references.isNotEmpty()
127-
if (suggestedFix.code.isNotEmpty() && !showReferenceWarning) {
128-
issue.suggestedFixes = listOf(suggestedFix)
129-
codeScanManager.updateIssue(issue)
130-
}
131-
132-
editorPane.apply {
133-
text = getCodeScanIssueDetailsHtml(
134-
issue, CodeScanIssueDetailsDisplayType.DetailsPane, project = project,
135-
showReferenceWarning = showReferenceWarning
136-
)
137-
revalidate()
138-
repaint()
139-
runInEdt {
140-
scrollToReference("codeFixActions")
141-
}
142-
}
143-
144-
buttonPane.apply {
145-
removeAll()
146-
add(explainIssueButton)
147-
add(applyFixButton)
148-
add(ignoreIssueButton)
149-
add(ignoreIssuesButton)
150-
add(Box.createHorizontalGlue())
151-
revalidate()
152-
repaint()
153-
}
154-
ApplicationManager.getApplication().executeOnPooledThread {
155-
if (suggestedFix.code.isNotBlank()) {
156-
sendCodeFixGeneratedTelemetryToServiceAPI(issue, false)
157-
}
158-
CodeWhispererTelemetryService.getInstance().sendCodeScanIssueGenerateFix(
159-
Component.Webview,
160-
issue,
161-
isRegenerate,
162-
MetricResult.Succeeded,
163-
includesFix = suggestedFix.code.isNotBlank()
164-
)
165-
}
166-
}
167-
}
168-
16961
private val editorPane = JEditorPane().apply {
17062
contentType = "text/html"
17163
putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, true)

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/codescan/CodeWhispererCodeScanManager.kt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -537,14 +537,17 @@ class CodeWhispererCodeScanManager(val project: Project) {
537537
ondemandScanIssues = ondemandScanIssues.filter { it.findingId != issue.findingId }
538538
}
539539

540-
fun addOnDemandIssues(issues: List<CodeWhispererCodeScanIssue>, scannedFiles: List<VirtualFile>, scope: CodeWhispererConstants.CodeAnalysisScope) = projectCoroutineScope(project).launch {
541-
ondemandScanIssues = ondemandScanIssues + issues
542-
renderResponseOnUIThread(
543-
getCombinedScanIssues(),
544-
scannedFiles,
545-
scope
546-
)
547-
}
540+
fun addOnDemandIssues(issues: List<CodeWhispererCodeScanIssue>, scannedFiles: List<VirtualFile>, scope: CodeWhispererConstants.CodeAnalysisScope) =
541+
projectCoroutineScope(
542+
project
543+
).launch {
544+
ondemandScanIssues = ondemandScanIssues + issues
545+
renderResponseOnUIThread(
546+
getCombinedScanIssues(),
547+
scannedFiles,
548+
scope
549+
)
550+
}
548551

549552
fun removeIssueByFindingId(issue: CodeWhispererCodeScanIssue, findingId: String) {
550553
scanNodesLookup[issue.file]?.forEach { node ->

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/codescan/utils/CodeWhispererCodeScanIssueUtils.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33

44
package software.aws.toolkits.jetbrains.services.codewhisperer.codescan.utils
55

6-
import com.google.gson.Gson
6+
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
77
import com.intellij.diff.DiffContentFactory
88
import com.intellij.diff.DiffManager
99
import com.intellij.diff.requests.SimpleDiffRequest
1010
import com.intellij.diff.util.DiffUserDataKeys
11-
import com.intellij.docker.agent.util.toJson
1211
import com.intellij.openapi.actionSystem.ActionManager
1312
import com.intellij.openapi.actionSystem.AnActionEvent
1413
import com.intellij.openapi.actionSystem.CommonDataKeys
@@ -244,17 +243,16 @@ fun applyFix(issue: CodeWhispererCodeScanIssue) {
244243
}
245244

246245
private fun handleIssueCommand(issue: CodeWhispererCodeScanIssue, action: IssueCommandAction) {
247-
val gson = Gson()
248246
val handleIssueCommandContext = mutableMapOf(
249247
"title" to issue.title,
250248
"description" to issue.description.markdown,
251249
"code" to issue.codeText,
252250
"fileName" to issue.file.name,
253251
"startLine" to issue.startLine.toString(),
254252
"endLine" to issue.endLine.toString(),
255-
"recommendation" to gson.toJson(issue.recommendation).toString(),
256-
"suggestedFixes" to gson.toJson(issue.suggestedFixes).toString(),
257-
"codeSnippet" to gson.toJson(issue.codeSnippet).toString()
253+
"recommendation" to jacksonObjectMapper().writeValueAsString(issue.recommendation),
254+
"suggestedFixes" to jacksonObjectMapper().writeValueAsString(issue.suggestedFixes),
255+
"codeSnippet" to jacksonObjectMapper().writeValueAsString(issue.codeSnippet)
258256
)
259257
val actionEvent = AnActionEvent.createFromInputEvent(
260258
null,

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/flareChat/ChatCommunicationManager.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,10 @@ class ChatCommunicationManager(private val project: Project, private val cs: Cor
148148
additionalMessages?.removeAll {
149149
val messageId = it["messageId"] as? String
150150
messageId != null &&
151-
(messageId.endsWith(CODE_REVIEW_FINDINGS_SUFFIX) ||
152-
messageId.endsWith(DISPLAY_FINDINGS_SUFFIX))
151+
(
152+
messageId.endsWith(CODE_REVIEW_FINDINGS_SUFFIX) ||
153+
messageId.endsWith(DISPLAY_FINDINGS_SUFFIX)
154+
)
153155
}
154156
}
155157

0 commit comments

Comments
 (0)