ContextMenuManager Extended

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 ::add is the same minus the context-menu key. See ::add for more information.

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.

enabled

optional

A Boolean indicating whether the menu item should be clickable. Disabled menu items typically appear grayed out. Defaults to true.

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.

visible

optional

A Boolean indicating whether the menu item should appear in the menu. Defaults to true.

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.