diff --git a/.idea/modules.xml b/.idea/modules.xml index 8ef4fbfb9b1a..c652b82e289e 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -699,7 +699,6 @@ - diff --git a/platform/inline-completion/frontend/api-dump.txt b/platform/inline-completion/frontend/api-dump.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/platform/inline-completion/frontend/intellij.platform.inline.completion.frontend.iml b/platform/inline-completion/frontend/intellij.platform.inline.completion.frontend.iml deleted file mode 100644 index 1969f56b236b..000000000000 --- a/platform/inline-completion/frontend/intellij.platform.inline.completion.frontend.iml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/platform/inline-completion/frontend/resources/intellij.platform.inline.completion.frontend.xml b/platform/inline-completion/frontend/resources/intellij.platform.inline.completion.frontend.xml deleted file mode 100644 index 3d3bc5be5c56..000000000000 --- a/platform/inline-completion/frontend/resources/intellij.platform.inline.completion.frontend.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/platform/inline-completion/frontend/src/FrontendInlineCompletionHandlerInitializer.kt b/platform/inline-completion/frontend/src/FrontendInlineCompletionHandlerInitializer.kt deleted file mode 100644 index 64704446afb1..000000000000 --- a/platform/inline-completion/frontend/src/FrontendInlineCompletionHandlerInitializer.kt +++ /dev/null @@ -1,20 +0,0 @@ -// 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 - -import com.intellij.codeInsight.inline.completion.InlineCompletionHandler -import com.intellij.codeInsight.inline.completion.InlineCompletionHandlerInitializer -import com.intellij.codeInsight.inline.completion.InlineCompletionRemDevUtils -import com.intellij.codeWithMe.ClientId -import com.intellij.codeWithMe.ClientId.Companion.isLocal -import com.intellij.openapi.Disposable -import com.intellij.openapi.editor.Editor -import kotlinx.coroutines.CoroutineScope - -internal class FrontendInlineCompletionHandlerInitializer : InlineCompletionHandlerInitializer { - override fun initialize(editor: Editor, scope: CoroutineScope, disposable: Disposable): InlineCompletionHandler? { - if (!ClientId.currentOrNull.isLocal && InlineCompletionRemDevUtils.isRhizomeUsed()) { - return null - } - return FrontendInlineCompletionHandler(scope, editor, disposable) - } -} diff --git a/platform/inline-completion/shared/resources/intellij.platform.inline.completion.xml b/platform/inline-completion/shared/resources/intellij.platform.inline.completion.xml index 642a1b0113a1..39e1e69a31ee 100644 --- a/platform/inline-completion/shared/resources/intellij.platform.inline.completion.xml +++ b/platform/inline-completion/shared/resources/intellij.platform.inline.completion.xml @@ -1,5 +1,10 @@ + + + + dynamic="true"/> \ No newline at end of file diff --git a/platform/inline-completion/frontend/src/FrontendInlineCompletionHandler.kt b/platform/inline-completion/shared/src/InlineCompletionHandlerImpl.kt similarity index 78% rename from platform/inline-completion/frontend/src/FrontendInlineCompletionHandler.kt rename to platform/inline-completion/shared/src/InlineCompletionHandlerImpl.kt index 17a85c9fdfd1..385442f6b168 100644 --- a/platform/inline-completion/frontend/src/FrontendInlineCompletionHandler.kt +++ b/platform/inline-completion/shared/src/InlineCompletionHandlerImpl.kt @@ -1,18 +1,19 @@ // 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 +package com.intellij.codeInsight.inline.completion -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.onboarding.InlineCompletionOnboardingListener import com.intellij.codeInsight.inline.completion.session.InlineCompletionContext +import com.intellij.codeInsight.inline.completion.session.InlineCompletionInvalidationListener import com.intellij.codeInsight.inline.completion.session.InlineCompletionSession import com.intellij.codeInsight.inline.completion.session.InlineCompletionSessionManager import com.intellij.codeInsight.inline.completion.suggestion.InlineCompletionSuggestionUpdateManager import com.intellij.openapi.Disposable import com.intellij.openapi.editor.Editor +import com.intellij.util.EventDispatcher import kotlinx.coroutines.CoroutineScope -internal class FrontendInlineCompletionHandler( +internal class InlineCompletionHandlerImpl( scope: CoroutineScope, editor: Editor, parentDisposable: Disposable @@ -23,6 +24,10 @@ internal class FrontendInlineCompletionHandler( InlineCompletionOnboardingListener.createIfOnboarding(editor)?.let(::addEventListener) } + // Fighting with 'AccessError' of protected method + private val myInvalidationListeners: EventDispatcher + get() = invalidationListeners + override fun startSessionOrNull(request: InlineCompletionRequest, provider: InlineCompletionProvider): InlineCompletionSession? { return sessionManager.createSession(provider, request, parentDisposable, specificId = null) } @@ -41,10 +46,10 @@ internal class FrontendInlineCompletionHandler( // TODO share with backend when (val reason = invalidatedResult?.reason) { is UpdateSessionResult.Invalidated.Reason.Event -> { - invalidationListeners.multicaster.onInvalidatedByEvent(reason.event) + myInvalidationListeners.multicaster.onInvalidatedByEvent(reason.event) } UpdateSessionResult.Invalidated.Reason.UnclassifiedDocumentChange -> { - invalidationListeners.multicaster.onInvalidatedByUnclassifiedDocumentChange() + myInvalidationListeners.multicaster.onInvalidatedByUnclassifiedDocumentChange() } null -> Unit } diff --git a/platform/inline-completion/shared/src/InlineCompletionHandlerInitializerImpl.kt b/platform/inline-completion/shared/src/InlineCompletionHandlerInitializerImpl.kt new file mode 100644 index 000000000000..02a14a5a1892 --- /dev/null +++ b/platform/inline-completion/shared/src/InlineCompletionHandlerInitializerImpl.kt @@ -0,0 +1,12 @@ +// 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 + +import com.intellij.openapi.Disposable +import com.intellij.openapi.editor.Editor +import kotlinx.coroutines.CoroutineScope + +internal class InlineCompletionHandlerInitializerImpl : InlineCompletionHandlerInitializer { + override fun initialize(editor: Editor, scope: CoroutineScope, disposable: Disposable): InlineCompletionHandler { + return InlineCompletionHandlerImpl(scope, editor, disposable) + } +} diff --git a/platform/inline-completion/frontend/src/InlineCompletionNoSuggestionsListener.kt b/platform/inline-completion/shared/src/InlineCompletionNoSuggestionsListener.kt similarity index 77% rename from platform/inline-completion/frontend/src/InlineCompletionNoSuggestionsListener.kt rename to platform/inline-completion/shared/src/InlineCompletionNoSuggestionsListener.kt index a4c192172168..50e78f0abd68 100644 --- a/platform/inline-completion/frontend/src/InlineCompletionNoSuggestionsListener.kt +++ b/platform/inline-completion/shared/src/InlineCompletionNoSuggestionsListener.kt @@ -1,10 +1,7 @@ // 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 +package com.intellij.codeInsight.inline.completion 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 diff --git a/platform/inline-completion/frontend/src/tooltip/onboarding/InlineCompletionOnboardingListener.kt b/platform/inline-completion/shared/src/onboarding/InlineCompletionOnboardingListener.kt similarity index 95% rename from platform/inline-completion/frontend/src/tooltip/onboarding/InlineCompletionOnboardingListener.kt rename to platform/inline-completion/shared/src/onboarding/InlineCompletionOnboardingListener.kt index 2d87392e515f..daa0ec089598 100644 --- a/platform/inline-completion/frontend/src/tooltip/onboarding/InlineCompletionOnboardingListener.kt +++ b/platform/inline-completion/shared/src/onboarding/InlineCompletionOnboardingListener.kt @@ -1,5 +1,5 @@ // 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 +package com.intellij.codeInsight.inline.completion.onboarding import com.intellij.codeInsight.inline.completion.InlineCompletionEventAdapter import com.intellij.codeInsight.inline.completion.InlineCompletionEventType diff --git a/platform/main/intellij.platform.frontend.main/intellij.platform.frontend.main.iml b/platform/main/intellij.platform.frontend.main/intellij.platform.frontend.main.iml index ace4b88d4f66..26b79fefd92c 100644 --- a/platform/main/intellij.platform.frontend.main/intellij.platform.frontend.main.iml +++ b/platform/main/intellij.platform.frontend.main/intellij.platform.frontend.main.iml @@ -8,6 +8,5 @@ - \ No newline at end of file diff --git a/platform/platform-resources/src/META-INF/essential-modules.xml b/platform/platform-resources/src/META-INF/essential-modules.xml index dbaf7ee3071b..718f8917faa1 100644 --- a/platform/platform-resources/src/META-INF/essential-modules.xml +++ b/platform/platform-resources/src/META-INF/essential-modules.xml @@ -24,6 +24,5 @@ - \ No newline at end of file