New J2K : move resolve resolve out of EDT in shorten references processing

relates to #KT-31812
This commit is contained in:
Ilya Kirillov
2020-02-13 16:51:40 +03:00
parent dc57d307f3
commit d825428718
8 changed files with 126 additions and 59 deletions
@@ -5,15 +5,14 @@
package org.jetbrains.kotlin.nj2k.postProcessing.processings
import com.intellij.openapi.command.CommandProcessor
import com.intellij.openapi.editor.RangeMarker
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.idea.core.ShortenReferences
import org.jetbrains.kotlin.idea.util.ActionRunningMode
import org.jetbrains.kotlin.nj2k.JKImportStorage
import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext
import org.jetbrains.kotlin.nj2k.postProcessing.FileBasedPostProcessing
import org.jetbrains.kotlin.nj2k.postProcessing.GeneralPostProcessing
import org.jetbrains.kotlin.nj2k.postProcessing.PostProcessingOptions
import org.jetbrains.kotlin.nj2k.postProcessing.runUndoTransparentActionInEdt
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.KtQualifiedExpression
@@ -29,13 +28,19 @@ class ShortenReferenceProcessing : FileBasedPostProcessing() {
}
override fun runProcessing(file: KtFile, allFiles: List<KtFile>, rangeMarker: RangeMarker?, converterContext: NewJ2kConverterContext) {
runUndoTransparentActionInEdt(inWriteAction = false) {
CommandProcessor.getInstance().runUndoTransparentAction {
if (rangeMarker != null) {
if (rangeMarker.isValid) {
ShortenReferences.DEFAULT.process(file, rangeMarker.startOffset, rangeMarker.endOffset, filter)
ShortenReferences.DEFAULT.process(
file,
rangeMarker.startOffset,
rangeMarker.endOffset,
filter,
actionRunningMode = ActionRunningMode.RUN_IN_EDT
)
}
} else {
ShortenReferences.DEFAULT.process(file, filter)
ShortenReferences.DEFAULT.process(file, filter, actionRunningMode = ActionRunningMode.RUN_IN_EDT)
}
}
}