Skip to content

Commit 7a4507e

Browse files
committed
Fix code scan issue
1 parent 810c815 commit 7a4507e

File tree

3 files changed

+38
-6
lines changed
  • plugins/amazonq

3 files changed

+38
-6
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/commands/ActionRegistrar.kt

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import kotlinx.coroutines.flow.asSharedFlow
1010
import kotlinx.coroutines.runBlocking
1111
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.AsyncChatUiListener
1212
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.FlareUiMessage
13+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ChatPrompt
1314
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.GenericCommandParams
1415
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.SendToPromptParams
1516
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TriggerType
@@ -48,8 +49,40 @@ class ActionRegistrar {
4849
}
4950
}
5051

51-
fun reportMessageClick(command: EditorContextCommand, issue: MutableMap<String, String>, project: Project) {
52-
_messages.tryEmit(CodeScanIssueActionMessage(command, issue, project))
52+
fun reportMessageClick(issue: MutableMap<String, String>) {
53+
ApplicationManager.getApplication().executeOnPooledThread {
54+
runBlocking {
55+
handleCodeScanExplainCommand(issue)
56+
}
57+
}
58+
}
59+
60+
private fun handleCodeScanExplainCommand(issue: MutableMap<String, String>) {
61+
// https://github.com/aws/aws-toolkit-vscode/blob/master/packages/amazonq/src/lsp/chat/commands.ts#L30
62+
val codeSelection = "\n```\n${issue["code"]?.trimIndent()?.trim()}\n```\n"
63+
64+
val prompt = "Explain the following part of my code \n\n " +
65+
"Issue: \"${issue["title"]}\" \n" +
66+
"Code: $codeSelection"
67+
68+
val modelPrompt = "Explain the following part of my code \n\n " +
69+
"Issue: \"${issue["title"]}\" \n" +
70+
"Description: ${issue["description"]} \n" +
71+
"Code: $codeSelection and generate code demonstrating the fix"
72+
73+
val params = SendToPromptParams(
74+
selection = codeSelection,
75+
triggerType = TriggerType.CONTEXT_MENU,
76+
prompt = ChatPrompt(
77+
prompt = prompt,
78+
escapedPrompt = modelPrompt,
79+
command = null
80+
),
81+
autoSubmit = true
82+
)
83+
84+
val uiMessage = FlareUiMessage("sendToPrompt", params)
85+
AsyncChatUiListener.notifyPartialMessageUpdate(uiMessage)
5386
}
5487

5588
// provide singleton access

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/commands/codescan/actions/CodeScanQActions.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package software.aws.toolkits.jetbrains.services.cwc.commands.codescan.actions
66
import com.intellij.openapi.actionSystem.ActionManager
77
import com.intellij.openapi.actionSystem.AnAction
88
import com.intellij.openapi.actionSystem.AnActionEvent
9-
import com.intellij.openapi.actionSystem.CommonDataKeys
109
import com.intellij.openapi.actionSystem.DataKey
1110
import com.intellij.openapi.project.DumbAware
1211
import software.aws.toolkits.jetbrains.services.cwc.commands.ActionRegistrar
@@ -16,10 +15,10 @@ open class CodeScanQActions(private val command: EditorContextCommand) : AnActio
1615
override fun actionPerformed(e: AnActionEvent) {
1716
val issueDataKey = DataKey.create<MutableMap<String, String>>("amazonq.codescan.explainissue")
1817
val issueContext = e.getData(issueDataKey) ?: return
19-
val project = e.getData(CommonDataKeys.PROJECT) ?: return
18+
command
2019

2120
ActionManager.getInstance().getAction("q.openchat").actionPerformed(e)
2221

23-
ActionRegistrar.instance.reportMessageClick(command, issueContext, project)
22+
ActionRegistrar.instance.reportMessageClick(issueContext)
2423
}
2524
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.ContextCom
99
data class ChatPrompt(
1010
val prompt: String,
1111
val escapedPrompt: String,
12-
val command: String,
12+
val command: String?,
1313
)
1414

1515
data class SendChatPromptRequest(

0 commit comments

Comments
 (0)