Skip to content

Commit bdc272e

Browse files
committed
refactor(terminal): move UIUpdatingWriter to core module #335
Moved UIUpdatingWriter from ext-terminal to core module for better code reuse and organization. Removed redundant errWriter in TerminalSketchProvider.
1 parent 2e99d99 commit bdc272e

File tree

2 files changed

+7
-25
lines changed

2 files changed

+7
-25
lines changed

exts/ext-terminal/src/main/kotlin/cc/unitmesh/terminal/sketch/UIUpdatingWriter.kt renamed to core/src/main/kotlin/cc/unitmesh/devti/sketch/run/UIUpdatingWriter.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cc.unitmesh.terminal.sketch
1+
package cc.unitmesh.devti.sketch.run
22

33
import com.intellij.openapi.application.ApplicationManager
44
import java.io.StringWriter
@@ -42,11 +42,11 @@ class UIUpdatingWriter(
4242
ApplicationManager.getApplication().invokeLater {
4343
val currentText = stringWriter.toString()
4444
onTextUpdate(currentText, !isExecuting)
45-
45+
4646
if (checkCollapsed()) {
4747
expandPanel()
4848
}
49-
49+
5050
if (isExecuting) {
5151
onPanelUpdate("Execution Results (Running...)", isExecuting)
5252
} else {
@@ -65,4 +65,4 @@ class UIUpdatingWriter(
6565
}
6666

6767
fun getContent(): String = stringWriter.toString()
68-
}
68+
}

exts/ext-terminal/src/main/kotlin/cc/unitmesh/terminal/sketch/TerminalSketchProvider.kt

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import cc.unitmesh.devti.AutoDevIcons
55
import cc.unitmesh.devti.AutoDevNotifications
66
import cc.unitmesh.devti.sketch.SketchToolWindow
77
import cc.unitmesh.devti.sketch.run.ProcessExecutor
8+
import cc.unitmesh.devti.sketch.run.UIUpdatingWriter
89
import cc.unitmesh.devti.sketch.ui.ExtensionLangSketch
910
import cc.unitmesh.devti.sketch.ui.LanguageSketchProvider
1011
import cc.unitmesh.devti.sketch.ui.code.CodeHighlightSketch
@@ -232,29 +233,14 @@ class TerminalLangSketch(val project: Project, var content: String) : ExtensionL
232233
}
233234
)
234235

235-
val errWriter = UIUpdatingWriter(
236-
onTextUpdate = { text, complete ->
237-
resultSketch.updateViewText(text, complete)
238-
},
239-
onPanelUpdate = { title, _ ->
240-
collapsibleResultPanel.setTitle(title)
241-
},
242-
checkCollapsed = {
243-
collapsibleResultPanel.isCollapsed()
244-
},
245-
expandPanel = {
246-
collapsibleResultPanel.expand()
247-
}
248-
)
249-
250236
resultSketch.updateViewText("", true)
251237
stdWriter.setExecuting(true)
252238

253239
AutoDevCoroutineScope.scope(project).launch {
254240
val executor = ProcessExecutor(project)
255241
try {
256242
val dispatcher = PooledThreadExecutor.INSTANCE.asCoroutineDispatcher()
257-
executor.exec(getViewText(), stdWriter, errWriter, dispatcher)
243+
executor.exec(getViewText(), stdWriter, stdWriter, dispatcher)
258244
ApplicationManager.getApplication().invokeLater {
259245
stdWriter.setExecuting(false)
260246
if (collapsibleResultPanel.isCollapsed()) {
@@ -264,11 +250,7 @@ class TerminalLangSketch(val project: Project, var content: String) : ExtensionL
264250
} catch (ex: Exception) {
265251
ApplicationManager.getApplication().invokeLater {
266252
stdWriter.setExecuting(false)
267-
resultSketch.updateViewText(
268-
"${stdWriter.getContent()}\nError: ${ex.message}",
269-
true
270-
)
271-
253+
resultSketch.updateViewText("${stdWriter.getContent()}\nError: ${ex.message}", true)
272254
collapsibleResultPanel.setTitle("Execution Results (Error)")
273255
}
274256
}

0 commit comments

Comments
 (0)