idea-plugin / arrow.meta.ide.dsl.editor.action / AnActionSyntax / addAnAction


open fun IdeMetaPlugin.addAnAction(actionId: String, action: AnAction): ExtensionPhase

Registers the action with actionId as its identifier. The actionId is solely used internally.

// import com.intellij.openapi.wm.ToolWindowManager
import arrow.meta.ide.resources.ArrowIcons
import arrow.meta.ide.invoke
import arrow.meta.ide.IdePlugin
import arrow.meta.ide.IdeMetaPlugin
import com.intellij.openapi.project.Project
import com.intellij.openapi.actionSystem.AnActionEvent

val IdeMetaPlugin.exampleAction: IdePlugin
get() = "Example Action" {
     actionId = "Unique",
     action = anAction(
      title = "MetaAction",
      actionPerformed = { e: AnActionEvent ->
       // e.project?.let { project: Project -> ToolWindowManager.getInstance(project)?.getToolWindow("MetaToolWindow")?.activate(null) }

MetaAction is registered with the id Unique and opens a tool window with a registered Id MetaToolWindow, assuming this ToolWindowId is registered. User’s are able to search this Action with its title: MetaAction.


actionId - needs to be unique

action - can be composed with various anAction implementations

Do you like Arrow?

Arrow Org