diff --git a/CHANGELOG.md b/CHANGELOG.md index 203d1f51..e93fec9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,11 @@ Changelog structure reference: ## [Unreleased] +### Fixed + +- Project + - "Save all documents" hanging when trying to run a zig file + ## [20.0.2] ### Added diff --git a/core/src/main/kotlin/com/falsepattern/zigbrains/project/run/ZigProgramRunner.kt b/core/src/main/kotlin/com/falsepattern/zigbrains/project/run/ZigProgramRunner.kt index ddde0c93..665c13bf 100644 --- a/core/src/main/kotlin/com/falsepattern/zigbrains/project/run/ZigProgramRunner.kt +++ b/core/src/main/kotlin/com/falsepattern/zigbrains/project/run/ZigProgramRunner.kt @@ -45,9 +45,10 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.async import org.jetbrains.concurrency.Promise -abstract class ZigProgramRunner>(protected val executorId: String): AsyncProgramRunner() { +abstract class ZigProgramRunner>(protected val executorId: String) : AsyncProgramRunner() { @OptIn(ExperimentalCoroutinesApi::class) override fun execute(environment: ExecutionEnvironment, state: RunProfileState): Promise { + FileDocumentManager.getInstance().saveAllDocuments() return environment.project.zigCoroutineScope.async { withModalProgress(ModalTaskOwner.project(environment.project), "Starting zig program...", TaskCancellation.cancellable()) { executeAsync(environment, state) @@ -71,13 +72,8 @@ abstract class ZigProgramRunner>(protected val } return reportProgress { reporter -> - reporter.indeterminateStep("Saving all documents") { - withEDTContext { - FileDocumentManager.getInstance().saveAllDocuments() - } - } - return@reportProgress reporter.indeterminateStep { - return@indeterminateStep execute(state, toolchain, environment) + reporter.indeterminateStep { + execute(state, toolchain, environment) } }