[Analysis API] Move KDocReference to kotlin repo.

This commit is contained in:
Tianyu Geng
2022-05-05 01:42:36 +00:00
committed by Ilya Kirillov
parent 0803ab0d0b
commit 71a30b0c5e
4 changed files with 28 additions and 2 deletions
@@ -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)
}
}
@@ -20,6 +20,7 @@ class KtFe10KotlinReferenceProviderContributor : KotlinReferenceProviderContribu
registerProvider(factory = ::KtFe10ArrayAccessReference)
registerProvider(factory = ::KtFe10ConstructorDelegationReference)
registerProvider(factory = ::KtFe10CollectionLiteralReference)
registerProvider(factory = ::Fe10KDocReference)
}
}
}
@@ -10,6 +10,7 @@ import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.kdoc.psi.impl.KDocName
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtDeclaration
import org.jetbrains.kotlin.psi.KtElement
@@ -34,6 +35,8 @@ interface KtFe10ReferenceResolutionHelper {
fun findPsiDeclarations(declaration: DeclarationDescriptor, project: Project, resolveScope: GlobalSearchScope): Collection<PsiElement>
fun resolveKDocLink(element: KDocName): Collection<DeclarationDescriptor>
companion object {
fun getInstance() = ApplicationManager.getApplication().getService(KtFe10ReferenceResolutionHelper::class.java)
}