Skip to content

Commit 7aed665

Browse files
committed
fix(core): add writeText extension function for VirtualFile for 223
- Add writeText extension function to VirtualFile class - Use VfsUtilCore.saveText to save the content - Annotate with @RequiresWriteLock to ensure thread safety - Refactor saveText function to handle charset and output
1 parent e63e1ea commit 7aed665

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,16 @@ import com.intellij.lang.Language
1313
import com.intellij.lang.annotation.HighlightSeverity
1414
import com.intellij.openapi.application.ApplicationManager
1515
import com.intellij.openapi.application.runReadAction
16-
import com.intellij.openapi.application.runWriteAction
1716
import com.intellij.openapi.command.CommandProcessor
1817
import com.intellij.openapi.command.WriteCommandAction
1918
import com.intellij.openapi.diagnostic.logger
20-
import com.intellij.openapi.diff.impl.patch.ApplyPatchStatus
21-
import com.intellij.openapi.diff.impl.patch.PatchHunk
22-
import com.intellij.openapi.diff.impl.patch.PatchLine
23-
import com.intellij.openapi.diff.impl.patch.TextFilePatch
24-
import com.intellij.openapi.diff.impl.patch.TextPatchBuilder
19+
import com.intellij.openapi.diff.impl.patch.*
2520
import com.intellij.openapi.diff.impl.patch.apply.GenericPatchApplier
2621
import com.intellij.openapi.fileEditor.FileDocumentManager
2722
import com.intellij.openapi.fileEditor.FileEditorManager
2823
import com.intellij.openapi.project.Project
2924
import com.intellij.openapi.vfs.VfsUtilCore
3025
import com.intellij.openapi.vfs.VirtualFile
31-
import com.intellij.openapi.vfs.writeText
3226
import com.intellij.psi.PsiManager
3327
import com.intellij.testFramework.LightVirtualFile
3428
import com.intellij.ui.DarculaColors
@@ -42,6 +36,7 @@ import java.awt.BorderLayout
4236
import java.awt.EventQueue.invokeLater
4337
import java.awt.event.MouseAdapter
4438
import java.awt.event.MouseEvent
39+
import java.io.IOException
4540
import java.nio.charset.Charset
4641
import javax.swing.BorderFactory
4742
import javax.swing.JButton
@@ -291,5 +286,13 @@ fun createPatchFromCode(oldCode: String, newCode: String): TextFilePatch? {
291286

292287
@RequiresWriteLock
293288
fun VirtualFile.writeText(content: String) {
294-
VfsUtilCore.saveText(this, content)
289+
saveText(this, content)
290+
}
291+
292+
@Throws(IOException::class)
293+
fun saveText(file: VirtualFile, text: String) {
294+
val charset = file.getCharset()
295+
file.getOutputStream(file).use { stream ->
296+
stream.write(text.toByteArray(charset))
297+
}
295298
}

0 commit comments

Comments
 (0)