ContextMenuManager

Description

Provides a registry for commands that you'd like to appear in the context menu.

An instance of this class is always available as the atom.contextMenu global.

Context Menu CSON Format

'atom-workspace': [{label: 'Help', command: 'application:open-documentation'}]
'atom-text-editor': [{
  label: 'History',
  submenu: [
    {label: 'Undo', command:'core:undo'}
    {label: 'Redo', command:'core:redo'}
  ]
}]

In your package's menu .cson file you need to specify it under a context-menu key:

'context-menu':
  'atom-workspace': [{label: 'Help', command: 'application:open-documentation'}]
  ...

The format for use in ContextMenuManager::add is the same minus the context-menu key. See ContextMenuManager::add for more information.

API documentation

All methods

::add(itemsBySelector)

Add context menu items scoped by CSS selectors.

Argument Description
itemsBySelector

An Object whose keys are CSS selectors and whose values are Arrays of item Objects containing the following keys:

label

(Optional) A String containing the menu item's label.

command

(Optional) A String containing the command to invoke on the target of the right click that invoked the context menu.

submenu

(Optional) An Array of additional items.

type

(Optional) If you want to create a separator, provide an item with type: 'separator' and no other keys.

created

(Optional) A Function that is called on the item each time a context menu is created via a right click. You can assign properties to this to dynamically compute the command, label, etc. This method is actually called on a clone of the original item template to prevent state from leaking across context menu deployments. Called with the following argument:

event

The click event that deployed the context menu.

shouldDisplay

(Optional) A Function that is called to determine whether to display this item on a given context menu deployment. Called with the following argument:

event

The click event that deployed the context menu.

Return values
  • Returns a Disposable on which .dispose() can be called to remove the added menu items.