Skip to content

Commit 6b52292

Browse files
committed
fix: auto-save file before dumping opcodes
1 parent 28e9e76 commit 6b52292

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/main/kotlin/com/github/xepozz/php_dump/toolWindow/panel/OpcodesTerminalPanel.kt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.intellij.openapi.application.runWriteAction
2020
import com.intellij.openapi.editor.EditorFactory
2121
import com.intellij.openapi.fileChooser.FileChooser
2222
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory
23+
import com.intellij.openapi.fileEditor.FileDocumentManager
2324
import com.intellij.openapi.fileEditor.FileEditorManager
2425
import com.intellij.openapi.project.Project
2526
import com.intellij.openapi.ui.SimpleToolWindowPanel
@@ -42,6 +43,7 @@ class OpcodesTerminalPanel(
4243

4344
val fileEditorManager = FileEditorManager.getInstance(project)
4445
val documentManager = PsiDocumentManager.getInstance(project)
46+
val fileDocumentManager = FileDocumentManager.getInstance()
4547
val editorFactory = EditorFactory.getInstance()
4648

4749
private val service = project.getService(OpcodesDumperService::class.java)
@@ -169,9 +171,19 @@ class OpcodesTerminalPanel(
169171
val editor = fileEditorManager.selectedTextEditor ?: return
170172
val virtualFile = editor.virtualFile ?: return
171173

174+
fileDocumentManager.saveDocument(editor.document)
175+
172176
CoroutineScope(Dispatchers.IO).launch {
173-
val result = service.dump(virtualFile) as ProcessOutput
177+
var result = service.dump(virtualFile) as ProcessOutput
178+
if (result.stdout.startsWith("Error: Could not compile file")) {
179+
result = service.dump(virtualFile) as ProcessOutput
180+
}
174181

182+
// if (result.stdout.startsWith("No syntax errors detected")) {
183+
//
184+
// }
185+
// println("reso: ${result.stdout}")
186+
// println("rese: ${result.stderr}")
175187
val content = result.stderr.ifEmpty { result.stdout }
176188
.asSafely<String>()
177189
?.replace("\r\n", "\n")
@@ -186,6 +198,7 @@ class OpcodesTerminalPanel(
186198
private fun setDocumentText(project: Project, content: String) {
187199
runWriteAction {
188200
editor.document.setText(content)
201+
documentManager.commitDocument(editor.document)
189202
}
190203
}
191204

0 commit comments

Comments
 (0)