1
+ // File: TerminalSketchProvider.kt
1
2
package cc.unitmesh.terminal.sketch
2
3
3
4
import cc.unitmesh.devti.AutoDevIcons
@@ -40,9 +41,6 @@ import javax.swing.JComponent
40
41
import javax.swing.JLabel
41
42
import javax.swing.JPanel
42
43
43
- /* *
44
- * TerminalSketch provide a support for `bash` and `shell` language in terminal.
45
- */
46
44
class TerminalSketchProvider : LanguageSketchProvider {
47
45
override fun isSupported (lang : String ): Boolean = lang == " bash" || lang == " shell"
48
46
@@ -61,6 +59,10 @@ class TerminalSketchProvider : LanguageSketchProvider {
61
59
}
62
60
63
61
val codeSketch = CodeHighlightSketch (project, content, CodeFence .findLanguage(" bash" ))
62
+ val codePanel = JPanel (BorderLayout ()).apply {
63
+ add(codeSketch.getComponent(), BorderLayout .CENTER )
64
+ }
65
+ val collapsibleCodePanel = CollapsiblePanel (" Shell Code" , codePanel)
64
66
65
67
val toolbarPanel = JPanel (BorderLayout ()).apply {
66
68
add(titleLabel, BorderLayout .WEST )
@@ -83,7 +85,7 @@ class TerminalSketchProvider : LanguageSketchProvider {
83
85
mainPanel = object : JPanel (VerticalLayout (JBUI .scale(0 ))) {
84
86
init {
85
87
add(toolbarWrapper)
86
- add(codeSketch.getComponent() )
88
+ add(collapsibleCodePanel )
87
89
add(terminalWidget!! .component)
88
90
}
89
91
}
@@ -176,22 +178,16 @@ class TerminalSketchProvider : LanguageSketchProvider {
176
178
}
177
179
178
180
override fun onDoneStream (allText : String ) {
179
- var isAlreadySent = false
180
181
if (content.lines().size > 1 ) return
181
182
182
183
titleLabel.text = " Terminal - ($content )"
183
-
184
184
ApplicationManager .getApplication().invokeLater {
185
185
terminalWidget!! .terminalStarter?.sendString(content, false )
186
186
}
187
-
188
- isAlreadySent = true
189
187
}
190
188
191
189
override fun getComponent (): JComponent = mainPanel!!
192
-
193
190
override fun updateLanguage (language : Language ? , originLanguage : String? ) {}
194
-
195
191
override fun dispose () {
196
192
codeSketch.dispose()
197
193
}
@@ -225,7 +221,7 @@ class FrontendWebViewServerFilter(val project: Project, val mainPanel: JPanel) :
225
221
loadURL(url)
226
222
}
227
223
228
- var additionalPanel = JPanel (BorderLayout ()).apply {
224
+ val additionalPanel = JPanel (BorderLayout ()).apply {
229
225
add(webViewWindow.component, BorderLayout .CENTER )
230
226
}
231
227
@@ -235,7 +231,6 @@ class FrontendWebViewServerFilter(val project: Project, val mainPanel: JPanel) :
235
231
}
236
232
237
233
isAlreadyStart = true
238
-
239
234
return null
240
235
}
241
- }
236
+ }
0 commit comments