Skip to content

Commit f21c028

Browse files
feat(amazonq): add support for CodeReview and DisplayFindings tools, alter behavior of explain and fix buttons
1 parent fe668ee commit f21c028

File tree

4 files changed

+39
-14
lines changed

4 files changed

+39
-14
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,10 @@ import software.aws.toolkits.jetbrains.services.amazonqCodeTest.auth.isCodeTestA
113113
import software.aws.toolkits.jetbrains.services.amazonqDoc.auth.isDocAvailable
114114
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.auth.isFeatureDevAvailable
115115
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.isCodeTransformAvailable
116+
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.CodeLine
116117
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.CodeWhispererCodeScanIssue
117118
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.CodeWhispererCodeScanManager
119+
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.CodeWhispererCodeScanSession
118120
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.Description
119121
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.Recommendation
120122
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.SuggestedFix
@@ -583,7 +585,7 @@ class BrowserConnector(
583585
}
584586
}
585587

586-
data class FlareCodeScanIssue(
588+
data class flareCodeScanIssue(
587589
val startLine: Int,
588590
val endLine: Int,
589591
val comment: String?,
@@ -607,7 +609,7 @@ class BrowserConnector(
607609

608610
data class AggregatedCodeScanIssue(
609611
val filePath: String,
610-
val issues: List<FlareCodeScanIssue>
612+
val issues: List<flareCodeScanIssue>
611613
)
612614

613615
private fun showResult(
@@ -629,7 +631,7 @@ class BrowserConnector(
629631
val findingsMessage = additionalMessages?.find {message ->
630632
(message["messageId"] as String).endsWith(CODE_REVIEW_FINDINGS_SUFFIX)
631633
|| (message["messageId"] as String).endsWith(DISPLAY_FINDINGS_SUFFIX)}
632-
val scannedFiles = mutableListOf<VirtualFile>()
634+
val scannedFiles = mutableListOf<VirtualFile>();
633635
if (findingsMessage != null) {
634636
additionalMessages.remove(findingsMessage)
635637
val gson = Gson()

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

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,8 @@ internal class CodeWhispererCodeScanIssueDetailsPanel(
143143

144144
buttonPane.apply {
145145
removeAll()
146+
// if (issue.suggestedFixes.isNotEmpty()) add(applyFixButton)
147+
// add(regenerateFixButton)
146148
add(explainIssueButton)
147149
add(applyFixButton)
148150
add(ignoreIssueButton)
@@ -233,6 +235,29 @@ internal class CodeWhispererCodeScanIssueDetailsPanel(
233235
horizontalTextPosition = JLabel.LEFT
234236
font = font.deriveFont(16f)
235237
}
238+
// private val applyFixButton = JButton(message("codewhisperer.codescan.apply_fix_button_label")).apply {
239+
// putClientProperty(DarculaButtonUI.DEFAULT_STYLE_KEY, true)
240+
// addActionListener {
241+
// applySuggestedFix(project, issue)
242+
// }
243+
// }
244+
// private val generateFixButton = JButton(message("codewhisperer.codescan.generate_fix_button_label")).apply {
245+
// putClientProperty(DarculaButtonUI.DEFAULT_STYLE_KEY, true)
246+
// isEnabled = issue.ruleId != "sbom-software-assurance-services"
247+
// addActionListener {
248+
// defaultScope.launch {
249+
// handleGenerateFix(issue)
250+
// }
251+
// }
252+
// }
253+
// private val regenerateFixButton = JButton(message("codewhisperer.codescan.regenerate_fix_button_label")).apply {
254+
// putClientProperty(DarculaButtonUI.DEFAULT_STYLE_KEY, true)
255+
// addActionListener {
256+
// defaultScope.launch {
257+
// handleGenerateFix(issue, isRegenerate = true)
258+
// }
259+
// }
260+
// }
236261
private val applyFixButton = JButton(message("codewhisperer.codescan.apply_fix_button_label")).apply {
237262
addActionListener {
238263
applyFix(issue)
@@ -279,6 +304,8 @@ internal class CodeWhispererCodeScanIssueDetailsPanel(
279304
private val buttonPane = JPanel().apply {
280305
layout = BoxLayout(this, BoxLayout.X_AXIS)
281306
preferredSize = Dimension(this.width, 30)
307+
// if (issue.suggestedFixes.isNotEmpty()) add(applyFixButton)
308+
// if (issue.suggestedFixes.isNotEmpty()) add(regenerateFixButton) else add(generateFixButton)
282309
add(explainIssueButton)
283310
add(applyFixButton)
284311
add(ignoreIssueButton)
@@ -313,5 +340,10 @@ internal class CodeWhispererCodeScanIssueDetailsPanel(
313340
add(BorderLayout.SOUTH, buttonPane)
314341
isVisible = true
315342
revalidate()
343+
// if (issue.suggestedFixes.isEmpty()) {
344+
// defaultScope.launch {
345+
// handleGenerateFix(issue)
346+
// }
347+
// }
316348
}
317349
}

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

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -143,15 +143,6 @@ class ChatCommunicationManager(private val project: Project, private val cs: Cor
143143
Gson().fromJson(partialChatResult, Map::class.java)
144144
} ?: partialChatResult
145145

146-
if (partialResultMap is Map<*, *>) {
147-
val additionalMessages = partialResultMap["additionalMessages"] as? MutableList<Map<String, Any>>
148-
additionalMessages?.removeAll {
149-
val messageId = it["messageId"] as? String
150-
messageId != null &&
151-
(messageId.endsWith(CODE_REVIEW_FINDINGS_SUFFIX) ||
152-
messageId.endsWith(DISPLAY_FINDINGS_SUFFIX))
153-
}
154-
}
155146

156147
notifyUi(
157148
FlareUiMessage(

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/chat/ChatMessage.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,5 +110,5 @@ enum class MessageType(@JsonValue val repr: String) {
110110
TOOL("tool"),
111111
}
112112

113-
const val CODE_REVIEW_FINDINGS_SUFFIX = "_codeReviewFindings"
114-
const val DISPLAY_FINDINGS_SUFFIX = "_displayFindings"
113+
val CODE_REVIEW_FINDINGS_SUFFIX = "_codeReviewFindings"
114+
val DISPLAY_FINDINGS_SUFFIX = "_displayFindings"

0 commit comments

Comments
 (0)