[Analysis API] Move KDocReference to kotlin repo.
This commit is contained in:
committed by
Ilya Kirillov
parent
0803ab0d0b
commit
71a30b0c5e
+24
@@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2022 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.analysis.api.descriptors.references
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
||||||
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10ReferenceResolutionHelper
|
||||||
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
|
import org.jetbrains.kotlin.idea.references.KDocReference
|
||||||
|
import org.jetbrains.kotlin.kdoc.psi.impl.KDocName
|
||||||
|
import org.jetbrains.kotlin.psi.KtImportAlias
|
||||||
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
|
|
||||||
|
class Fe10KDocReference(element: KDocName) : KDocReference(element), KtFe10Reference {
|
||||||
|
|
||||||
|
override fun getTargetDescriptors(context: BindingContext): Collection<DeclarationDescriptor> =
|
||||||
|
KtFe10ReferenceResolutionHelper.getInstance().resolveKDocLink(element)
|
||||||
|
|
||||||
|
override fun isReferenceToImportAlias(alias: KtImportAlias): Boolean {
|
||||||
|
return super<KtFe10Reference>.isReferenceToImportAlias(alias)
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
@@ -20,6 +20,7 @@ class KtFe10KotlinReferenceProviderContributor : KotlinReferenceProviderContribu
|
|||||||
registerProvider(factory = ::KtFe10ArrayAccessReference)
|
registerProvider(factory = ::KtFe10ArrayAccessReference)
|
||||||
registerProvider(factory = ::KtFe10ConstructorDelegationReference)
|
registerProvider(factory = ::KtFe10ConstructorDelegationReference)
|
||||||
registerProvider(factory = ::KtFe10CollectionLiteralReference)
|
registerProvider(factory = ::KtFe10CollectionLiteralReference)
|
||||||
|
registerProvider(factory = ::Fe10KDocReference)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+3
@@ -10,6 +10,7 @@ import com.intellij.openapi.project.Project
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
|
import org.jetbrains.kotlin.kdoc.psi.impl.KDocName
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
@@ -34,6 +35,8 @@ interface KtFe10ReferenceResolutionHelper {
|
|||||||
|
|
||||||
fun findPsiDeclarations(declaration: DeclarationDescriptor, project: Project, resolveScope: GlobalSearchScope): Collection<PsiElement>
|
fun findPsiDeclarations(declaration: DeclarationDescriptor, project: Project, resolveScope: GlobalSearchScope): Collection<PsiElement>
|
||||||
|
|
||||||
|
fun resolveKDocLink(element: KDocName): Collection<DeclarationDescriptor>
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun getInstance() = ApplicationManager.getApplication().getService(KtFe10ReferenceResolutionHelper::class.java)
|
fun getInstance() = ApplicationManager.getApplication().getService(KtFe10ReferenceResolutionHelper::class.java)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,8 +17,6 @@ abstract class KDocReference(element: KDocName) : KtMultiReference<KDocName>(ele
|
|||||||
|
|
||||||
override fun resolve(): PsiElement? = multiResolve(false).firstOrNull()?.element
|
override fun resolve(): PsiElement? = multiResolve(false).firstOrNull()?.element
|
||||||
|
|
||||||
abstract override fun handleElementRename(newElementName: String): PsiElement?
|
|
||||||
|
|
||||||
override fun getCanonicalText(): String = element.getNameText()
|
override fun getCanonicalText(): String = element.getNameText()
|
||||||
|
|
||||||
override val resolvesByNames: Collection<Name> get() = listOf(Name.identifier(element.getNameText()))
|
override val resolvesByNames: Collection<Name> get() = listOf(Name.identifier(element.getNameText()))
|
||||||
|
|||||||
Reference in New Issue
Block a user