Keyboard shortcut settings

This commit is contained in:
benweet 2013-09-29 23:28:59 +01:00
parent 82581cfd36
commit 8ef1e6ae3b
2 changed files with 255 additions and 118 deletions

View File

@ -42,18 +42,6 @@ function bindKey(win, mac) {
} }
exports.commands = [{ exports.commands = [{
name: "selectall",
bindKey: bindKey("Ctrl-A", "Command-A"),
exec: function(editor) { editor.selectAll(); },
readOnly: true
}, {
name: "find",
bindKey: bindKey("Ctrl-F", "Command-F"),
exec: function(editor) {
config.loadModule("ace/ext/searchbox", function(e) {e.Search(editor)});
},
readOnly: true
}, {
name: "overwrite", name: "overwrite",
bindKey: "Insert", bindKey: "Insert",
exec: function(editor) { editor.toggleOverwrite(); }, exec: function(editor) { editor.toggleOverwrite(); },
@ -78,7 +66,7 @@ exports.commands = [{
readOnly: true readOnly: true
}, { }, {
name: "golineup", name: "golineup",
bindKey: bindKey("Up", "Up|Ctrl-P"), bindKey: bindKey("Up", "Up"),
exec: function(editor, args) { editor.navigateUp(args.times); }, exec: function(editor, args) { editor.navigateUp(args.times); },
multiSelectAction: "forEach", multiSelectAction: "forEach",
readOnly: true readOnly: true
@ -102,7 +90,7 @@ exports.commands = [{
readOnly: true readOnly: true
}, { }, {
name: "golinedown", name: "golinedown",
bindKey: bindKey("Down", "Down|Ctrl-N"), bindKey: bindKey("Down", "Down"),
exec: function(editor, args) { editor.navigateDown(args.times); }, exec: function(editor, args) { editor.navigateDown(args.times); },
multiSelectAction: "forEach", multiSelectAction: "forEach",
readOnly: true readOnly: true
@ -126,7 +114,7 @@ exports.commands = [{
readOnly: true readOnly: true
}, { }, {
name: "gotolinestart", name: "gotolinestart",
bindKey: bindKey("Alt-Left|Home", "Command-Left|Home|Ctrl-A"), bindKey: bindKey("Alt-Left|Home", "Command-Left|Home"),
exec: function(editor) { editor.navigateLineStart(); }, exec: function(editor) { editor.navigateLineStart(); },
multiSelectAction: "forEach", multiSelectAction: "forEach",
readOnly: true readOnly: true
@ -138,7 +126,7 @@ exports.commands = [{
readOnly: true readOnly: true
}, { }, {
name: "gotoleft", name: "gotoleft",
bindKey: bindKey("Left", "Left|Ctrl-B"), bindKey: bindKey("Left", "Left"),
exec: function(editor, args) { editor.navigateLeft(args.times); }, exec: function(editor, args) { editor.navigateLeft(args.times); },
multiSelectAction: "forEach", multiSelectAction: "forEach",
readOnly: true readOnly: true
@ -162,7 +150,7 @@ exports.commands = [{
readOnly: true readOnly: true
}, { }, {
name: "gotolineend", name: "gotolineend",
bindKey: bindKey("Alt-Right|End", "Command-Right|End|Ctrl-E"), bindKey: bindKey("Alt-Right|End", "Command-Right|End"),
exec: function(editor) { editor.navigateLineEnd(); }, exec: function(editor) { editor.navigateLineEnd(); },
multiSelectAction: "forEach", multiSelectAction: "forEach",
readOnly: true readOnly: true
@ -174,7 +162,7 @@ exports.commands = [{
readOnly: true readOnly: true
}, { }, {
name: "gotoright", name: "gotoright",
bindKey: bindKey("Right", "Right|Ctrl-F"), bindKey: bindKey("Right", "Right"),
exec: function(editor, args) { editor.navigateRight(args.times); }, exec: function(editor, args) { editor.navigateRight(args.times); },
multiSelectAction: "forEach", multiSelectAction: "forEach",
readOnly: true readOnly: true
@ -190,7 +178,7 @@ exports.commands = [{
readOnly: true readOnly: true
}, { }, {
name: "gotopagedown", name: "gotopagedown",
bindKey: bindKey("PageDown", "PageDown|Ctrl-V"), bindKey: bindKey("PageDown", "PageDown"),
exec: function(editor) { editor.gotoPageDown(); }, exec: function(editor) { editor.gotoPageDown(); },
readOnly: true readOnly: true
}, { }, {
@ -230,28 +218,6 @@ exports.commands = [{
exec: function(editor) { editor.getSelection().selectLineEnd(); }, exec: function(editor) { editor.getSelection().selectLineEnd(); },
multiSelectAction: "forEach", multiSelectAction: "forEach",
readOnly: true readOnly: true
}, {
name: "togglerecording",
bindKey: bindKey("Ctrl-Alt-E", "Command-Option-E"),
exec: function(editor) { editor.commands.toggleRecording(editor); },
readOnly: true
}, {
name: "replaymacro",
bindKey: bindKey("Ctrl-Shift-E", "Command-Shift-E"),
exec: function(editor) { editor.commands.replay(editor); },
readOnly: true
}, {
name: "jumptomatching",
bindKey: bindKey("Ctrl-P", "Ctrl-Shift-P"),
exec: function(editor) { editor.jumpToMatching(); },
multiSelectAction: "forEach",
readOnly: true
}, {
name: "selecttomatching",
bindKey: bindKey("Ctrl-Shift-P", null),
exec: function(editor) { editor.jumpToMatching(true); },
multiSelectAction: "forEach",
readOnly: true
}, },
// commands disabled in readOnly mode // commands disabled in readOnly mode
@ -267,47 +233,6 @@ exports.commands = [{
} }
}, },
multiSelectAction: "forEach" multiSelectAction: "forEach"
}, {
name: "removeline",
bindKey: bindKey("Ctrl-D", "Command-D"),
exec: function(editor) { editor.removeLines(); },
multiSelectAction: "forEachLine"
}, {
name: "duplicateSelection",
bindKey: bindKey("Ctrl-Shift-D", "Command-Shift-D"),
exec: function(editor) { editor.duplicateSelection(); },
multiSelectAction: "forEach"
}, {
name: "sortlines",
bindKey: bindKey("Ctrl-Alt-S", "Command-Alt-S"),
exec: function(editor) { editor.sortLines(); },
multiSelectAction: "forEachLine"
}, {
name: "togglecomment",
bindKey: bindKey("Ctrl-/", "Command-/"),
exec: function(editor) { editor.toggleCommentLines(); },
multiSelectAction: "forEachLine"
}, {
name: "toggleBlockComment",
bindKey: bindKey("Ctrl-Shift-/", "Command-Shift-/"),
exec: function(editor) { editor.toggleBlockComment(); },
multiSelectAction: "forEach"
}, {
name: "modifyNumberUp",
bindKey: bindKey("Ctrl-Shift-Up", "Alt-Shift-Up"),
exec: function(editor) { editor.modifyNumber(1); },
multiSelectAction: "forEach"
}, {
name: "modifyNumberDown",
bindKey: bindKey("Ctrl-Shift-Down", "Alt-Shift-Down"),
exec: function(editor) { editor.modifyNumber(-1); },
multiSelectAction: "forEach"
}, {
name: "replace",
bindKey: bindKey("Ctrl-H", "Command-Option-F"),
exec: function(editor) {
config.loadModule("ace/ext/searchbox", function(e) {e.Search(editor, true)});
}
}, { }, {
name: "undo", name: "undo",
bindKey: bindKey("Ctrl-Z", "Command-Z"), bindKey: bindKey("Ctrl-Z", "Command-Z"),
@ -316,22 +241,6 @@ exports.commands = [{
name: "redo", name: "redo",
bindKey: bindKey("Ctrl-Shift-Z|Ctrl-Y", "Command-Shift-Z|Command-Y"), bindKey: bindKey("Ctrl-Shift-Z|Ctrl-Y", "Command-Shift-Z|Command-Y"),
exec: function(editor) { editor.redo(); } exec: function(editor) { editor.redo(); }
}, {
name: "copylinesup",
bindKey: bindKey("Alt-Shift-Up", "Command-Option-Up"),
exec: function(editor) { editor.copyLinesUp(); }
}, {
name: "movelinesup",
bindKey: bindKey("Alt-Up", "Option-Up"),
exec: function(editor) { editor.moveLinesUp(); }
}, {
name: "copylinesdown",
bindKey: bindKey("Alt-Shift-Down", "Command-Option-Down"),
exec: function(editor) { editor.copyLinesDown(); }
}, {
name: "movelinesdown",
bindKey: bindKey("Alt-Down", "Option-Down"),
exec: function(editor) { editor.moveLinesDown(); }
}, { }, {
name: "del", name: "del",
bindKey: bindKey("Delete", "Delete|Ctrl-D"), bindKey: bindKey("Delete", "Delete|Ctrl-D"),
@ -385,26 +294,6 @@ exports.commands = [{
editor.insert(lang.stringRepeat(args.text || "", args.times || 1)); editor.insert(lang.stringRepeat(args.text || "", args.times || 1));
}, },
multiSelectAction: "forEach" multiSelectAction: "forEach"
}, {
name: "splitline",
bindKey: bindKey(null, "Ctrl-O"),
exec: function(editor) { editor.splitLine(); },
multiSelectAction: "forEach"
}, {
name: "transposeletters",
bindKey: bindKey("Ctrl-T", "Ctrl-T"),
exec: function(editor) { editor.transposeLetters(); },
multiSelectAction: function(editor) {editor.transposeSelections(1); }
}, {
name: "touppercase",
bindKey: bindKey("Ctrl-U", "Ctrl-U"),
exec: function(editor) { editor.toUpperCase(); },
multiSelectAction: "forEach"
}, {
name: "tolowercase",
bindKey: bindKey("Ctrl-Shift-U", "Ctrl-Shift-U"),
exec: function(editor) { editor.toLowerCase(); },
multiSelectAction: "forEach"
}]; }];
}); });

248
res/shortcutMgr.js Normal file
View File

@ -0,0 +1,248 @@
define([
"underscore",
"eventMgr",
"settings",
], function(_, eventMgr, settings) {
var shortcutMgr = {};
var shortcuts = {
'bold': {
title: 'Strong',
defaults: {
win: 'Ctrl-B',
mac: 'Command-B|Ctrl-B',
},
isPageDown: true
},
'italic': {
title: 'Emphasis',
defaults: {
win: 'Ctrl-I',
mac: 'Command-I|Ctrl-I',
},
isPageDown: true
},
'link': {
title: 'Hyperlink',
defaults: {
win: 'Ctrl-L',
mac: 'Command-L|Ctrl-L',
},
isPageDown: true
},
'quote': {
title: 'Blockquote',
defaults: {
win: 'Ctrl-Q',
mac: 'Command-Q|Ctrl-Q',
},
isPageDown: true
},
'code': {
title: 'Code Sample',
defaults: {
win: 'Ctrl-K',
mac: 'Command-K|Ctrl-K',
},
isPageDown: true
},
'image': {
title: 'Image',
defaults: {
win: 'Ctrl-G',
mac: 'Command-G|Ctrl-G',
},
isPageDown: true
},
'olist': {
title: 'Numbered List',
defaults: {
win: 'Ctrl-O',
mac: 'Command-O|Ctrl-O',
},
isPageDown: true
},
'ulist': {
title: 'Bulleted List',
defaults: {
win: 'Ctrl-U',
mac: 'Command-U|Ctrl-U',
},
isPageDown: true
},
'heading': {
title: 'Heading',
defaults: {
win: 'Ctrl-H',
mac: 'Command-H|Ctrl-H',
},
isPageDown: true
},
'hr': {
title: 'Horizontal Rule',
defaults: {
win: 'Ctrl-R',
mac: 'Command-R|Ctrl-R',
},
isPageDown: true
},
'undo': {
title: 'Undo',
defaults: {
win: 'Ctrl-Z',
mac: 'Command-Z',
},
exec: function(editor) {
editor.undo();
},
isPageDown: true
},
'redo': {
title: 'Redo',
defaults: {
win: 'Ctrl-Shift-Z|Ctrl-Y',
mac: 'Command-Shift-Z|Command-Y',
},
exec: function(editor) {
editor.redo();
},
isPageDown: true
},
'selectall': {
title: 'Select All',
defaults: {
win: 'Ctrl-A',
mac: 'Command-A',
},
exec: function(editor) {
editor.selectAll();
},
readOnly: true
},
'removeline': {
title: 'Remove Line',
defaults: {
win: 'Ctrl-D',
mac: 'Command-D',
},
exec: function(editor) {
editor.removeLines();
},
multiSelectAction: "forEachLine"
},
'duplicateSelection': {
title: 'Duplicate Selection',
defaults: {
win: 'Ctrl-Shift-D',
mac: 'Command-Shift-D',
},
exec: function(editor) {
editor.duplicateSelection();
},
multiSelectAction: "forEach"
},
'sortlines': {
title: 'Sort Lines',
defaults: {
win: 'Ctrl-Alt-S',
mac: 'Command-Alt-S',
},
exec: function(editor) {
editor.sortLines();
},
multiSelectAction: "forEachLine"
},
'indent': {
title: 'Sort Lines',
defaults: {
win: 'Ctrl-Alt-S',
mac: 'Command-Alt-S',
},
exec: function(editor) {
editor.sortLines();
},
multiSelectAction: "forEachLine"
},
'modifyNumberUp': {
title: 'Number Up',
defaults: {
win: 'Ctrl-Shift-Up',
mac: 'Alt-Shift-Up',
},
exec: function(editor) {
editor.modifyNumber(1);
},
multiSelectAction: "forEach"
},
'modifyNumberDown': {
title: 'Number Down',
defaults: {
win: 'Ctrl-Shift-Down',
mac: 'Alt-Shift-Down',
},
exec: function(editor) {
editor.modifyNumber(-1);
},
multiSelectAction: "forEach"
},
'find': {
title: 'Find',
defaults: {
win: 'Ctrl-F',
mac: 'Command-F',
},
exec: function(editor) {
var config = require("ace/config");
config.loadModule("ace/ext/searchbox", function(e) {
e.Search(editor)
});
},
readOnly: true
},
'replace': {
title: 'Replace',
defaults: {
win: 'Ctrl-Shift-F',
mac: 'Command-Option-F',
},
exec: function(editor) {
var config = require("ace/config");
config.loadModule("ace/ext/searchbox", function(e) {e.Search(editor, true)});
},
readOnly: true
},
'togglerecording': {
title: 'Toggle Recording',
defaults: {
win: 'Ctrl-Alt-E',
mac: 'Command-Option-E',
},
exec: function(editor) {
editor.commands.toggleRecording(editor);
},
readOnly: true
},
'replaymacro': {
title: 'Replay Macro',
defaults: {
win: 'Ctrl-Shift-E',
mac: 'Command-Shift-E',
},
exec: function(editor) {
editor.commands.replay(editor);
},
readOnly: true
},
};
_.each(shortcuts, function(shortcut, key) {
shortcut.values = settings.shortcuts[key] || shortcut.defaults;
});
shortcutMgr.configureAce = function() {
};
return shortcutMgr;
});