Skip to content

Commit ac386fd

Browse files
committed
fix: Add Disposable to CodeHighlightSketch and optimize Terminal UI
1 parent de6c499 commit ac386fd

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

core/src/main/kotlin/cc/unitmesh/devti/sketch/ui/code/CodeHighlightSketch.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ open class CodeHighlightSketch(
3939
open val text: String,
4040
private var ideaLanguage: Language?,
4141
val editorLineThreshold: Int = 6
42-
) : JBPanel<CodeHighlightSketch>(BorderLayout()), DataProvider, LangSketch {
42+
) : JBPanel<CodeHighlightSketch>(BorderLayout()), DataProvider, LangSketch, Disposable {
4343
private val devinLineThreshold = 1
4444
private var isDevIns = false
4545

@@ -247,7 +247,11 @@ open class CodeHighlightSketch(
247247
}
248248

249249
override fun dispose() {
250-
// do nothing
250+
editorFragment?.editor?.let {
251+
EditorFactory.getInstance().releaseEditor(it)
252+
}
253+
254+
editorFragment = null
251255
}
252256
}
253257

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

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,18 @@ import com.intellij.openapi.ui.popup.JBPopupFactory
2222
import com.intellij.openapi.ui.popup.util.MinimizeButton
2323
import com.intellij.openapi.wm.ToolWindowManager
2424
import com.intellij.terminal.JBTerminalWidget
25-
import com.intellij.ui.components.panels.HorizontalLayout
2625
import com.intellij.ui.components.panels.VerticalLayout
2726
import com.intellij.ui.components.panels.Wrapper
28-
import com.intellij.ui.scale.JBUIScale.scale
2927
import com.intellij.util.ui.JBUI
3028
import com.intellij.util.ui.UIUtil
3129
import org.jetbrains.plugins.terminal.LocalTerminalDirectRunner
3230
import java.awt.BorderLayout
3331
import java.awt.Dimension
34-
import java.awt.FlowLayout
3532
import java.awt.event.MouseAdapter
3633
import java.awt.event.MouseEvent
37-
import javax.swing.Icon
38-
import javax.swing.JButton
3934
import javax.swing.JComponent
4035
import javax.swing.JLabel
4136
import javax.swing.JPanel
42-
import javax.swing.SwingConstants
4337

4438
/**
4539
* TerminalSketch provide a support for `bash` and `shell` language in terminal.
@@ -84,6 +78,8 @@ class TerminalSketchProvider : LanguageSketchProvider {
8478
add(terminalWidget!!.component)
8579
}
8680
}
81+
82+
mainPanel!!.border = JBUI.Borders.empty(0, 8)
8783
terminalWidget!!.addMessageFilter(FrontendWebViewServerFilter(project, mainPanel!!))
8884
}
8985

@@ -161,9 +157,10 @@ class TerminalSketchProvider : LanguageSketchProvider {
161157
override fun applyFilter(line: String, entireLength: Int): Filter.Result? {
162158
if (isAlreadySent) return null
163159

160+
Thread.sleep(1000)
161+
terminalWidget!!.terminalStarter?.sendString(content, false)
162+
164163
ApplicationManager.getApplication().invokeLater {
165-
Thread.sleep(1000)
166-
terminalWidget!!.terminalStarter?.sendString(content, false)
167164
terminalWidget!!.revalidate()
168165
terminalWidget!!.repaint()
169166
}

0 commit comments

Comments
 (0)