From c6fb9a7efea30dbda96b6a8f2a5318bd087c77a1 Mon Sep 17 00:00:00 2001 From: "Kirill.Karnaukhov" Date: Thu, 24 Oct 2024 19:25:06 +0200 Subject: [PATCH] [inline-completion] IJPL-161906: add docs for `InlineCompletionFilteringEventListener` (cherry picked from commit 0f2733053df1523237ddb17a979f806379bc5973) IJ-MR-147762 GitOrigin-RevId: 11c5a03fafe229b07fd1efa42e04d0536dc18206 --- .../logs/InlineCompletionFilteringEventListener.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/codeInsight/inline/completion/logs/InlineCompletionFilteringEventListener.kt b/platform/platform-impl/src/com/intellij/codeInsight/inline/completion/logs/InlineCompletionFilteringEventListener.kt index cc0f7a4501b2..3280646f2a3c 100644 --- a/platform/platform-impl/src/com/intellij/codeInsight/inline/completion/logs/InlineCompletionFilteringEventListener.kt +++ b/platform/platform-impl/src/com/intellij/codeInsight/inline/completion/logs/InlineCompletionFilteringEventListener.kt @@ -5,13 +5,18 @@ import com.intellij.codeInsight.inline.completion.InlineCompletionEventAdapter import com.intellij.codeInsight.inline.completion.InlineCompletionEventType import java.util.concurrent.atomic.AtomicBoolean +/** + * If a request is applicable corresponding to [isApplicable], then everything works as usual. + * + * If a request is not applicable, the listener doesn't call any methods on all the events connected to the request. + */ internal abstract class InlineCompletionFilteringEventListener : InlineCompletionEventAdapter { private val isApplicable = AtomicBoolean(true) protected abstract fun isApplicable(requestEvent: InlineCompletionEventType.Request): Boolean - override fun on(event: InlineCompletionEventType) { + final override fun on(event: InlineCompletionEventType) { if (event is InlineCompletionEventType.Request) { isApplicable.set(isApplicable(event)) }