From 47443f24039e76ccb7ab2e10a41e3e968f6bc16c Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Thu, 2 Feb 2023 12:15:36 +0100 Subject: [PATCH] IJPL-97 move backend impl to proper package GitOrigin-RevId: 6afe401f952e804b83262ee849c00b98f6ebb17b --- .../documentation/DocumentationComponent.java | 6 ++-- .../documentation/ide/documentationUtil.kt | 2 +- .../ide/impl/DocumentationBrowser.kt | 4 +-- .../ide/impl/DocumentationManager.kt | 8 ++--- .../ide/impl/DocumentationPage.kt | 4 +-- .../ide/impl/DocumentationTargetHoverInfo.kt | 4 +-- .../impl/DocumentationToolWindowManager.kt | 4 +-- .../ide/impl/SecondaryPopupContext.kt | 6 ++-- .../lang/documentation/ide/impl/links.kt | 2 +- .../lang/documentation/ide/impl/lookup.kt | 6 ++-- .../lang/documentation/ide/impl/popup.kt | 4 +-- .../documentation/ide/impl/quickSearch.kt | 6 ++-- .../ide/ui/DocumentationToolWindowUpdater.kt | 4 +-- .../lang/documentation/impl/targets.kt | 33 +++++++++++++++++++ .../impl/DocumentationRequest.kt | 2 +- .../impl/EmptyDocumentationTarget.kt | 2 +- .../documentation/impl/InternalLinkResult.kt | 2 +- .../documentation/impl/impl.kt | 29 +--------------- .../com/intellij/webSymbols/WebTestUtil.kt | 4 +-- .../documentation/AbstractFirQuickDocTest.kt | 4 +-- 20 files changed, 71 insertions(+), 65 deletions(-) create mode 100644 platform/lang-impl/src/com/intellij/lang/documentation/impl/targets.kt rename platform/lang-impl/src/com/intellij/{lang => platform}/documentation/impl/DocumentationRequest.kt (90%) rename platform/lang-impl/src/com/intellij/{lang => platform}/documentation/impl/EmptyDocumentationTarget.kt (94%) rename platform/lang-impl/src/com/intellij/{lang => platform}/documentation/impl/InternalLinkResult.kt (91%) rename platform/lang-impl/src/com/intellij/{lang => platform}/documentation/impl/impl.kt (84%) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationComponent.java b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationComponent.java index fff15dafaff2..9646eac7a3d0 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationComponent.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationComponent.java @@ -1,4 +1,4 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.codeInsight.documentation; import com.intellij.codeInsight.CodeInsightBundle; @@ -14,8 +14,6 @@ import com.intellij.ide.actions.WindowAction; import com.intellij.lang.documentation.CompositeDocumentationProvider; import com.intellij.lang.documentation.DocumentationProvider; import com.intellij.lang.documentation.ide.DocumentationUtil; -import com.intellij.lang.documentation.impl.DocumentationRequest; -import com.intellij.lang.documentation.impl.ImplKt; import com.intellij.lang.documentation.psi.PsiElementDocumentationTarget; import com.intellij.model.Pointer; import com.intellij.navigation.TargetPresentation; @@ -43,6 +41,8 @@ import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.wm.IdeFocusManager; import com.intellij.openapi.wm.ToolWindowId; import com.intellij.openapi.wm.ToolWindowManager; +import com.intellij.platform.documentation.impl.DocumentationRequest; +import com.intellij.platform.documentation.impl.ImplKt; import com.intellij.pom.Navigatable; import com.intellij.psi.PsiElement; import com.intellij.psi.SmartPointerManager; diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/ide/documentationUtil.kt b/platform/lang-impl/src/com/intellij/lang/documentation/ide/documentationUtil.kt index 98914ff0056f..132e63d5849f 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/ide/documentationUtil.kt +++ b/platform/lang-impl/src/com/intellij/lang/documentation/ide/documentationUtil.kt @@ -5,13 +5,13 @@ package com.intellij.lang.documentation.ide import com.intellij.lang.documentation.ide.impl.DocumentationBrowser import com.intellij.lang.documentation.ide.ui.DocumentationUI -import com.intellij.lang.documentation.impl.DocumentationRequest import com.intellij.model.Pointer import com.intellij.navigation.TargetPresentation import com.intellij.openapi.Disposable import com.intellij.openapi.project.Project import com.intellij.openapi.util.Disposer import com.intellij.platform.documentation.DocumentationTarget +import com.intellij.platform.documentation.impl.DocumentationRequest import com.intellij.util.ui.EDT import org.jetbrains.annotations.ApiStatus.Experimental import javax.swing.JComponent diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationBrowser.kt b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationBrowser.kt index f81befb1080b..160b144643a2 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationBrowser.kt +++ b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationBrowser.kt @@ -5,8 +5,6 @@ package com.intellij.lang.documentation.ide.impl import com.intellij.lang.documentation.ide.DocumentationBrowserFacade import com.intellij.lang.documentation.ide.ui.DocumentationUI import com.intellij.lang.documentation.ide.ui.UISnapshot -import com.intellij.lang.documentation.impl.DocumentationRequest -import com.intellij.lang.documentation.impl.InternalLinkResult import com.intellij.model.Pointer import com.intellij.openapi.Disposable import com.intellij.openapi.application.EDT @@ -15,6 +13,8 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.roots.OrderEntry import com.intellij.openapi.roots.ui.configuration.ProjectSettingsService import com.intellij.platform.documentation.DocumentationTarget +import com.intellij.platform.documentation.impl.DocumentationRequest +import com.intellij.platform.documentation.impl.InternalLinkResult import com.intellij.util.lateinitVal import kotlinx.coroutines.* import kotlinx.coroutines.channels.BufferOverflow diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationManager.kt b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationManager.kt index a8ccf3410adf..8321f0dfbe06 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationManager.kt +++ b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationManager.kt @@ -11,10 +11,6 @@ import com.intellij.codeInsight.lookup.impl.LookupManagerImpl import com.intellij.ide.util.propComponentProperty import com.intellij.lang.documentation.ide.actions.DOCUMENTATION_TARGETS import com.intellij.lang.documentation.ide.ui.toolWindowUI -import com.intellij.lang.documentation.impl.DocumentationRequest -import com.intellij.lang.documentation.impl.InternalResolveLinkResult -import com.intellij.lang.documentation.impl.documentationRequest -import com.intellij.lang.documentation.impl.resolveLink import com.intellij.openapi.Disposable import com.intellij.openapi.actionSystem.CommonDataKeys import com.intellij.openapi.actionSystem.DataContext @@ -27,6 +23,10 @@ import com.intellij.openapi.editor.Editor import com.intellij.openapi.project.Project import com.intellij.openapi.util.Disposer import com.intellij.platform.documentation.DocumentationTarget +import com.intellij.platform.documentation.impl.DocumentationRequest +import com.intellij.platform.documentation.impl.InternalResolveLinkResult +import com.intellij.platform.documentation.impl.documentationRequest +import com.intellij.platform.documentation.impl.resolveLink import com.intellij.ui.popup.AbstractPopup import com.intellij.util.ui.EDT import kotlinx.coroutines.* diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationPage.kt b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationPage.kt index 5490a79457e1..755d565a81e1 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationPage.kt +++ b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationPage.kt @@ -5,12 +5,12 @@ package com.intellij.lang.documentation.ide.impl import com.intellij.lang.documentation.ide.ui.UISnapshot import com.intellij.lang.documentation.ide.ui.UIState -import com.intellij.lang.documentation.impl.DocumentationRequest -import com.intellij.lang.documentation.impl.computeDocumentation import com.intellij.openapi.project.IndexNotReadyException import com.intellij.platform.documentation.ContentUpdater import com.intellij.platform.documentation.DocumentationContentData import com.intellij.platform.documentation.LinkData +import com.intellij.platform.documentation.impl.DocumentationRequest +import com.intellij.platform.documentation.impl.computeDocumentation import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.* diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationTargetHoverInfo.kt b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationTargetHoverInfo.kt index 6d2b9284958b..f8098aba0249 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationTargetHoverInfo.kt +++ b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationTargetHoverInfo.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. @file:Suppress("DEPRECATION") package com.intellij.lang.documentation.ide.impl @@ -10,7 +10,6 @@ import com.intellij.lang.documentation.ide.impl.DocumentationBrowser.Companion.w import com.intellij.lang.documentation.ide.ui.DEFAULT_UI_RESPONSE_TIMEOUT import com.intellij.lang.documentation.ide.ui.DocumentationPopupUI import com.intellij.lang.documentation.ide.ui.DocumentationUI -import com.intellij.lang.documentation.impl.documentationRequest import com.intellij.lang.injection.InjectedLanguageManager import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.EDT @@ -21,6 +20,7 @@ import com.intellij.openapi.editor.PopupBridge import com.intellij.openapi.editor.ex.util.EditorUtil import com.intellij.openapi.progress.runBlockingCancellable import com.intellij.openapi.project.Project +import com.intellij.platform.documentation.impl.documentationRequest import com.intellij.psi.PsiFile import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil import com.intellij.psi.util.PsiUtilBase diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationToolWindowManager.kt b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationToolWindowManager.kt index 40579435d52d..4484dfc33a7a 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationToolWindowManager.kt +++ b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/DocumentationToolWindowManager.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.lang.documentation.ide.impl import com.intellij.codeInsight.documentation.ToggleShowDocsOnHoverAction @@ -11,7 +11,6 @@ import com.intellij.lang.documentation.ide.ui.DocumentationToolWindowUI import com.intellij.lang.documentation.ide.ui.DocumentationUI import com.intellij.lang.documentation.ide.ui.isReusable import com.intellij.lang.documentation.ide.ui.toolWindowUI -import com.intellij.lang.documentation.impl.DocumentationRequest import com.intellij.openapi.Disposable import com.intellij.openapi.actionSystem.ActionManager import com.intellij.openapi.actionSystem.DefaultActionGroup @@ -28,6 +27,7 @@ import com.intellij.openapi.wm.ToolWindow import com.intellij.openapi.wm.ToolWindowAnchor import com.intellij.openapi.wm.ToolWindowManager import com.intellij.openapi.wm.ex.ToolWindowEx +import com.intellij.platform.documentation.impl.DocumentationRequest import com.intellij.ui.content.Content import com.intellij.ui.content.ContentFactory import com.intellij.util.ui.EDT diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/SecondaryPopupContext.kt b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/SecondaryPopupContext.kt index 82c1ab7f47d7..fc06b3657170 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/SecondaryPopupContext.kt +++ b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/SecondaryPopupContext.kt @@ -1,11 +1,11 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.lang.documentation.ide.impl import com.intellij.lang.documentation.ide.ui.DocumentationPopupUI -import com.intellij.lang.documentation.impl.DocumentationRequest -import com.intellij.lang.documentation.impl.EmptyDocumentationTarget import com.intellij.openapi.ui.popup.ComponentPopupBuilder import com.intellij.openapi.util.Disposer +import com.intellij.platform.documentation.impl.DocumentationRequest +import com.intellij.platform.documentation.impl.EmptyDocumentationTarget import com.intellij.ui.popup.AbstractPopup import com.intellij.ui.popup.PopupPositionManager.Position import com.intellij.ui.popup.PopupPositionManager.PositionAdjuster diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/links.kt b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/links.kt index f06bacad9d4e..e3c7aebd530f 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/links.kt +++ b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/links.kt @@ -8,13 +8,13 @@ import com.intellij.codeInsight.documentation.DocumentationManagerProtocol import com.intellij.ide.BrowserUtil import com.intellij.lang.documentation.CompositeDocumentationProvider import com.intellij.lang.documentation.ExternalDocumentationHandler -import com.intellij.lang.documentation.impl.handleLink import com.intellij.lang.documentation.psi.PsiElementDocumentationTarget import com.intellij.model.Pointer import com.intellij.openapi.application.readAction import com.intellij.openapi.project.Project import com.intellij.openapi.roots.OrderEntry import com.intellij.platform.documentation.DocumentationTarget +import com.intellij.platform.documentation.impl.handleLink import com.intellij.psi.PsiManager import com.intellij.util.SlowOperations import com.intellij.util.ui.EDT diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/lookup.kt b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/lookup.kt index f0f4d5035816..b6e417937fc5 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/lookup.kt +++ b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/lookup.kt @@ -1,15 +1,15 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.lang.documentation.ide.impl import com.intellij.codeInsight.lookup.* import com.intellij.codeInsight.lookup.impl.LookupImpl import com.intellij.lang.documentation.ide.IdeDocumentationTargetProvider import com.intellij.lang.documentation.ide.ui.DocumentationPopupUI -import com.intellij.lang.documentation.impl.DocumentationRequest -import com.intellij.lang.documentation.impl.documentationRequest import com.intellij.openapi.application.readAction import com.intellij.openapi.editor.Editor import com.intellij.openapi.util.Disposer +import com.intellij.platform.documentation.impl.DocumentationRequest +import com.intellij.platform.documentation.impl.documentationRequest import com.intellij.psi.util.PsiUtilBase import com.intellij.ui.popup.AbstractPopup import com.intellij.util.ui.EDT diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/popup.kt b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/popup.kt index f1787eb63f3d..89e14de2b8bb 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/popup.kt +++ b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/popup.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.lang.documentation.ide.impl import com.intellij.codeWithMe.ClientId @@ -6,10 +6,10 @@ import com.intellij.lang.documentation.ide.impl.DocumentationBrowser.Companion.w import com.intellij.lang.documentation.ide.ui.DEFAULT_UI_RESPONSE_TIMEOUT import com.intellij.lang.documentation.ide.ui.DocumentationPopupUI import com.intellij.lang.documentation.ide.ui.DocumentationUI -import com.intellij.lang.documentation.impl.DocumentationRequest import com.intellij.openapi.project.Project import com.intellij.openapi.ui.popup.JBPopupFactory import com.intellij.openapi.util.Disposer +import com.intellij.platform.documentation.impl.DocumentationRequest import com.intellij.ui.popup.AbstractPopup import com.intellij.util.ui.EDT import kotlinx.coroutines.CancellationException diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/quickSearch.kt b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/quickSearch.kt index 01c8030104d9..32f58989f008 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/quickSearch.kt +++ b/platform/lang-impl/src/com/intellij/lang/documentation/ide/impl/quickSearch.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. @file:Suppress("TestOnlyProblems") // KTIJ-19938 package com.intellij.lang.documentation.ide.impl @@ -7,14 +7,14 @@ import com.intellij.ide.DataManager import com.intellij.ide.actions.searcheverywhere.PSIPresentationBgRendererWrapper import com.intellij.ide.util.gotoByName.QuickSearchComponent import com.intellij.lang.documentation.ide.ui.DocumentationPopupUI -import com.intellij.lang.documentation.impl.DocumentationRequest -import com.intellij.lang.documentation.impl.documentationRequest import com.intellij.lang.documentation.psi.PsiElementDocumentationTarget import com.intellij.openapi.application.readAction import com.intellij.openapi.project.Project import com.intellij.openapi.ui.popup.ComponentPopupBuilder import com.intellij.openapi.util.Disposer import com.intellij.openapi.wm.ex.WindowManagerEx +import com.intellij.platform.documentation.impl.DocumentationRequest +import com.intellij.platform.documentation.impl.documentationRequest import com.intellij.ui.ComponentUtil import com.intellij.ui.popup.AbstractPopup import com.intellij.ui.popup.HintUpdateSupply diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/ide/ui/DocumentationToolWindowUpdater.kt b/platform/lang-impl/src/com/intellij/lang/documentation/ide/ui/DocumentationToolWindowUpdater.kt index 36321fe3fe1d..abbb46ee1275 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/ide/ui/DocumentationToolWindowUpdater.kt +++ b/platform/lang-impl/src/com/intellij/lang/documentation/ide/ui/DocumentationToolWindowUpdater.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.lang.documentation.ide.ui @@ -6,7 +6,6 @@ import com.intellij.ide.DataManager import com.intellij.ide.IdeEventQueue import com.intellij.lang.documentation.ide.actions.DOCUMENTATION_TARGETS import com.intellij.lang.documentation.ide.impl.DocumentationBrowser -import com.intellij.lang.documentation.impl.documentationRequest import com.intellij.openapi.Disposable import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.CommonDataKeys @@ -17,6 +16,7 @@ import com.intellij.openapi.application.readAction import com.intellij.openapi.project.Project import com.intellij.openapi.util.Disposer import com.intellij.openapi.wm.IdeFocusManager +import com.intellij.platform.documentation.impl.documentationRequest import com.intellij.util.ui.EDT import com.intellij.util.ui.update.Activatable import kotlinx.coroutines.* diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/impl/targets.kt b/platform/lang-impl/src/com/intellij/lang/documentation/impl/targets.kt new file mode 100644 index 000000000000..fa27d7577ebc --- /dev/null +++ b/platform/lang-impl/src/com/intellij/lang/documentation/impl/targets.kt @@ -0,0 +1,33 @@ +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.lang.documentation.impl + +import com.intellij.codeInsight.documentation.DocumentationManager +import com.intellij.lang.documentation.psi.psiDocumentationTarget +import com.intellij.model.psi.impl.mockEditor +import com.intellij.openapi.util.component1 +import com.intellij.openapi.util.component2 +import com.intellij.platform.documentation.DocumentationTarget +import com.intellij.platform.documentation.DocumentationTargetProvider +import com.intellij.psi.PsiFile +import com.intellij.util.SmartList +import org.jetbrains.annotations.ApiStatus.Internal + +@Internal // for Fleet +fun documentationTargets(file: PsiFile, offset: Int): List { + val targets = SmartList() + for (ext in DocumentationTargetProvider.EP_NAME.extensionList) { + targets.addAll(ext.documentationTargets(file, offset)) + } + if (!targets.isEmpty()) { + return targets + } + // fallback to PSI + // TODO this fallback should be implemented inside DefaultTargetSymbolDocumentationTargetProvider, but first: + // - PsiSymbol has to hold information about origin element; + // - documentation target by argument list should be also implemented separately. + val editor = mockEditor(file) ?: return emptyList() + val documentationManager = DocumentationManager.getInstance(file.project) + val (targetElement, sourceElement) = documentationManager.findTargetElementAndContext(editor, offset, file) + ?: return emptyList() + return listOf(psiDocumentationTarget(targetElement, sourceElement)) +} diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/impl/DocumentationRequest.kt b/platform/lang-impl/src/com/intellij/platform/documentation/impl/DocumentationRequest.kt similarity index 90% rename from platform/lang-impl/src/com/intellij/lang/documentation/impl/DocumentationRequest.kt rename to platform/lang-impl/src/com/intellij/platform/documentation/impl/DocumentationRequest.kt index fab93382fd35..447e0a878da3 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/impl/DocumentationRequest.kt +++ b/platform/lang-impl/src/com/intellij/platform/documentation/impl/DocumentationRequest.kt @@ -1,5 +1,5 @@ // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.lang.documentation.impl +package com.intellij.platform.documentation.impl import com.intellij.model.Pointer import com.intellij.navigation.TargetPresentation diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/impl/EmptyDocumentationTarget.kt b/platform/lang-impl/src/com/intellij/platform/documentation/impl/EmptyDocumentationTarget.kt similarity index 94% rename from platform/lang-impl/src/com/intellij/lang/documentation/impl/EmptyDocumentationTarget.kt rename to platform/lang-impl/src/com/intellij/platform/documentation/impl/EmptyDocumentationTarget.kt index 0c8754f743e9..e9bb261bb678 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/impl/EmptyDocumentationTarget.kt +++ b/platform/lang-impl/src/com/intellij/platform/documentation/impl/EmptyDocumentationTarget.kt @@ -1,5 +1,5 @@ // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.lang.documentation.impl +package com.intellij.platform.documentation.impl import com.intellij.model.Pointer import com.intellij.navigation.TargetPresentation diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/impl/InternalLinkResult.kt b/platform/lang-impl/src/com/intellij/platform/documentation/impl/InternalLinkResult.kt similarity index 91% rename from platform/lang-impl/src/com/intellij/lang/documentation/impl/InternalLinkResult.kt rename to platform/lang-impl/src/com/intellij/platform/documentation/impl/InternalLinkResult.kt index d2d03ce1b7d1..42b8842cb2da 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/impl/InternalLinkResult.kt +++ b/platform/lang-impl/src/com/intellij/platform/documentation/impl/InternalLinkResult.kt @@ -1,5 +1,5 @@ // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.lang.documentation.impl +package com.intellij.platform.documentation.impl import com.intellij.platform.documentation.ContentUpdater import org.jetbrains.annotations.ApiStatus diff --git a/platform/lang-impl/src/com/intellij/lang/documentation/impl/impl.kt b/platform/lang-impl/src/com/intellij/platform/documentation/impl/impl.kt similarity index 84% rename from platform/lang-impl/src/com/intellij/lang/documentation/impl/impl.kt rename to platform/lang-impl/src/com/intellij/platform/documentation/impl/impl.kt index 8d91f3baefc4..c4082157d7eb 100644 --- a/platform/lang-impl/src/com/intellij/lang/documentation/impl/impl.kt +++ b/platform/lang-impl/src/com/intellij/platform/documentation/impl/impl.kt @@ -1,45 +1,18 @@ // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. @file:Suppress("TestOnlyProblems") // KTIJ-19938 -package com.intellij.lang.documentation.impl +package com.intellij.platform.documentation.impl -import com.intellij.codeInsight.documentation.DocumentationManager -import com.intellij.lang.documentation.psi.psiDocumentationTarget import com.intellij.model.Pointer -import com.intellij.model.psi.impl.mockEditor import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.readAction import com.intellij.openapi.progress.ProgressManager -import com.intellij.openapi.util.component1 -import com.intellij.openapi.util.component2 import com.intellij.platform.documentation.* -import com.intellij.psi.PsiFile import com.intellij.util.AsyncSupplier -import com.intellij.util.SmartList import kotlinx.coroutines.* import org.jetbrains.annotations.ApiStatus.Internal import org.jetbrains.annotations.TestOnly -@Internal // for Fleet -fun documentationTargets(file: PsiFile, offset: Int): List { - val targets = SmartList() - for (ext in DocumentationTargetProvider.EP_NAME.extensionList) { - targets.addAll(ext.documentationTargets(file, offset)) - } - if (!targets.isEmpty()) { - return targets - } - // fallback to PSI - // TODO this fallback should be implemented inside DefaultTargetSymbolDocumentationTargetProvider, but first: - // - PsiSymbol has to hold information about origin element; - // - documentation target by argument list should be also implemented separately. - val editor = mockEditor(file) ?: return emptyList() - val documentationManager = DocumentationManager.getInstance(file.project) - val (targetElement, sourceElement) = documentationManager.findTargetElementAndContext(editor, offset, file) - ?: return emptyList() - return listOf(psiDocumentationTarget(targetElement, sourceElement)) -} - internal fun DocumentationTarget.documentationRequest(): DocumentationRequest { ApplicationManager.getApplication().assertReadAccessAllowed() return DocumentationRequest(createPointer(), presentation()) diff --git a/platform/webSymbols/testSrc/com/intellij/webSymbols/WebTestUtil.kt b/platform/webSymbols/testSrc/com/intellij/webSymbols/WebTestUtil.kt index 3a35fec75d4e..6161f9be7b27 100644 --- a/platform/webSymbols/testSrc/com/intellij/webSymbols/WebTestUtil.kt +++ b/platform/webSymbols/testSrc/com/intellij/webSymbols/WebTestUtil.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. @file:JvmName("WebTestUtil") package com.intellij.webSymbols @@ -14,7 +14,6 @@ import com.intellij.find.usages.impl.buildUsageViewQuery import com.intellij.injected.editor.DocumentWindow import com.intellij.injected.editor.EditorWindow import com.intellij.lang.documentation.ide.IdeDocumentationTargetProvider -import com.intellij.lang.documentation.impl.computeDocumentationBlocking import com.intellij.lang.injection.InjectedLanguageManager import com.intellij.model.psi.PsiSymbolReference import com.intellij.model.psi.impl.referencesAt @@ -24,6 +23,7 @@ import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.fileEditor.FileEditorManager import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.registry.Registry +import com.intellij.platform.documentation.impl.computeDocumentationBlocking import com.intellij.psi.PsiDocumentManager import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile diff --git a/plugins/kotlin/fir/test/org/jetbrains/kotlin/idea/fir/documentation/AbstractFirQuickDocTest.kt b/plugins/kotlin/fir/test/org/jetbrains/kotlin/idea/fir/documentation/AbstractFirQuickDocTest.kt index bd28f88b60f5..8e337719ac04 100644 --- a/plugins/kotlin/fir/test/org/jetbrains/kotlin/idea/fir/documentation/AbstractFirQuickDocTest.kt +++ b/plugins/kotlin/fir/test/org/jetbrains/kotlin/idea/fir/documentation/AbstractFirQuickDocTest.kt @@ -1,8 +1,8 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.kotlin.idea.fir.documentation import com.intellij.lang.documentation.ide.IdeDocumentationTargetProvider -import com.intellij.lang.documentation.impl.computeDocumentationBlocking +import com.intellij.platform.documentation.impl.computeDocumentationBlocking import org.jetbrains.annotations.Nls import org.jetbrains.kotlin.idea.editor.quickDoc.AbstractQuickDocProviderTest