1
1
package cc.unitmesh.devti.language.run
2
2
3
+ // DONT REMOVE THIS IMPORT
3
4
import cc.unitmesh.devti.language.compiler.DevInsCompiler
4
5
import cc.unitmesh.devti.language.psi.DevInFile
5
6
import cc.unitmesh.devti.llms.LLMProvider
@@ -18,15 +19,19 @@ import com.intellij.execution.process.ProcessTerminatedListener
18
19
import com.intellij.execution.runners.ProgramRunner
19
20
import com.intellij.execution.ui.ConsoleView
20
21
import com.intellij.execution.ui.ConsoleViewContentType
22
+ import com.intellij.openapi.actionSystem.ActionManager
23
+ import com.intellij.openapi.actionSystem.DefaultActionGroup
21
24
import com.intellij.openapi.application.ApplicationManager
22
25
import com.intellij.openapi.project.Project
23
26
import com.intellij.openapi.vfs.VirtualFileManager
24
27
import com.intellij.psi.PsiManager
28
+ import com.intellij.ui.components.panels.NonOpaquePanel
25
29
import kotlinx.coroutines.launch
26
30
import kotlinx.coroutines.runBlocking
27
- // DONT REMOVE THIS IMPORT
28
- import kotlinx.coroutines.flow.collect
31
+ import java.awt.BorderLayout
29
32
import java.io.OutputStream
33
+ import javax.swing.JComponent
34
+ import javax.swing.JPanel
30
35
31
36
open class DevInsRunConfigurationProfileState (
32
37
private val myProject : Project ,
@@ -38,7 +43,23 @@ open class DevInsRunConfigurationProfileState(
38
43
val processHandler: ProcessHandler = createProcessHandler(configuration.name)
39
44
ProcessTerminatedListener .attach(processHandler)
40
45
41
- val console: ConsoleView = ConsoleViewWrapperBase (ConsoleViewImpl (myProject, true ))
46
+ val executionConsole = ConsoleViewImpl (myProject, true )
47
+ val console = object : ConsoleViewWrapperBase (executionConsole) {
48
+ private var myPanel: NonOpaquePanel = NonOpaquePanel (BorderLayout ())
49
+
50
+ init {
51
+ val baseComponent = delegate.component
52
+ myPanel.add(baseComponent, BorderLayout .CENTER )
53
+
54
+ val actionGroup = DefaultActionGroup (* executionConsole.createConsoleActions())
55
+ val toolbar = ActionManager .getInstance().createActionToolbar(" BuildConsole" , actionGroup, false )
56
+ toolbar.targetComponent = baseComponent
57
+ myPanel.add(toolbar.component, BorderLayout .EAST )
58
+ }
59
+
60
+ override fun getComponent (): JComponent = myPanel
61
+ }
62
+
42
63
console.attachToProcess(processHandler)
43
64
44
65
val file: DevInFile ? = lookupDevInsFile(myProject, configuration.getScriptPath())
@@ -96,10 +117,6 @@ open class DevInsRunConfigurationProfileState(
96
117
97
118
override fun getProcessInput (): OutputStream ? = null
98
119
override fun getExecutionName (): String = myExecutionName
99
-
100
- protected fun closeInput () {
101
-
102
- }
103
120
}
104
121
}
105
122
}
0 commit comments