Don't show modal progress dialog on calculate method parameter hint info
#KT-37537 Fixed Relates to #EA-216268
This commit is contained in:
+5
-19
@@ -19,9 +19,7 @@ package org.jetbrains.kotlin.idea.parameterInfo
|
|||||||
import com.intellij.codeInsight.CodeInsightBundle
|
import com.intellij.codeInsight.CodeInsightBundle
|
||||||
import com.intellij.codeInsight.lookup.LookupElement
|
import com.intellij.codeInsight.lookup.LookupElement
|
||||||
import com.intellij.lang.parameterInfo.*
|
import com.intellij.lang.parameterInfo.*
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
|
||||||
import com.intellij.openapi.application.runReadAction
|
import com.intellij.openapi.application.runReadAction
|
||||||
import com.intellij.openapi.progress.ProgressManager
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.impl.source.tree.LeafPsiElement
|
import com.intellij.psi.impl.source.tree.LeafPsiElement
|
||||||
import com.intellij.psi.util.PsiTreeUtil
|
import com.intellij.psi.util.PsiTreeUtil
|
||||||
@@ -30,7 +28,6 @@ import com.intellij.ui.JBColor
|
|||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
|
||||||
import org.jetbrains.kotlin.idea.KotlinBundle
|
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
|
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
|
||||||
import org.jetbrains.kotlin.idea.core.OptionalParametersHelper
|
import org.jetbrains.kotlin.idea.core.OptionalParametersHelper
|
||||||
@@ -185,23 +182,12 @@ abstract class KotlinParameterInfoWithCallHandlerBase<TArgumentList : KtElement,
|
|||||||
val parameterIndex = getParameterIndex(context, argumentList)
|
val parameterIndex = getParameterIndex(context, argumentList)
|
||||||
context.setCurrentParameter(parameterIndex)
|
context.setCurrentParameter(parameterIndex)
|
||||||
|
|
||||||
val bindingContext = argumentList.analyze(BodyResolveMode.PARTIAL)
|
runReadAction {
|
||||||
val call = findCall(argumentList, bindingContext) ?: return
|
val bindingContext = argumentList.analyze(BodyResolveMode.PARTIAL)
|
||||||
val resolutionFacade = argumentList.getResolutionFacade()
|
val call = findCall(argumentList, bindingContext) ?: return@runReadAction
|
||||||
|
val resolutionFacade = argumentList.getResolutionFacade()
|
||||||
|
|
||||||
val task = Runnable {
|
context.objectsToView.forEach { resolveCallInfo(it as CallInfo, call, bindingContext, resolutionFacade) }
|
||||||
runReadAction {
|
|
||||||
context.objectsToView.forEach { resolveCallInfo(it as CallInfo, call, bindingContext, resolutionFacade) }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ApplicationManager.getApplication()?.isDispatchThread == true) {
|
|
||||||
ProgressManager.getInstance().runProcessWithProgressSynchronously(
|
|
||||||
task,
|
|
||||||
KotlinBundle.message("hints.progress.calculating.parameter.info"), true, argumentList.project
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
task.run()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user