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)) }