From 80e10c6928da4b21d76310156b758490cf96a5a1 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 6 Jul 2016 18:17:11 +0200 Subject: [PATCH] use navigation element to resolve KDoc links, so that we have correct context when resolving links in the documentation of library elements #KT-10654 Fixed --- .../kotlin/idea/KotlinQuickDocumentationProvider.kt | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/KotlinQuickDocumentationProvider.kt b/idea/src/org/jetbrains/kotlin/idea/KotlinQuickDocumentationProvider.kt index b94aec1ced1..94db3f337ce 100644 --- a/idea/src/org/jetbrains/kotlin/idea/KotlinQuickDocumentationProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/KotlinQuickDocumentationProvider.kt @@ -53,13 +53,10 @@ class KotlinQuickDocumentationProvider : AbstractDocumentationProvider() { } override fun getDocumentationElementForLink(psiManager: PsiManager, link: String, context: PsiElement?): PsiElement? { - if (context !is KtElement) { - return null - } - - val bindingContext = context.analyze(BodyResolveMode.PARTIAL) - val contextDescriptor = bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, context] ?: return null - val descriptors = resolveKDocLink(bindingContext, context.getResolutionFacade(), + val navElement = context?.navigationElement as? KtElement ?: return null + val bindingContext = navElement.analyze(BodyResolveMode.PARTIAL) + val contextDescriptor = bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, navElement] ?: return null + val descriptors = resolveKDocLink(bindingContext, navElement.getResolutionFacade(), contextDescriptor, null, StringUtil.split(link, ",")) val target = descriptors.firstOrNull() ?: return null return DescriptorToSourceUtilsIde.getAnyDeclaration(psiManager.project, target)