Skip to content

Commit

Permalink
IJPL-172124 Allow to listen for command search popup events
Browse files Browse the repository at this point in the history
IJ-CR-148020

(cherry picked from commit d1a449823a5c68a5ca82f16c12ccb5d938e70e79)

GitOrigin-RevId: 00b2cb07cb5e385f841ca6410a7893c911a03a4d
  • Loading branch information
KonstantinHudyakov authored and intellij-monorepo-bot committed Nov 26, 2024
1 parent 5b1545a commit f63b9b3
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.plugins.terminal.block.history

import com.intellij.util.messages.Topic
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.plugins.terminal.block.prompt.TerminalPromptModel

@ApiStatus.Internal
interface CommandSearchListener {
fun commandSearchShown(promptModel: TerminalPromptModel) {}

fun commandSearchAborted(promptModel: TerminalPromptModel) {}

companion object {
@Topic.ProjectLevel
val TOPIC: Topic<CommandSearchListener> = Topic(CommandSearchListener::class.java, Topic.BroadcastDirection.NONE)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
package org.jetbrains.plugins.terminal.block.history

import com.intellij.codeInsight.lookup.Lookup
import com.intellij.codeInsight.lookup.LookupEvent
import com.intellij.codeInsight.lookup.LookupListener
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Key
Expand All @@ -20,8 +22,16 @@ internal class CommandSearchPresenter(
val lookup = CommandHistoryUtil.createLookup(project, editor, command, history.asReversed())
lookup.putUserData(IS_COMMAND_SEARCH_LOOKUP_KEY, true)

lookup.addLookupListener(object : LookupListener {
override fun lookupCanceled(event: LookupEvent) {
project.messageBus.syncPublisher(CommandSearchListener.TOPIC).commandSearchAborted(promptModel)
}
})

if (lookup.showLookup()) {
lookup.ensureSelectionVisible(false)

project.messageBus.syncPublisher(CommandSearchListener.TOPIC).commandSearchShown(promptModel)
}
}

Expand Down

0 comments on commit f63b9b3

Please sign in to comment.