IJPL-97 move backend impl to proper package

GitOrigin-RevId: 6afe401f952e804b83262ee849c00b98f6ebb17b
This commit is contained in:
Daniil Ovchinnikov
2023-02-03 00:01:58 +00:00
committed by intellij-monorepo-bot
parent 106949ae9e
commit 47443f2403
20 changed files with 71 additions and 65 deletions
@@ -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;
@@ -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
@@ -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
@@ -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.*
@@ -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.*
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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.*
@@ -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<DocumentationTarget> {
val targets = SmartList<DocumentationTarget>()
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))
}
@@ -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
@@ -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
@@ -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
@@ -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<DocumentationTarget> {
val targets = SmartList<DocumentationTarget>()
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())
@@ -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
@@ -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