Skip to content

Commit 2d8988f

Browse files
committed
feat(snippet): expand snippet file name detection
- Add support for detecting snippet files with prefixes "DevIn-" and "devIn-". - Simplify Markdown viewer styling by removing dynamic font and background rules. - Refactor SingleFileDiffSketch to use background tasks for linting and auto-repair.
1 parent 510dbcb commit 2d8988f

File tree

3 files changed

+27
-18
lines changed

3 files changed

+27
-18
lines changed

core/src/main/kotlin/cc/unitmesh/devti/AutoDevSnippetFile.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const val AUTODEV_SNIPPET_NAME = "autodev-snippet-"
99
object AutoDevSnippetFile {
1010
fun isSnippet(file: VirtualFile): Boolean {
1111
if (file !is LightVirtualFile) return false
12-
return file.name.startsWith("autodev-snippet-")
12+
return file.name.startsWith("autodev-snippet-") || file.name.startsWith("DevIn-") || file.name.startsWith("devIn-")
1313
}
1414

1515
/**

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ object MarkdownViewer {
1515
jEditorPane.setContentType("text/html")
1616
val htmlEditorKit = HTMLEditorKitBuilder().build()
1717

18-
val backgroundColor = UIUtil.getPanelBackground()
18+
// val backgroundColor = UIUtil.getPanelBackground()
19+
//
20+
// val editorFontName = EditorColorsManager.getInstance().schemeForCurrentUITheme.editorFontName
21+
// val editorFontSize = EditorColorsManager.getInstance().schemeForCurrentUITheme.editorFontSize
22+
// val fontFamilyAndSize = "font-family:'" + editorFontName + "'; font-size:" + editorFontSize + "pt;"
1923

20-
val editorFontName = EditorColorsManager.getInstance().schemeForCurrentUITheme.editorFontName
21-
val editorFontSize = EditorColorsManager.getInstance().schemeForCurrentUITheme.editorFontSize
22-
23-
val fontFamilyAndSize = "font-family:'" + editorFontName + "'; font-size:" + editorFontSize + "pt;"
24-
htmlEditorKit.getStyleSheet().addRule("code { $fontFamilyAndSize }")
24+
htmlEditorKit.getStyleSheet().addRule("code { background-color: #fff; }")
2525
htmlEditorKit.getStyleSheet().addRule("p { margin-top: 1px }")
2626

2727
jEditorPane.also {

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

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.intellij.icons.AllIcons
1111
import com.intellij.lang.Language
1212
import com.intellij.lang.annotation.HighlightSeverity
1313
import com.intellij.openapi.application.ApplicationManager
14+
import com.intellij.openapi.application.WriteAction
1415
import com.intellij.openapi.application.runReadAction
1516
import com.intellij.openapi.application.runWriteAction
1617
import com.intellij.openapi.command.CommandProcessor
@@ -20,6 +21,10 @@ import com.intellij.openapi.diff.impl.patch.*
2021
import com.intellij.openapi.diff.impl.patch.apply.GenericPatchApplier
2122
import com.intellij.openapi.fileEditor.FileDocumentManager
2223
import com.intellij.openapi.fileEditor.FileEditorManager
24+
import com.intellij.openapi.progress.ProgressIndicator
25+
import com.intellij.openapi.progress.ProgressManager
26+
import com.intellij.openapi.progress.Task
27+
import com.intellij.openapi.progress.impl.BackgroundableProcessIndicator
2328
import com.intellij.openapi.project.Project
2429
import com.intellij.openapi.vfs.VfsUtilCore
2530
import com.intellij.openapi.vfs.VirtualFile
@@ -33,7 +38,6 @@ import com.intellij.ui.components.panels.VerticalLayout
3338
import com.intellij.util.LocalTimeCounter
3439
import com.intellij.util.concurrency.annotations.RequiresWriteLock
3540
import java.awt.BorderLayout
36-
import java.awt.EventQueue.invokeLater
3741
import java.awt.event.MouseAdapter
3842
import java.awt.event.MouseEvent
3943
import java.io.IOException
@@ -141,17 +145,18 @@ class SingleFileDiffSketch(
141145
mainPanel.add(contentPanel)
142146

143147
ApplicationManager.getApplication().invokeLater {
144-
lintCheckForNewCode(currentFile)
145-
}
148+
val task = object : Task.Backgroundable(myProject, "Analysis code style", false) {
149+
override fun run(indicator: ProgressIndicator) {
150+
lintCheckForNewCode(currentFile)
146151

147-
if (isAutoRepair && appliedPatch?.status != ApplyPatchStatus.SUCCESS) {
148-
ApplicationManager.getApplication().invokeLater {
149-
try {
150-
executeAutoRepair()
151-
} catch (e: Exception) {
152-
logger<SingleFileDiffSketch>().error("Failed to execute auto repair", e)
152+
if (isAutoRepair && appliedPatch?.status != ApplyPatchStatus.SUCCESS) {
153+
executeAutoRepair()
154+
}
153155
}
154156
}
157+
158+
ProgressManager.getInstance()
159+
.runProcessWithProgressAsynchronously(task, BackgroundableProcessIndicator(task))
155160
}
156161
}
157162

@@ -166,8 +171,11 @@ class SingleFileDiffSketch(
166171
null
167172
}
168173

169-
val file = LightVirtualFile(currentFile, fixedCode, LocalTimeCounter.currentTime())
170-
createActionButtons(file, appliedPatch, patch).let { actions ->
174+
WriteAction.compute<Unit, Throwable> {
175+
currentFile.writeText(fixedCode)
176+
}
177+
178+
createActionButtons(currentFile, appliedPatch, patch).let { actions ->
171179
actionPanel.removeAll()
172180
actions.forEach { button ->
173181
actionPanel.add(button)
@@ -256,6 +264,7 @@ class SingleFileDiffSketch(
256264
override fun updateLanguage(language: Language?, originLanguage: String?) {}
257265

258266
fun lintCheckForNewCode(currentFile: VirtualFile) {
267+
259268
if (newCode.isEmpty()) return
260269
val newFile = LightVirtualFile(currentFile, newCode, LocalTimeCounter.currentTime())
261270
val psiFile = runReadAction { PsiManager.getInstance(myProject).findFile(newFile) } ?: return

0 commit comments

Comments
 (0)