Show receiver for invoke calls in smart step into popup
This commit is contained in:
@@ -25,6 +25,7 @@ import com.intellij.psi.PsiDocumentManager
|
|||||||
import com.intellij.psi.PsiMethod
|
import com.intellij.psi.PsiMethod
|
||||||
import com.intellij.util.Range
|
import com.intellij.util.Range
|
||||||
import com.intellij.util.containers.OrderedSet
|
import com.intellij.util.containers.OrderedSet
|
||||||
|
import org.jetbrains.kotlin.builtins.functions.FunctionInvokeDescriptor
|
||||||
import org.jetbrains.kotlin.builtins.isSuspendFunctionType
|
import org.jetbrains.kotlin.builtins.isSuspendFunctionType
|
||||||
import org.jetbrains.kotlin.codegen.intrinsics.IntrinsicMethods
|
import org.jetbrains.kotlin.codegen.intrinsics.IntrinsicMethods
|
||||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||||
@@ -35,6 +36,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
|||||||
import org.jetbrains.kotlin.idea.caches.resolve.analyzeFully
|
import org.jetbrains.kotlin.idea.caches.resolve.analyzeFully
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils
|
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
||||||
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
import org.jetbrains.kotlin.load.java.isFromJava
|
import org.jetbrains.kotlin.load.java.isFromJava
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
@@ -186,7 +188,17 @@ class KotlinSmartStepIntoHandler : JvmSmartStepIntoHandler() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val label = KotlinMethodSmartStepTarget.calcLabel(descriptor)
|
val callLabel = KotlinMethodSmartStepTarget.calcLabel(descriptor)
|
||||||
|
val label = when (descriptor) {
|
||||||
|
is FunctionInvokeDescriptor -> {
|
||||||
|
when (expression) {
|
||||||
|
is KtSimpleNameExpression -> "${runReadAction { expression.text }}.$callLabel"
|
||||||
|
else -> callLabel
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else -> callLabel
|
||||||
|
}
|
||||||
|
|
||||||
result.add(KotlinMethodSmartStepTarget(descriptor, label, expression, lines))
|
result.add(KotlinMethodSmartStepTarget(descriptor, label, expression, lines))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user