Skip to content

Commit ccbec1a

Browse files
authored
bugfix: 修复右键重构此处时,选择代码过多,导致内存溢出问题 (#218)
1 parent d80e53d commit ccbec1a

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/main/kotlin/cc/unitmesh/devti/gui/component/DisplayComponent.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.intellij.util.ui.JBEmptyBorder
55
import com.intellij.util.ui.UIUtil
66
import javax.accessibility.AccessibleContext
77
import javax.swing.JEditorPane
8+
import org.apache.commons.text.StringEscapeUtils
89

910
class DisplayComponent(question: String) : JEditorPane() {
1011
init {
@@ -16,8 +17,7 @@ class DisplayComponent(question: String) : JEditorPane() {
1617
this.text = question
1718
this.isOpaque = false
1819
this.putClientProperty(
19-
AccessibleContext.ACCESSIBLE_NAME_PROPERTY,
20-
StringUtil.unescapeXmlEntities(StringUtil.stripHtml(question, " "))
20+
AccessibleContext.ACCESSIBLE_NAME_PROPERTY, stripHtmlAndUnescapeXmlEntities(question)
2121
)
2222

2323
if (this.caret != null) {
@@ -28,4 +28,11 @@ class DisplayComponent(question: String) : JEditorPane() {
2828
fun updateMessage(content: String) {
2929
this.text = content
3030
}
31+
32+
private fun stripHtmlAndUnescapeXmlEntities(input: String): String {
33+
// 使用 Jsoup 去除HTML标签
34+
val text = Jsoup.parse(input).text()
35+
// 使用 Apache Commons Text 解码XML实体
36+
return StringEscapeUtils.unescapeXml(text)
37+
}
3138
}

0 commit comments

Comments
 (0)