Skip to content

Commit 5039744

Browse files
committed
fix(devti): improve Markdown processing and shell safety check
- Enhance Markdown parsing for DevIn language - Disable Markdown preview for better performance - Refactor SketchToolWindow for language detection- Move ShellSyntaxSafetyCheckTest to core module
1 parent 0afe92f commit 5039744

File tree

5 files changed

+16
-11
lines changed

5 files changed

+16
-11
lines changed

core/src/main/kotlin/cc/unitmesh/devti/gui/chat/view/MessageView.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,14 @@ class MessageView(val project: Project, val message: String, val role: ChatRole,
122122
oldComponent.dispose()
123123
} else {
124124
blockViews[index].apply {
125-
updateLanguage(codeFence.language, codeFence.originLanguage)
125+
var originLanguage = codeFence.originLanguage
126+
var language = codeFence.language
127+
if (language.displayName == "Markdown" && codeFence.text.startsWith("<devin>")) {
128+
language = CodeFence.findLanguage("DevIn")
129+
originLanguage = "DevIn"
130+
}
131+
132+
updateLanguage(language, originLanguage)
126133
updateViewText(codeFence.text, codeFence.isComplete)
127134
}
128135
}

core/src/main/kotlin/cc/unitmesh/devti/sketch/SketchToolWindow.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import com.intellij.openapi.actionSystem.AnAction
2727
import com.intellij.openapi.actionSystem.impl.ActionButton
2828
import com.intellij.openapi.application.ApplicationManager
2929
import com.intellij.openapi.application.runInEdt
30+
import com.intellij.openapi.diagnostic.logger
3031
import com.intellij.openapi.editor.Editor
3132
import com.intellij.openapi.fileTypes.PlainTextLanguage
3233
import com.intellij.openapi.project.Project
@@ -312,12 +313,10 @@ open class SketchToolWindow(
312313
}
313314

314315
var language = codeFence.language
315-
if (codeFence.text.contains("\n```") && codeFence.text.startsWith("/")) {
316-
if (language.displayName == "Markdown") {
317-
com.intellij.openapi.diagnostic.logger<SketchToolWindow>().warn("Try to fix language error")
318-
language = findLanguage("DevIn")
319-
originLanguage = "DevIn"
320-
}
316+
if (language.displayName == "Markdown" && codeFence.text.startsWith("<devin>")) {
317+
logger<SketchToolWindow>().warn("Try to fix language error")
318+
language = findLanguage("DevIn")
319+
originLanguage = "DevIn"
321320
}
322321

323322
updateLanguage(language, originLanguage)

core/src/main/kotlin/cc/unitmesh/devti/sketch/run/ShellSyntaxSafetyCheck.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package cc.unitmesh.devti.sketch.run
22

33
import com.intellij.ide.scratch.ScratchRootType
44
import com.intellij.openapi.project.Project
5-
import com.intellij.psi.PsiFileFactory
65
import com.intellij.psi.PsiManager
76
import com.intellij.psi.util.PsiTreeUtil
87
import com.intellij.sh.ShLanguage

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ class MarkdownPreviewSketchProvider : LanguageSketchProvider {
77
* Since Webview had a bad performance, we disable it by default.
88
*/
99
override fun isSupported(lang: String): Boolean {
10-
return lang.lowercase() == "markdown"
10+
// return lang.lowercase() == "markdown"
11+
return false
1112
}
1213

1314
override fun create(project: Project, content: String): ExtensionLangSketch = MarkdownPreviewHighlightSketch(project, content)
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
package cc.unitmesh.terminal.sketch
1+
package cc.unitmesh.devti.sketch.run
22

3-
import cc.unitmesh.devti.sketch.run.ShellSyntaxSafetyCheck
43
import com.intellij.testFramework.fixtures.BasePlatformTestCase
54

65
class ShellSyntaxSafetyCheckTest : BasePlatformTestCase() {

0 commit comments

Comments
 (0)