@@ -4,13 +4,16 @@ import cc.unitmesh.devti.actions.chat.base.ChatBaseAction
4
4
import cc.unitmesh.devti.gui.chat.ChatActionType
5
5
import cc.unitmesh.devti.gui.chat.ChatContext
6
6
import cc.unitmesh.devti.gui.sendToChatPanel
7
+ import cc.unitmesh.devti.gui.sendToChatWindow
7
8
import cc.unitmesh.devti.prompting.VcsPrompting
8
9
import cc.unitmesh.devti.provider.ContextPrompter
9
10
import com.intellij.openapi.actionSystem.AnActionEvent
10
11
import com.intellij.openapi.components.service
11
12
import com.intellij.openapi.project.ProjectManager
13
+ import com.intellij.openapi.vcs.VcsConfiguration
12
14
import com.intellij.openapi.vcs.VcsDataKeys
13
15
import com.intellij.openapi.vcs.changes.Change
16
+ import com.intellij.openapi.vcs.ui.CommitMessage
14
17
15
18
class CommitMessageSuggestionAction : ChatBaseAction () {
16
19
override fun getActionType (): ChatActionType = ChatActionType .GEN_COMMIT_MESSAGE
@@ -28,11 +31,14 @@ class CommitMessageSuggestionAction : ChatBaseAction() {
28
31
val project = event.project ? : return
29
32
val prompt = generateCommitMessage(prepareVcsContext())
30
33
31
- sendToChatPanel(project) { panel, service ->
34
+ val commitMessageUi = event.getData(VcsDataKeys .COMMIT_MESSAGE_CONTROL )
35
+
36
+ sendToChatWindow(project, getActionType()) { panel, service ->
32
37
val chatContext = ChatContext (
33
- getReplaceableAction(event),
34
- prompt,
35
- " "
38
+ { response ->
39
+ (commitMessageUi as CommitMessage ).editorField.text + = response
40
+ VcsConfiguration .getInstance(project).saveCommitMessage(response)
41
+ }, prompt, " "
36
42
)
37
43
38
44
service.handlePromptAndResponse(panel, object : ContextPrompter () {
0 commit comments