aboutsummaryrefslogtreecommitdiffstats
path: root/commands.js
diff options
context:
space:
mode:
authorilya2010-02-26 22:21:45 -0800
committerilya2010-02-26 22:47:26 -0800
commit7c2cb40b4ee49935910c6e0308df55aaf906256f (patch)
treee4e9d1b029b3561d2f44a6206b7407cc24e19be0 /commands.js
parent9286b8f61fe595ab37f8de2bf36d2f2e1d537e15 (diff)
downloadvimium-7c2cb40b4ee49935910c6e0308df55aaf906256f.tar.bz2
Key Mapping - Create an available commands structure and factor out the key registry into commands.js
Diffstat (limited to 'commands.js')
-rw-r--r--commands.js99
1 files changed, 99 insertions, 0 deletions
diff --git a/commands.js b/commands.js
new file mode 100644
index 00000000..a2e53a18
--- /dev/null
+++ b/commands.js
@@ -0,0 +1,99 @@
+var availableCommands = {};
+var keyToCommandRegistry = {};
+
+function addCommand(command, description, isBackgroundCommand) {
+ if (availableCommands[command])
+ {
+ console.log(command, "is already defined! Check commands.js for duplicates.");
+ return;
+ }
+
+ availableCommands[command] = { description: description, isBackgroundCommand: isBackgroundCommand };
+}
+
+function mapKeyToCommand(key, command)
+{
+ if (!availableCommands[command])
+ {
+ console.log(command, "doesn't exist!");
+ return;
+ }
+
+ keyToCommandRegistry[key] = { command: command, isBackgroundCommand: availableCommands[command].isBackgroundCommand };
+}
+
+addCommand('scrollDown', '');
+addCommand('scrollUp', '');
+addCommand('scrollLeft', '');
+addCommand('scrollRight', '');
+addCommand('scrollToTop', '');
+addCommand('scrollToBottom', '');
+addCommand('scrollPageDown', '');
+addCommand('scrollPageUp', '');
+addCommand('scrollFullPageDown', '');
+addCommand('scrollFullPageUp', '');
+addCommand('reload', '');
+addCommand('toggleViewSource', '');
+addCommand('enterInsertMode', '');
+addCommand('goBack', '');
+addCommand('goBack', '');
+addCommand('goForward', '');
+addCommand('goForward', '');
+addCommand('goForward', '');
+addCommand('zoomIn', '');
+addCommand('zoomOut', '');
+addCommand('activateLinkHintsMode', '');
+addCommand('activateLinkHintsModeToOpenInNewTab', '');
+addCommand('enterFindMode', '');
+addCommand('performFind', '');
+addCommand('performBackwardsFind', '');
+addCommand('copyCurrentUrl', '');
+addCommand('nextTab', '', true);
+addCommand('previousTab', '', true);
+addCommand('createTab', '', true);
+addCommand('removeTab', '', true);
+addCommand('restoreTab', '', true);
+
+mapKeyToCommand('j', 'scrollDown');
+mapKeyToCommand('k', 'scrollUp');
+mapKeyToCommand('h', 'scrollLeft');
+mapKeyToCommand('l', 'scrollRight');
+mapKeyToCommand('gg', 'scrollToTop');
+mapKeyToCommand('G', 'scrollToBottom');
+mapKeyToCommand('<c-e>', 'scrollDown');
+mapKeyToCommand('<c-y>', 'scrollUp');
+mapKeyToCommand('<c-d>', 'scrollPageDown');
+mapKeyToCommand('<c-u>', 'scrollPageUp');
+mapKeyToCommand('<c-f>', 'scrollFullPageDown');
+mapKeyToCommand('<c-b>', 'scrollFullPageUp');
+mapKeyToCommand('r', 'reload');
+mapKeyToCommand('gf', 'toggleViewSource');
+
+mapKeyToCommand('i', 'enterInsertMode');
+
+mapKeyToCommand('ba', 'goBack');
+mapKeyToCommand('H', 'goBack');
+mapKeyToCommand('fw', 'goForward');
+mapKeyToCommand('fo', 'goForward');
+mapKeyToCommand('L', 'goForward');
+
+mapKeyToCommand('zi', 'zoomIn');
+mapKeyToCommand('zo', 'zoomOut');
+
+mapKeyToCommand('f', 'activateLinkHintsMode');
+mapKeyToCommand('F', 'activateLinkHintsModeToOpenInNewTab');
+
+mapKeyToCommand('/', 'enterFindMode');
+mapKeyToCommand('n', 'performFind');
+mapKeyToCommand('N', 'performBackwardsFind');
+
+mapKeyToCommand('yy', 'copyCurrentUrl');
+
+mapKeyToCommand('K', 'nextTab');
+mapKeyToCommand('J', 'previousTab');
+mapKeyToCommand('gt', 'nextTab');
+mapKeyToCommand('gT', 'previousTab');
+
+mapKeyToCommand('t', 'createTab');
+mapKeyToCommand('d', 'removeTab');
+mapKeyToCommand('u', 'restoreTab');