one more place where we missed the search scope when highlighting usages
#KT-8904 Fixed
This commit is contained in:
+1
-1
@@ -113,7 +113,7 @@ public class KotlinFindClassUsagesHandler(
|
|||||||
val result = runReadAction {
|
val result = runReadAction {
|
||||||
val constructors = classOrObject.toLightClass()?.getConstructors() ?: PsiMethod.EMPTY_ARRAY
|
val constructors = classOrObject.toLightClass()?.getConstructors() ?: PsiMethod.EMPTY_ARRAY
|
||||||
constructors.filterIsInstance<KtLightMethod>().all { constructor ->
|
constructors.filterIsInstance<KtLightMethod>().all { constructor ->
|
||||||
constructor.processDelegationCallConstructorUsages(constructor.getUseScope()) {
|
constructor.processDelegationCallConstructorUsages(constructor.getUseScope().intersectWith(options.searchScope)) {
|
||||||
it.getCalleeExpression()?.mainReference?.let { referenceProcessor.process(it) } ?: false
|
it.getCalleeExpression()?.mainReference?.let { referenceProcessor.process(it) } ?: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,9 +18,11 @@ package org.jetbrains.kotlin.idea.findUsages.handlers
|
|||||||
|
|
||||||
import com.intellij.find.findUsages.FindUsagesHandler
|
import com.intellij.find.findUsages.FindUsagesHandler
|
||||||
import com.intellij.find.findUsages.FindUsagesOptions
|
import com.intellij.find.findUsages.FindUsagesOptions
|
||||||
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.PsiReference
|
import com.intellij.psi.PsiReference
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
|
import com.intellij.psi.search.LocalSearchScope
|
||||||
import com.intellij.psi.search.SearchScope
|
import com.intellij.psi.search.SearchScope
|
||||||
import com.intellij.usageView.UsageInfo
|
import com.intellij.usageView.UsageInfo
|
||||||
import com.intellij.util.CommonProcessors
|
import com.intellij.util.CommonProcessors
|
||||||
@@ -74,10 +76,14 @@ public abstract class KotlinFindUsagesHandler<T : PsiElement>(psiElement: T,
|
|||||||
val results = Collections.synchronizedList(arrayListOf<PsiReference>())
|
val results = Collections.synchronizedList(arrayListOf<PsiReference>())
|
||||||
val options = getFindUsagesOptions().clone()
|
val options = getFindUsagesOptions().clone()
|
||||||
options.searchScope = searchScope
|
options.searchScope = searchScope
|
||||||
|
val scopeContainingFile = (searchScope as? LocalSearchScope)?.scope?.get(0)?.containingFile
|
||||||
searchReferences(target, object : Processor<UsageInfo> {
|
searchReferences(target, object : Processor<UsageInfo> {
|
||||||
override fun process(info: UsageInfo): Boolean {
|
override fun process(info: UsageInfo): Boolean {
|
||||||
val reference = info.getReference()
|
val reference = info.getReference()
|
||||||
if (reference != null) {
|
if (reference != null) {
|
||||||
|
if (scopeContainingFile != null && reference.element.containingFile != scopeContainingFile) {
|
||||||
|
LOG.error("findReferencesToHighight() found a reference from a different file: $reference")
|
||||||
|
}
|
||||||
results.add(reference)
|
results.add(reference)
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
@@ -87,6 +93,7 @@ public abstract class KotlinFindUsagesHandler<T : PsiElement>(psiElement: T,
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
val LOG = Logger.getInstance(KotlinFindUsagesHandler::class.java)
|
||||||
|
|
||||||
protected fun processUsage(processor: Processor<UsageInfo>, ref: PsiReference): Boolean =
|
protected fun processUsage(processor: Processor<UsageInfo>, ref: PsiReference): Boolean =
|
||||||
processor.processIfNotNull { if (ref.element.isValid) KotlinReferenceUsageInfo(ref) else null }
|
processor.processIfNotNull { if (ref.element.isValid) KotlinReferenceUsageInfo(ref) else null }
|
||||||
|
|||||||
Reference in New Issue
Block a user