From 60c78a009d2010e01f354c5e3ffc9517f58bf220 Mon Sep 17 00:00:00 2001 From: Phodal Huang Date: Mon, 27 Jan 2025 09:41:29 +0800 Subject: [PATCH] feat(terminal): add dynamic title label to terminal widget Introduce a dynamic title label for the terminal widget that updates with the first 10 characters of the terminal output. This enhances the user experience by providing context directly in the title. --- .../unitmesh/terminal/sketch/TerminalLangSketchProvider.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/exts/ext-terminal/src/main/kotlin/cc/unitmesh/terminal/sketch/TerminalLangSketchProvider.kt b/exts/ext-terminal/src/main/kotlin/cc/unitmesh/terminal/sketch/TerminalLangSketchProvider.kt index 4010c0371..bd5c104a3 100644 --- a/exts/ext-terminal/src/main/kotlin/cc/unitmesh/terminal/sketch/TerminalLangSketchProvider.kt +++ b/exts/ext-terminal/src/main/kotlin/cc/unitmesh/terminal/sketch/TerminalLangSketchProvider.kt @@ -44,6 +44,8 @@ class TerminalLangSketchProvider : LanguageSketchProvider { var terminalWidget: JBTerminalWidget? = null var panelLayout: JPanel? = null + private var titleLabel = JLabel("Terminal") + init { val projectDir = project.guessProjectDir()?.path val terminalRunner = LocalTerminalDirectRunner.createTerminalRunner(project) @@ -53,7 +55,7 @@ class TerminalLangSketchProvider : LanguageSketchProvider { panelLayout = object : JPanel(BorderLayout()) { init { - add(JLabel("Terminal").also { + add(titleLabel.also { it.border = JBUI.Borders.empty(5, 0) }, BorderLayout.NORTH) @@ -130,6 +132,7 @@ class TerminalLangSketchProvider : LanguageSketchProvider { } override fun doneUpdateText(allText: String) { + titleLabel.text = "Terminal - " + allText.substring(0, 10) ApplicationManager.getApplication().invokeLater { Thread.sleep(2000) // todo: change to when terminal ready terminalWidget!!.terminalStarter?.sendString(content, false)