[FIR IDE] Enabled usages services and added services stubs
This commit is contained in:
@@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.asJava
|
||||||
|
|
||||||
|
import com.intellij.psi.*
|
||||||
|
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||||
|
import org.jetbrains.kotlin.psi.*
|
||||||
|
|
||||||
|
class LightClassProviderFirImpl : LightClassProvider {
|
||||||
|
override fun getLightFieldForCompanionObject(companionObject: KtClassOrObject): PsiField? {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getLightClassMethods(function: KtFunction): List<PsiMethod> {
|
||||||
|
return emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getLightClassParameterDeclarations(parameter: KtParameter): List<PsiNamedElement> {
|
||||||
|
return emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getLightClassPropertyDeclarations(property: KtProperty): List<PsiNamedElement> {
|
||||||
|
return emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun toLightClassWithBuiltinMapping(classOrObject: KtClassOrObject): PsiClass? {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun toLightMethods(psiElement: PsiElement): List<PsiMethod> {
|
||||||
|
return emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun toLightClass(classOrObject: KtClassOrObject): KtLightClass? {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun toLightElements(ktElement: KtElement): List<PsiNamedElement> {
|
||||||
|
return emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun createKtFakeLightClass(kotlinOrigin: KtClassOrObject): PsiClass? {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getRepresentativeLightMethod(psiElement: PsiElement): PsiMethod? {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isKtFakeLightClass(psiClass: PsiClass): Boolean {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isKtLightClassForDecompiledDeclaration(psiClass: PsiClass): Boolean {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun createKtFakeLightMethod(ktDeclaration: KtNamedDeclaration): PsiMethod? {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.findUsages
|
||||||
|
|
||||||
|
import com.intellij.openapi.project.Project
|
||||||
|
import com.intellij.psi.PsiElement
|
||||||
|
import com.intellij.psi.PsiReference
|
||||||
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
|
import org.jetbrains.kotlin.psi.*
|
||||||
|
|
||||||
|
class KotlinFindUsagesSupportFirImpl : KotlinFindUsagesSupport {
|
||||||
|
override fun isCallReceiverRefersToCompanionObject(element: KtElement, companionObject: KtObjectDeclaration): Boolean {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isDataClassComponentFunction(element: KtParameter): Boolean {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getTopMostOverriddenElementsToHighlight(target: PsiElement): List<PsiElement> {
|
||||||
|
return emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun tryRenderDeclarationCompactStyle(declaration: KtDeclaration): String? {
|
||||||
|
return (declaration as? KtNamedDeclaration)?.name ?: "SUPPORT FOR FIR"
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isConstructorUsage(psiReference: PsiReference, ktClassOrObject: KtClassOrObject): Boolean {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun checkSuperMethods(declaration: KtDeclaration, ignore: Collection<PsiElement>?, actionString: String): List<PsiElement> {
|
||||||
|
return listOf(declaration)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun sourcesAndLibraries(delegate: GlobalSearchScope, project: Project): GlobalSearchScope {
|
||||||
|
return delegate
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -38,7 +38,7 @@ interface LightClassProvider {
|
|||||||
|
|
||||||
fun toLightElements(ktElement: KtElement): List<PsiNamedElement>
|
fun toLightElements(ktElement: KtElement): List<PsiNamedElement>
|
||||||
|
|
||||||
fun createKtFakeLightClass(kotlinOrigin: KtClassOrObject): PsiClass
|
fun createKtFakeLightClass(kotlinOrigin: KtClassOrObject): PsiClass?
|
||||||
|
|
||||||
fun getRepresentativeLightMethod(psiElement: PsiElement): PsiMethod?
|
fun getRepresentativeLightMethod(psiElement: PsiElement): PsiMethod?
|
||||||
|
|
||||||
|
|||||||
@@ -97,6 +97,9 @@ The Kotlin FIR plugin provides language support in IntelliJ IDEA and Android Stu
|
|||||||
<projectService serviceImplementation="org.jetbrains.kotlin.idea.fir.low.level.api.FirIdeResolveStateService"/>
|
<projectService serviceImplementation="org.jetbrains.kotlin.idea.fir.low.level.api.FirIdeResolveStateService"/>
|
||||||
<projectService serviceImplementation="org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade"/>
|
<projectService serviceImplementation="org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade"/>
|
||||||
|
|
||||||
|
<projectService serviceInterface="org.jetbrains.kotlin.idea.asJava.LightClassProvider"
|
||||||
|
serviceImplementation="org.jetbrains.kotlin.idea.asJava.LightClassProviderFirImpl"/>
|
||||||
|
|
||||||
<completion.contributor language="kotlin"
|
<completion.contributor language="kotlin"
|
||||||
id="KotlinCompletionContributor"
|
id="KotlinCompletionContributor"
|
||||||
order="first"
|
order="first"
|
||||||
@@ -201,9 +204,28 @@ The Kotlin FIR plugin provides language support in IntelliJ IDEA and Android Stu
|
|||||||
order="first"/>
|
order="first"/>
|
||||||
|
|
||||||
<findUsagesHandlerFactory implementation="org.jetbrains.kotlin.idea.findUsages.KotlinFindUsagesHandlerFactory"/>
|
<findUsagesHandlerFactory implementation="org.jetbrains.kotlin.idea.findUsages.KotlinFindUsagesHandlerFactory"/>
|
||||||
|
<projectService serviceInterface="org.jetbrains.kotlin.idea.findUsages.KotlinFindUsagesSupport"
|
||||||
|
serviceImplementation="org.jetbrains.kotlin.idea.findUsages.KotlinFindUsagesSupportFirImpl"/>
|
||||||
|
|
||||||
<lang.findUsagesProvider language="kotlin" implementationClass="org.jetbrains.kotlin.idea.findUsages.KotlinFindUsagesProviderBase"/>
|
<lang.findUsagesProvider language="kotlin" implementationClass="org.jetbrains.kotlin.idea.findUsages.KotlinFindUsagesProviderBase"/>
|
||||||
|
|
||||||
|
<gotoDeclarationHandler implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinImportAliasGotoDeclarationHandler"/>
|
||||||
|
<referencesSearch implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearcher"/>
|
||||||
|
<referencesSearch implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinAliasedImportedElementSearcher"/>
|
||||||
|
<!-- <directClassInheritorsSearch implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinDirectInheritorsSearcher"/>-->
|
||||||
|
<!-- <overridingMethodsSearch implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinOverridingMethodsWithGenericsSearcher"/>-->
|
||||||
|
<!-- <definitionsScopedSearch implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinDefinitionsSearcher"/>-->
|
||||||
|
<!-- <annotatedElementsSearch implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinAnnotatedElementsSearcher"/>-->
|
||||||
|
<!-- <classesWithAnnotatedMembersSearch implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinClassesWithAnnotatedMembersSearcher"/>-->
|
||||||
|
<!-- <methodReferencesSearch implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinPropertyAccessorsReferenceSearcher"/>-->
|
||||||
|
<!-- <methodReferencesSearch implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinConstructorDelegationCallReferenceSearcher"/>-->
|
||||||
|
<!-- <methodReferencesSearch implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinOverridingMethodReferenceSearcher"/>-->
|
||||||
|
<!-- <methodReferencesSearch implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinConventionMethodReferencesSearcher"/>-->
|
||||||
|
<!-- <methodReferencesSearch implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.DefaultAnnotationMethodKotlinImplicitReferenceSearcher"/>-->
|
||||||
|
|
||||||
|
<readWriteAccessDetector implementation="org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReadWriteAccessDetector" id="kotlin"/>
|
||||||
|
|
||||||
|
|
||||||
<fileType name="Kotlin"
|
<fileType name="Kotlin"
|
||||||
implementationClass="org.jetbrains.kotlin.idea.KotlinFileType"
|
implementationClass="org.jetbrains.kotlin.idea.KotlinFileType"
|
||||||
fieldName="INSTANCE"
|
fieldName="INSTANCE"
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class LightClassProviderImpl : LightClassProvider {
|
|||||||
override fun toLightElements(ktElement: KtElement): List<PsiNamedElement> =
|
override fun toLightElements(ktElement: KtElement): List<PsiNamedElement> =
|
||||||
ktElement.toLightElements()
|
ktElement.toLightElements()
|
||||||
|
|
||||||
override fun createKtFakeLightClass(kotlinOrigin: KtClassOrObject): PsiClass =
|
override fun createKtFakeLightClass(kotlinOrigin: KtClassOrObject): PsiClass? =
|
||||||
KtFakeLightClass(kotlinOrigin)
|
KtFakeLightClass(kotlinOrigin)
|
||||||
|
|
||||||
override fun getRepresentativeLightMethod(psiElement: PsiElement): PsiMethod? =
|
override fun getRepresentativeLightMethod(psiElement: PsiElement): PsiMethod? =
|
||||||
|
|||||||
Reference in New Issue
Block a user