diff --git a/idea/idea-fir/src/org/jetbrains/kotlin/idea/asJava/LightClassProviderFirImpl.kt b/idea/idea-fir/src/org/jetbrains/kotlin/idea/asJava/LightClassProviderFirImpl.kt new file mode 100644 index 00000000000..be1491eb978 --- /dev/null +++ b/idea/idea-fir/src/org/jetbrains/kotlin/idea/asJava/LightClassProviderFirImpl.kt @@ -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 { + return emptyList() + } + + override fun getLightClassParameterDeclarations(parameter: KtParameter): List { + return emptyList() + } + + override fun getLightClassPropertyDeclarations(property: KtProperty): List { + return emptyList() + } + + override fun toLightClassWithBuiltinMapping(classOrObject: KtClassOrObject): PsiClass? { + return null + } + + override fun toLightMethods(psiElement: PsiElement): List { + return emptyList() + } + + override fun toLightClass(classOrObject: KtClassOrObject): KtLightClass? { + return null + } + + override fun toLightElements(ktElement: KtElement): List { + 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 + } +} \ No newline at end of file diff --git a/idea/idea-fir/src/org/jetbrains/kotlin/idea/findUsages/KotlinFindUsagesSupportFirImpl.kt b/idea/idea-fir/src/org/jetbrains/kotlin/idea/findUsages/KotlinFindUsagesSupportFirImpl.kt new file mode 100644 index 00000000000..67573259170 --- /dev/null +++ b/idea/idea-fir/src/org/jetbrains/kotlin/idea/findUsages/KotlinFindUsagesSupportFirImpl.kt @@ -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 { + 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?, actionString: String): List { + return listOf(declaration) + } + + override fun sourcesAndLibraries(delegate: GlobalSearchScope, project: Project): GlobalSearchScope { + return delegate + } +} \ No newline at end of file diff --git a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/asJava/LightClassProvider.kt b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/asJava/LightClassProvider.kt index d86a24aac4a..f1df1d0c9a6 100644 --- a/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/asJava/LightClassProvider.kt +++ b/idea/idea-frontend-independent/src/org/jetbrains/kotlin/idea/asJava/LightClassProvider.kt @@ -38,7 +38,7 @@ interface LightClassProvider { fun toLightElements(ktElement: KtElement): List - fun createKtFakeLightClass(kotlinOrigin: KtClassOrObject): PsiClass + fun createKtFakeLightClass(kotlinOrigin: KtClassOrObject): PsiClass? fun getRepresentativeLightMethod(psiElement: PsiElement): PsiMethod? diff --git a/idea/resources-fir/META-INF/plugin.xml b/idea/resources-fir/META-INF/plugin.xml index e3c0b55c43d..1b97eaafc75 100644 --- a/idea/resources-fir/META-INF/plugin.xml +++ b/idea/resources-fir/META-INF/plugin.xml @@ -97,6 +97,9 @@ The Kotlin FIR plugin provides language support in IntelliJ IDEA and Android Stu + + + + + + + + + + + + + + + + + + + + = ktElement.toLightElements() - override fun createKtFakeLightClass(kotlinOrigin: KtClassOrObject): PsiClass = + override fun createKtFakeLightClass(kotlinOrigin: KtClassOrObject): PsiClass? = KtFakeLightClass(kotlinOrigin) override fun getRepresentativeLightMethod(psiElement: PsiElement): PsiMethod? =