mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[inline-completion] IJPL-161906: do not register all the inline completion listeners on backend
(cherry picked from commit 7f45dc74717ce54565a3eb79a07a5a622af17075) IJ-MR-147762 GitOrigin-RevId: b4e71aa97550cc47b8155c8466f09ea654e81673
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ffaf9c1a5c
commit
c6b33c9ec5
@@ -11,5 +11,6 @@
|
||||
<orderEntry type="library" name="kotlin-stdlib" level="project" />
|
||||
<orderEntry type="module" module-name="intellij.platform.ide.impl" />
|
||||
<orderEntry type="module" module-name="intellij.platform.inline.completion" />
|
||||
<orderEntry type="module" module-name="intellij.platform.lang" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -2,6 +2,7 @@
|
||||
package com.intellij.codeInsight.inline.completion.frontend
|
||||
|
||||
import com.intellij.codeInsight.inline.completion.*
|
||||
import com.intellij.codeInsight.inline.completion.frontend.tooltip.onboarding.InlineCompletionOnboardingListener
|
||||
import com.intellij.codeInsight.inline.completion.logs.InlineCompletionUsageTracker.ShownEvents.FinishType
|
||||
import com.intellij.codeInsight.inline.completion.session.InlineCompletionContext
|
||||
import com.intellij.codeInsight.inline.completion.session.InlineCompletionSession
|
||||
@@ -17,6 +18,11 @@ internal class FrontendInlineCompletionHandler(
|
||||
parentDisposable: Disposable
|
||||
) : InlineCompletionHandler(scope, editor, parentDisposable) {
|
||||
|
||||
init {
|
||||
addEventListener(InlineCompletionNoSuggestionsListener(editor))
|
||||
InlineCompletionOnboardingListener.createIfOnboarding(editor)?.let(::addEventListener)
|
||||
}
|
||||
|
||||
override fun startSessionOrNull(request: InlineCompletionRequest, provider: InlineCompletionProvider): InlineCompletionSession? {
|
||||
return sessionManager.createSession(provider, request, parentDisposable, specificId = null)
|
||||
}
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInsight.inline.completion
|
||||
package com.intellij.codeInsight.inline.completion.frontend
|
||||
|
||||
import com.intellij.codeInsight.hint.HintManager
|
||||
import com.intellij.codeInsight.inline.completion.InlineCompletionEvent
|
||||
import com.intellij.codeInsight.inline.completion.InlineCompletionEventAdapter
|
||||
import com.intellij.codeInsight.inline.completion.InlineCompletionEventType
|
||||
import com.intellij.codeInsight.inline.completion.logs.InlineCompletionUsageTracker
|
||||
import com.intellij.codeInsight.inline.completion.session.InlineCompletionSession
|
||||
import com.intellij.lang.LangBundle
|
||||
import com.intellij.openapi.editor.Editor
|
||||
|
||||
private class InlineCompletionNoSuggestionsListener(private val editor: Editor) : InlineCompletionEventAdapter {
|
||||
internal class InlineCompletionNoSuggestionsListener(private val editor: Editor) : InlineCompletionEventAdapter {
|
||||
|
||||
override fun onHide(event: InlineCompletionEventType.Hide) {
|
||||
if (event.finishType == InlineCompletionUsageTracker.ShownEvents.FinishType.EMPTY) {
|
||||
@@ -18,9 +21,3 @@ private class InlineCompletionNoSuggestionsListener(private val editor: Editor)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class InlineCompletionNoSuggestionListenerInstaller : InlineCompletionInstallListener {
|
||||
override fun handlerInstalled(editor: Editor, handler: InlineCompletionHandler) {
|
||||
handler.addEventListener(InlineCompletionNoSuggestionsListener(editor))
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,11 @@
|
||||
// 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.inline.completion.tooltip.onboarding
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInsight.inline.completion.frontend.tooltip.onboarding
|
||||
|
||||
import com.intellij.codeInsight.inline.completion.InlineCompletionEventAdapter
|
||||
import com.intellij.codeInsight.inline.completion.InlineCompletionEventType
|
||||
import com.intellij.codeInsight.inline.completion.session.InlineCompletionSession
|
||||
import com.intellij.codeInsight.inline.completion.tooltip.InlineCompletionTooltip
|
||||
import com.intellij.codeInsight.inline.completion.tooltip.onboarding.InlineCompletionOnboardingComponent
|
||||
import com.intellij.openapi.editor.Editor
|
||||
|
||||
internal class InlineCompletionOnboardingListener private constructor(private val editor: Editor) : InlineCompletionEventAdapter {
|
||||
@@ -15,7 +15,6 @@ import com.intellij.codeInsight.inline.completion.session.InlineCompletionSessio
|
||||
import com.intellij.codeInsight.inline.completion.suggestion.InlineCompletionSuggestion
|
||||
import com.intellij.codeInsight.inline.completion.suggestion.InlineCompletionVariant
|
||||
import com.intellij.codeInsight.inline.completion.suggestion.InlineCompletionVariantsComputer
|
||||
import com.intellij.codeInsight.inline.completion.tooltip.onboarding.InlineCompletionOnboardingListener
|
||||
import com.intellij.codeInsight.inline.completion.utils.SafeInlineCompletionExecutor
|
||||
import com.intellij.codeInsight.lookup.LookupManager
|
||||
import com.intellij.inlinePrompt.isInlinePromptShown
|
||||
@@ -81,7 +80,6 @@ abstract class InlineCompletionHandler @ApiStatus.Internal constructor(
|
||||
|
||||
init {
|
||||
addEventListener(InlineCompletionUsageTracker.Listener()) // todo remove
|
||||
InlineCompletionOnboardingListener.createIfOnboarding(editor)?.let(::addEventListener)
|
||||
|
||||
val logsListener = InlineCompletionLogsListener(editor)
|
||||
addEventListener(logsListener)
|
||||
|
||||
@@ -15,8 +15,10 @@ import com.intellij.ui.scale.JBUIScale
|
||||
import com.intellij.ui.util.preferredHeight
|
||||
import com.intellij.util.application
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
|
||||
internal object InlineCompletionTooltip {
|
||||
@ApiStatus.Internal
|
||||
object InlineCompletionTooltip {
|
||||
private val tooltipKey = Key<Unit>("EDITOR_HAS_INLINE_TOOLTIP")
|
||||
|
||||
@RequiresEdt
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInsight.inline.completion.tooltip.onboarding
|
||||
|
||||
import com.intellij.openapi.components.*
|
||||
|
||||
@@ -1813,8 +1813,6 @@
|
||||
topic="com.intellij.codeInsight.daemon.DaemonCodeAnalyzer$DaemonListener"/>
|
||||
<listener class="com.intellij.codeInsight.inline.completion.InlineCompletionLookupManagerListener"
|
||||
topic="com.intellij.codeInsight.lookup.LookupManagerListener"/>
|
||||
<listener class="com.intellij.codeInsight.inline.completion.InlineCompletionNoSuggestionListenerInstaller"
|
||||
topic="com.intellij.codeInsight.inline.completion.InlineCompletionInstallListener"/>
|
||||
<listener class="com.intellij.codeInsight.inline.completion.TabEnterUsageDetector"
|
||||
topic="com.intellij.codeInsight.lookup.LookupManagerListener"/>
|
||||
<listener class="com.intellij.lang.documentation.ide.impl.DocumentationAutoPopupListener"
|
||||
|
||||
Reference in New Issue
Block a user