usage search for companion object searches for Java usages of its members
This commit is contained in:
+16
-4
@@ -23,10 +23,7 @@ import com.intellij.psi.impl.cache.CacheManager
|
|||||||
import com.intellij.psi.search.*
|
import com.intellij.psi.search.*
|
||||||
import com.intellij.psi.search.searches.ReferencesSearch
|
import com.intellij.psi.search.searches.ReferencesSearch
|
||||||
import com.intellij.util.Processor
|
import com.intellij.util.Processor
|
||||||
import org.jetbrains.kotlin.asJava.KotlinLightMethod
|
import org.jetbrains.kotlin.asJava.*
|
||||||
import org.jetbrains.kotlin.asJava.KotlinLightParameter
|
|
||||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
|
||||||
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
|
|
||||||
import org.jetbrains.kotlin.idea.JetFileType
|
import org.jetbrains.kotlin.idea.JetFileType
|
||||||
import org.jetbrains.kotlin.idea.references.JetSimpleNameReference
|
import org.jetbrains.kotlin.idea.references.JetSimpleNameReference
|
||||||
import org.jetbrains.kotlin.idea.search.KOTLIN_NAMED_ARGUMENT_SEARCH_CONTEXT
|
import org.jetbrains.kotlin.idea.search.KOTLIN_NAMED_ARGUMENT_SEARCH_CONTEXT
|
||||||
@@ -181,6 +178,21 @@ public class KotlinReferencesSearcher : QueryExecutorBase<PsiReference, Referenc
|
|||||||
if (fieldForCompanionObject != null) {
|
if (fieldForCompanionObject != null) {
|
||||||
searchNamedElement(queryParameters, fieldForCompanionObject)
|
searchNamedElement(queryParameters, fieldForCompanionObject)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val originClass = element.getStrictParentOfType<JetClass>()
|
||||||
|
val originLightClass = LightClassUtil.getPsiClass(originClass)
|
||||||
|
if (originLightClass != null) {
|
||||||
|
val lightDeclarations: List<KotlinLightElement<*, *>?> =
|
||||||
|
originLightClass.methods.map { it as? KotlinLightMethod } +
|
||||||
|
originLightClass.fields.map { it as? KotlinLightFieldForDeclaration }
|
||||||
|
|
||||||
|
for (declaration in element.declarations) {
|
||||||
|
val lightDeclaration = lightDeclarations.find { it?.getOrigin() == declaration }
|
||||||
|
if (lightDeclaration != null) {
|
||||||
|
searchNamedElement(queryParameters, lightDeclaration)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user