diff --git a/src/main/kotlin/creator/custom/providers/TemplateProvider.kt b/src/main/kotlin/creator/custom/providers/TemplateProvider.kt index a89d7b1c2..04993a749 100644 --- a/src/main/kotlin/creator/custom/providers/TemplateProvider.kt +++ b/src/main/kotlin/creator/custom/providers/TemplateProvider.kt @@ -155,7 +155,7 @@ interface TemplateProvider { try { return file.refreshSync(modalityState) - ?.inputStream?.reader()?.use { TemplateResourceBundle(it, parent) } + .inputStream.reader().use { TemplateResourceBundle(it, parent) } } catch (t: Throwable) { if (t is ControlFlowException) { return parent diff --git a/src/main/kotlin/util/files.kt b/src/main/kotlin/util/files.kt index 3743fe684..3966980f8 100644 --- a/src/main/kotlin/util/files.kt +++ b/src/main/kotlin/util/files.kt @@ -22,11 +22,9 @@ package com.demonwav.mcdev.util import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ModalityState -import com.intellij.openapi.application.writeAction import com.intellij.openapi.vfs.LocalFileSystem import com.intellij.openapi.vfs.VfsUtilCore import com.intellij.openapi.vfs.VirtualFile -import com.intellij.openapi.vfs.newvfs.RefreshQueue import java.io.File import java.io.IOException import java.nio.file.Path @@ -79,18 +77,13 @@ val VirtualFile.mcDomainAndPath: Pair? operator fun Manifest.get(attribute: String): String? = mainAttributes.getValue(attribute) operator fun Manifest.get(attribute: Attributes.Name): String? = mainAttributes.getValue(attribute) -suspend fun VirtualFile.refreshSync(modalityState: ModalityState): VirtualFile? { - fun refresh() { - RefreshQueue.getInstance().refresh(false, this.isDirectory, null, modalityState, this) - } - - if (ApplicationManager.getApplication().isWriteAccessAllowed) { - refresh() - } else { - writeAction { - refresh() - } - } - - return this.parent?.findOrCreateChildData(this, this.name) +suspend fun VirtualFile.refreshSync(modalityState: ModalityState): VirtualFile { + val file = this + ApplicationManager.getApplication().invokeAndWait( + { + file.refresh(false, true) + }, + modalityState + ) + return file }