use ReferencesSearch instead of UsagesSearch for locating inline functions
This commit is contained in:
@@ -21,13 +21,13 @@ import com.intellij.debugger.NoDataException
|
|||||||
import com.intellij.debugger.SourcePosition
|
import com.intellij.debugger.SourcePosition
|
||||||
import com.intellij.debugger.engine.DebugProcess
|
import com.intellij.debugger.engine.DebugProcess
|
||||||
import com.intellij.debugger.requests.ClassPrepareRequestor
|
import com.intellij.debugger.requests.ClassPrepareRequestor
|
||||||
import com.intellij.find.findUsages.FindUsagesOptions
|
|
||||||
import com.intellij.openapi.project.DumbService
|
import com.intellij.openapi.project.DumbService
|
||||||
import com.intellij.openapi.roots.libraries.LibraryUtil
|
import com.intellij.openapi.roots.libraries.LibraryUtil
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.PsiFile
|
import com.intellij.psi.PsiFile
|
||||||
import com.intellij.psi.impl.compiled.ClsFileImpl
|
import com.intellij.psi.impl.compiled.ClsFileImpl
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
|
import com.intellij.psi.search.searches.ReferencesSearch
|
||||||
import com.intellij.psi.util.*
|
import com.intellij.psi.util.*
|
||||||
import com.sun.jdi.AbsentInformationException
|
import com.sun.jdi.AbsentInformationException
|
||||||
import com.sun.jdi.Location
|
import com.sun.jdi.Location
|
||||||
@@ -45,9 +45,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyzeAndGetResult
|
|||||||
import org.jetbrains.kotlin.idea.caches.resolve.analyzeFullyAndGetResult
|
import org.jetbrains.kotlin.idea.caches.resolve.analyzeFullyAndGetResult
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils
|
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils
|
||||||
import org.jetbrains.kotlin.idea.decompiler.JetClsFile
|
import org.jetbrains.kotlin.idea.decompiler.JetClsFile
|
||||||
import org.jetbrains.kotlin.idea.findUsages.toSearchTarget
|
import org.jetbrains.kotlin.idea.search.usagesSearch.isImportUsage
|
||||||
import org.jetbrains.kotlin.idea.search.usagesSearch.FunctionUsagesSearchHelper
|
|
||||||
import org.jetbrains.kotlin.idea.search.usagesSearch.search
|
|
||||||
import org.jetbrains.kotlin.idea.util.DebuggerUtils
|
import org.jetbrains.kotlin.idea.util.DebuggerUtils
|
||||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
@@ -466,19 +464,15 @@ public class JetPositionManager(private val myDebugProcess: DebugProcess) : Mult
|
|||||||
if (psiElement is JetNamedFunction &&
|
if (psiElement is JetNamedFunction &&
|
||||||
InlineUtil.isInline(typeMapper.getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, psiElement))
|
InlineUtil.isInline(typeMapper.getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, psiElement))
|
||||||
) {
|
) {
|
||||||
val project = myDebugProcess.getProject()
|
ReferencesSearch.search(psiElement).forEach {
|
||||||
val options = FindUsagesOptions(project)
|
if (!it.isImportUsage()) {
|
||||||
options.isSearchForTextOccurrences = false
|
val psiElement = it.getElement()
|
||||||
val usagesSearchTarget = options.toSearchTarget(psiElement, true)
|
if (psiElement is JetElement) {
|
||||||
|
//TODO recursive search
|
||||||
val usagesSearchRequest = FunctionUsagesSearchHelper(skipImports = true).newRequest(usagesSearchTarget)
|
val name = classNameForPosition(psiElement)
|
||||||
usagesSearchRequest.search().forEach {
|
if (name != null) {
|
||||||
val psiElement = it.getElement()
|
result.add(name)
|
||||||
if (psiElement is JetElement) {
|
}
|
||||||
//TODO recursive search
|
|
||||||
val name = classNameForPosition(psiElement)
|
|
||||||
if (name != null) {
|
|
||||||
result.add(name)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user