From f51e28ea6894ffa42620460d50936b8fa376afcc Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 5 Jun 2019 12:35:04 +0300 Subject: [PATCH] New J2K: commit file after each post-processing #KT-31809 fixed --- .../kotlin/nj2k/postProcessing/J2kPostProcessor.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/J2kPostProcessor.kt b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/J2kPostProcessor.kt index 59c5d7e2759..ffc94ab0d8d 100644 --- a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/J2kPostProcessor.kt +++ b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/J2kPostProcessor.kt @@ -7,17 +7,20 @@ package org.jetbrains.kotlin.nj2k.postProcessing import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ModalityState +import com.intellij.openapi.command.CommandProcessor import com.intellij.openapi.editor.RangeMarker import com.intellij.psi.PsiElement import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.searches.ReferencesSearch import kotlinx.coroutines.runBlocking +import kotlinx.coroutines.withContext import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.diagnostics.DiagnosticWithParameters2 import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.idea.caches.resolve.analyze import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference import org.jetbrains.kotlin.idea.core.util.EDT +import org.jetbrains.kotlin.idea.formatter.commitAndUnblockDocument import org.jetbrains.kotlin.idea.inspections.* import org.jetbrains.kotlin.idea.inspections.branchedTransformations.IfThenToSafeAccessInspection import org.jetbrains.kotlin.idea.inspections.conventionNameCalls.ReplaceGetOrSetInspection @@ -59,6 +62,17 @@ class NewJ2kPostProcessor : PostProcessor { runBlocking(EDT.ModalityStateElement(ModalityState.defaultModalityState())) { for (processing in processings) { processing.runProcessing(file, rangeMarker, converterContext as NewJ2kConverterContext) + commitFile(file) + } + } + } + + private suspend fun commitFile(file: KtFile) { + withContext(EDT) { + CommandProcessor.getInstance().runUndoTransparentAction { + runWriteAction { + file.commitAndUnblockDocument() + } } } }