Convert Property to Function: Wrap usage search in read action (EA-1280778)

This commit is contained in:
Alexey Sedunov
2016-12-15 12:50:37 +03:00
parent 23ec8f0813
commit e89ffbf916
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.idea.references.KtReference
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
import org.jetbrains.kotlin.idea.runSynchronouslyWithProgress import org.jetbrains.kotlin.idea.runSynchronouslyWithProgress
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
import org.jetbrains.kotlin.idea.util.application.runReadAction
import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.kotlin.psi.KtCallableReferenceExpression import org.jetbrains.kotlin.psi.KtCallableReferenceExpression
@@ -93,6 +94,7 @@ class ConvertPropertyToFunctionIntention : SelfTargetingIntention<KtProperty>(Kt
val javaRefsToReplaceWithCall = ArrayList<PsiReferenceExpression>() val javaRefsToReplaceWithCall = ArrayList<PsiReferenceExpression>()
project.runSynchronouslyWithProgress("Looking for usages and conflicts...", true) { project.runSynchronouslyWithProgress("Looking for usages and conflicts...", true) {
runReadAction {
val progressStep = 1.0/callables.size val progressStep = 1.0/callables.size
for ((i, callable) in callables.withIndex()) { for ((i, callable) in callables.withIndex()) {
ProgressManager.getInstance().progressIndicator.fraction = (i + 1)*progressStep ProgressManager.getInstance().progressIndicator.fraction = (i + 1)*progressStep
@@ -159,6 +161,7 @@ class ConvertPropertyToFunctionIntention : SelfTargetingIntention<KtProperty>(Kt
} }
} }
} }
}
project.checkConflictsInteractively(conflicts) { project.checkConflictsInteractively(conflicts) {
project.executeWriteCommand(text) { project.executeWriteCommand(text) {