const editMenu = require('../menus/menus/edit');
const shellMenu = require('../menus/menus/shell');
const {getKeymaps: commands} = require('../config');
const separator = {type: 'separator'};

// only display cut/copy when there's a cursor selection
const filterCutCopy = (selection, menuItem) => {
  if (/^cut$|^copy$/.test(menuItem.role) && !selection) {
    return;
  }
  return menuItem;
};

module.exports = (createWindow, selection) => {
  const _shell = shellMenu(commands, createWindow).submenu;
  const _edit = editMenu(commands).submenu.filter(filterCutCopy.bind(null, selection));
  return _edit.concat(separator, _shell);
};

@@ -104,27 +104,72 @@
 st %7B
-getKeymaps: command
+execCommand%7D = require('../commands');%0Aconst %7BgetDecoratedKeymap
 s%7D =
@@ -185,14 +185,15 @@
 '../
-config
+plugins
 ');%0A
@@ -232,16 +232,214 @@
 tor'%7D;%0A%0A
+const allCommandKeys = getDecoratedKeymaps();%0Aconst commandKeys = Object.keys(allCommandKeys).reduce((result, command) =%3E %7B%0A  result%5Bcommand%5D = allCommandKeys%5Bcommand%5D%5B0%5D;%0A  return result;%0A%7D, %7B%7D);%0A%0A
 // only 
@@ -719,23 +719,25 @@
 mand
-s, createWindow
+Keys, execCommand
 ).su
@@ -775,17 +775,33 @@
 (command
-s
+Keys, execCommand
 ).submen

Fix contextMenu