mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
WEB-65600 Fixed any type in lookup documentation
Only target element (element associated with the completion item) must contribute to lookup documentation GitOrigin-RevId: ae836be7b3cbc66ce45ba6d82ebafb80ebd9cf08
This commit is contained in:
committed by
intellij-monorepo-bot
parent
0345d7d04f
commit
cc168d9f63
+2
-2
@@ -6,7 +6,7 @@ import com.intellij.codeInsight.documentation.DocumentationManager
|
||||
import com.intellij.codeInsight.lookup.LookupElement
|
||||
import com.intellij.lang.documentation.ide.IdeDocumentationTargetProvider
|
||||
import com.intellij.lang.documentation.impl.documentationTargets
|
||||
import com.intellij.lang.documentation.psi.psiDocumentationTargets
|
||||
import com.intellij.lang.documentation.psi.psiLookupElementDocumentationTargets
|
||||
import com.intellij.lang.documentation.symbol.impl.symbolDocumentationTargets
|
||||
import com.intellij.model.Pointer
|
||||
import com.intellij.model.Symbol
|
||||
@@ -29,7 +29,7 @@ open class IdeDocumentationTargetProviderImpl(private val project: Project) : Id
|
||||
val sourceElement = DocumentationManager.getContextElement(editor, file)
|
||||
val targetElement = DocumentationManager.getElementFromLookup(project, editor, file, lookupElement)
|
||||
?: return emptyList()
|
||||
return psiDocumentationTargets(targetElement, sourceElement)
|
||||
return psiLookupElementDocumentationTargets(targetElement, sourceElement)
|
||||
}
|
||||
|
||||
override fun documentationTargets(editor: Editor, file: PsiFile, offset: Int): List<DocumentationTarget> {
|
||||
|
||||
@@ -9,8 +9,22 @@ import com.intellij.psi.PsiElement
|
||||
@JvmField
|
||||
internal val LOG: Logger = Logger.getInstance("#com.intellij.lang.documentation.psi")
|
||||
|
||||
fun psiDocumentationTargets(element: PsiElement, originalElement: PsiElement?): List<DocumentationTarget> {
|
||||
for (ext in PsiDocumentationTargetProvider.EP_NAME.extensionList) {
|
||||
fun psiLookupElementDocumentationTargets(element: PsiElement, originalElement: PsiElement?): List<DocumentationTarget> =
|
||||
psiDocumentationTargetsImpl(
|
||||
element,
|
||||
originalElement,
|
||||
PsiDocumentationTargetProvider.LOOKUP_ELEMENT_EP_NAME.extensionList + PsiDocumentationTargetProvider.EP_NAME.extensionList
|
||||
)
|
||||
|
||||
fun psiDocumentationTargets(element: PsiElement, originalElement: PsiElement?): List<DocumentationTarget> =
|
||||
psiDocumentationTargetsImpl(
|
||||
element,
|
||||
originalElement,
|
||||
PsiDocumentationTargetProvider.EP_NAME.extensionList
|
||||
)
|
||||
|
||||
private fun psiDocumentationTargetsImpl(element: PsiElement, originalElement: PsiElement?, providers: List<PsiDocumentationTargetProvider>): List<DocumentationTarget> {
|
||||
for (ext in providers) {
|
||||
val targets = ext.documentationTargets(element, originalElement)
|
||||
if (targets.isNotEmpty()) return targets
|
||||
}
|
||||
|
||||
+5
@@ -28,6 +28,11 @@ public interface PsiDocumentationTargetProvider {
|
||||
"com.intellij.platform.backend.documentation.psiTargetProvider"
|
||||
);
|
||||
|
||||
@Internal
|
||||
ExtensionPointName<PsiDocumentationTargetProvider> LOOKUP_ELEMENT_EP_NAME = ExtensionPointName.create(
|
||||
"com.intellij.platform.backend.lookupElement.documentation.psiTargetProvider"
|
||||
);
|
||||
|
||||
/**
|
||||
* @return target to handle documentation actions which are invoked on the given {@code element},
|
||||
* or {@code null} if this provider is not aware of the given element
|
||||
|
||||
@@ -671,6 +671,8 @@
|
||||
interface="com.intellij.platform.backend.documentation.SymbolDocumentationTargetProvider"/>
|
||||
<extensionPoint qualifiedName="com.intellij.platform.backend.documentation.psiTargetProvider" dynamic="true"
|
||||
interface="com.intellij.platform.backend.documentation.PsiDocumentationTargetProvider"/>
|
||||
<extensionPoint qualifiedName="com.intellij.platform.backend.lookupElement.documentation.psiTargetProvider" dynamic="true"
|
||||
interface="com.intellij.platform.backend.documentation.PsiDocumentationTargetProvider"/>
|
||||
<extensionPoint qualifiedName="com.intellij.platform.backend.documentation.inlineDocumentationProvider" dynamic="true"
|
||||
interface="com.intellij.platform.backend.documentation.InlineDocumentationProvider"/>
|
||||
<extensionPoint qualifiedName="com.intellij.platform.backend.documentation.linkHandler" dynamic="true"
|
||||
|
||||
Reference in New Issue
Block a user