123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409 |
- ace.define("ace/keyboard/sublime",["require","exports","module","ace/keyboard/hash_handler"], function(require, exports, module){"use strict";
- var HashHandler = require("../keyboard/hash_handler").HashHandler;
- function moveBySubWords(editor, direction, extend) {
- var selection = editor.selection;
- var row = selection.lead.row;
- var column = selection.lead.column;
- var line = editor.session.getLine(row);
- if (!line[column + direction]) {
- var method = (extend ? "selectWord" : "moveCursorShortWord")
- + (direction == 1 ? "Right" : "Left");
- return editor.selection[method]();
- }
- if (direction == -1)
- column--;
- while (line[column]) {
- var type = getType(line[column]) + getType(line[column + direction]);
- column += direction;
- if (direction == 1) {
- if (type == "WW" && getType(line[column + 1]) == "w")
- break;
- }
- else {
- if (type == "wW") {
- if (getType(line[column - 1]) == "W") {
- column -= 1;
- break;
- }
- else {
- continue;
- }
- }
- if (type == "Ww")
- break;
- }
- if (/w[s_oW]|_[sWo]|o[s_wW]|s[W]|W[so]/.test(type))
- break;
- }
- if (direction == -1)
- column++;
- if (extend)
- editor.selection.moveCursorTo(row, column);
- else
- editor.selection.moveTo(row, column);
- function getType(x) {
- if (!x)
- return "-";
- if (/\s/.test(x))
- return "s";
- if (x == "_")
- return "_";
- if (x.toUpperCase() == x && x.toLowerCase() != x)
- return "W";
- if (x.toUpperCase() != x && x.toLowerCase() == x)
- return "w";
- return "o";
- }
- }
- exports.handler = new HashHandler();
- exports.handler.addCommands([{
- name: "find_all_under",
- exec: function (editor) {
- if (editor.selection.isEmpty())
- editor.selection.selectWord();
- editor.findAll();
- },
- readOnly: true
- }, {
- name: "find_under",
- exec: function (editor) {
- if (editor.selection.isEmpty())
- editor.selection.selectWord();
- editor.findNext();
- },
- readOnly: true
- }, {
- name: "find_under_prev",
- exec: function (editor) {
- if (editor.selection.isEmpty())
- editor.selection.selectWord();
- editor.findPrevious();
- },
- readOnly: true
- }, {
- name: "find_under_expand",
- exec: function (editor) {
- editor.selectMore(1, false, true);
- },
- scrollIntoView: "animate",
- readOnly: true
- }, {
- name: "find_under_expand_skip",
- exec: function (editor) {
- editor.selectMore(1, true, true);
- },
- scrollIntoView: "animate",
- readOnly: true
- }, {
- name: "delete_to_hard_bol",
- exec: function (editor) {
- var pos = editor.selection.getCursor();
- editor.session.remove({
- start: { row: pos.row, column: 0 },
- end: pos
- });
- },
- multiSelectAction: "forEach",
- scrollIntoView: "cursor"
- }, {
- name: "delete_to_hard_eol",
- exec: function (editor) {
- var pos = editor.selection.getCursor();
- editor.session.remove({
- start: pos,
- end: { row: pos.row, column: Infinity }
- });
- },
- multiSelectAction: "forEach",
- scrollIntoView: "cursor"
- }, {
- name: "moveToWordStartLeft",
- exec: function (editor) {
- editor.selection.moveCursorLongWordLeft();
- editor.clearSelection();
- },
- multiSelectAction: "forEach",
- scrollIntoView: "cursor"
- }, {
- name: "moveToWordEndRight",
- exec: function (editor) {
- editor.selection.moveCursorLongWordRight();
- editor.clearSelection();
- },
- multiSelectAction: "forEach",
- scrollIntoView: "cursor"
- }, {
- name: "selectToWordStartLeft",
- exec: function (editor) {
- var sel = editor.selection;
- sel.$moveSelection(sel.moveCursorLongWordLeft);
- },
- multiSelectAction: "forEach",
- scrollIntoView: "cursor"
- }, {
- name: "selectToWordEndRight",
- exec: function (editor) {
- var sel = editor.selection;
- sel.$moveSelection(sel.moveCursorLongWordRight);
- },
- multiSelectAction: "forEach",
- scrollIntoView: "cursor"
- }, {
- name: "selectSubWordRight",
- exec: function (editor) {
- moveBySubWords(editor, 1, true);
- },
- multiSelectAction: "forEach",
- scrollIntoView: "cursor",
- readOnly: true
- }, {
- name: "selectSubWordLeft",
- exec: function (editor) {
- moveBySubWords(editor, -1, true);
- },
- multiSelectAction: "forEach",
- scrollIntoView: "cursor",
- readOnly: true
- }, {
- name: "moveSubWordRight",
- exec: function (editor) {
- moveBySubWords(editor, 1);
- },
- multiSelectAction: "forEach",
- scrollIntoView: "cursor",
- readOnly: true
- }, {
- name: "moveSubWordLeft",
- exec: function (editor) {
- moveBySubWords(editor, -1);
- },
- multiSelectAction: "forEach",
- scrollIntoView: "cursor",
- readOnly: true
- }]);
- [{
- bindKey: { mac: "cmd-k cmd-backspace|cmd-backspace", win: "ctrl-shift-backspace|ctrl-k ctrl-backspace" },
- name: "removetolinestarthard"
- }, {
- bindKey: { mac: "cmd-k cmd-k|cmd-delete|ctrl-k", win: "ctrl-shift-delete|ctrl-k ctrl-k" },
- name: "removetolineendhard"
- }, {
- bindKey: { mac: "cmd-shift-d", win: "ctrl-shift-d" },
- name: "duplicateSelection"
- }, {
- bindKey: { mac: "cmd-l", win: "ctrl-l" },
- name: "expandtoline"
- },
- {
- bindKey: { mac: "cmd-shift-a", win: "ctrl-shift-a" },
- name: "expandSelection",
- args: { to: "tag" }
- }, {
- bindKey: { mac: "cmd-shift-j", win: "ctrl-shift-j" },
- name: "expandSelection",
- args: { to: "indentation" }
- }, {
- bindKey: { mac: "ctrl-shift-m", win: "ctrl-shift-m" },
- name: "expandSelection",
- args: { to: "brackets" }
- }, {
- bindKey: { mac: "cmd-shift-space", win: "ctrl-shift-space" },
- name: "expandSelection",
- args: { to: "scope" }
- },
- {
- bindKey: { mac: "ctrl-cmd-g", win: "alt-f3" },
- name: "find_all_under"
- }, {
- bindKey: { mac: "alt-cmd-g", win: "ctrl-f3" },
- name: "find_under"
- }, {
- bindKey: { mac: "shift-alt-cmd-g", win: "ctrl-shift-f3" },
- name: "find_under_prev"
- }, {
- bindKey: { mac: "cmd-g", win: "f3" },
- name: "findnext"
- }, {
- bindKey: { mac: "shift-cmd-g", win: "shift-f3" },
- name: "findprevious"
- }, {
- bindKey: { mac: "cmd-d", win: "ctrl-d" },
- name: "find_under_expand"
- }, {
- bindKey: { mac: "cmd-k cmd-d", win: "ctrl-k ctrl-d" },
- name: "find_under_expand_skip"
- },
- {
- bindKey: { mac: "cmd-alt-[", win: "ctrl-shift-[" },
- name: "toggleFoldWidget"
- }, {
- bindKey: { mac: "cmd-alt-]", win: "ctrl-shift-]" },
- name: "unfold"
- }, {
- bindKey: { mac: "cmd-k cmd-0|cmd-k cmd-j", win: "ctrl-k ctrl-0|ctrl-k ctrl-j" },
- name: "unfoldall"
- }, {
- bindKey: { mac: "cmd-k cmd-1", win: "ctrl-k ctrl-1" },
- name: "foldOther",
- args: { level: 1 }
- },
- {
- bindKey: { win: "ctrl-left", mac: "alt-left" },
- name: "moveToWordStartLeft"
- }, {
- bindKey: { win: "ctrl-right", mac: "alt-right" },
- name: "moveToWordEndRight"
- }, {
- bindKey: { win: "ctrl-shift-left", mac: "alt-shift-left" },
- name: "selectToWordStartLeft"
- }, {
- bindKey: { win: "ctrl-shift-right", mac: "alt-shift-right" },
- name: "selectToWordEndRight"
- },
- {
- bindKey: { mac: "ctrl-alt-shift-right|ctrl-shift-right", win: "alt-shift-right" },
- name: "selectSubWordRight"
- }, {
- bindKey: { mac: "ctrl-alt-shift-left|ctrl-shift-left", win: "alt-shift-left" },
- name: "selectSubWordLeft"
- }, {
- bindKey: { mac: "ctrl-alt-right|ctrl-right", win: "alt-right" },
- name: "moveSubWordRight"
- }, {
- bindKey: { mac: "ctrl-alt-left|ctrl-left", win: "alt-left" },
- name: "moveSubWordLeft"
- },
- {
- bindKey: { mac: "ctrl-m", win: "ctrl-m" },
- name: "jumptomatching",
- args: { to: "brackets" }
- },
- {
- bindKey: { mac: "ctrl-f6", win: "ctrl-f6" },
- name: "goToNextError"
- }, {
- bindKey: { mac: "ctrl-shift-f6", win: "ctrl-shift-f6" },
- name: "goToPreviousError"
- },
- {
- bindKey: { mac: "ctrl-o" },
- name: "splitline"
- },
- {
- bindKey: { mac: "ctrl-shift-w", win: "alt-shift-w" },
- name: "surrowndWithTag"
- }, {
- bindKey: { mac: "cmd-alt-.", win: "alt-." },
- name: "close_tag"
- },
- {
- bindKey: { mac: "cmd-j", win: "ctrl-j" },
- name: "joinlines"
- },
- {
- bindKey: { mac: "ctrl--", win: "alt--" },
- name: "jumpBack"
- }, {
- bindKey: { mac: "ctrl-shift--", win: "alt-shift--" },
- name: "jumpForward"
- },
- {
- bindKey: { mac: "cmd-k cmd-l", win: "ctrl-k ctrl-l" },
- name: "tolowercase"
- }, {
- bindKey: { mac: "cmd-k cmd-u", win: "ctrl-k ctrl-u" },
- name: "touppercase"
- },
- {
- bindKey: { mac: "cmd-shift-v", win: "ctrl-shift-v" },
- name: "paste_and_indent"
- }, {
- bindKey: { mac: "cmd-k cmd-v|cmd-alt-v", win: "ctrl-k ctrl-v" },
- name: "paste_from_history"
- },
- {
- bindKey: { mac: "cmd-shift-enter", win: "ctrl-shift-enter" },
- name: "addLineBefore"
- }, {
- bindKey: { mac: "cmd-enter", win: "ctrl-enter" },
- name: "addLineAfter"
- }, {
- bindKey: { mac: "ctrl-shift-k", win: "ctrl-shift-k" },
- name: "removeline"
- }, {
- bindKey: { mac: "ctrl-alt-up", win: "ctrl-up" },
- name: "scrollup"
- }, {
- bindKey: { mac: "ctrl-alt-down", win: "ctrl-down" },
- name: "scrolldown"
- }, {
- bindKey: { mac: "cmd-a", win: "ctrl-a" },
- name: "selectall"
- }, {
- bindKey: { linux: "alt-shift-down", mac: "ctrl-shift-down", win: "ctrl-alt-down" },
- name: "addCursorBelow"
- }, {
- bindKey: { linux: "alt-shift-up", mac: "ctrl-shift-up", win: "ctrl-alt-up" },
- name: "addCursorAbove"
- },
- {
- bindKey: { mac: "cmd-k cmd-c|ctrl-l", win: "ctrl-k ctrl-c" },
- name: "centerselection"
- },
- {
- bindKey: { mac: "f5", win: "f9" },
- name: "sortlines"
- },
- {
- bindKey: { mac: "ctrl-f5", win: "ctrl-f9" },
- name: "sortlines",
- args: { caseSensitive: true }
- },
- {
- bindKey: { mac: "cmd-shift-l", win: "ctrl-shift-l" },
- name: "splitSelectionIntoLines"
- }, {
- bindKey: { mac: "ctrl-cmd-down", win: "ctrl-shift-down" },
- name: "movelinesdown"
- }, {
- bindKey: { mac: "ctrl-cmd-up", win: "ctrl-shift-up" },
- name: "movelinesup"
- }, {
- bindKey: { mac: "alt-down", win: "alt-down" },
- name: "modifyNumberDown"
- }, {
- bindKey: { mac: "alt-up", win: "alt-up" },
- name: "modifyNumberUp"
- }, {
- bindKey: { mac: "cmd-/", win: "ctrl-/" },
- name: "togglecomment"
- }, {
- bindKey: { mac: "cmd-alt-/", win: "ctrl-shift-/" },
- name: "toggleBlockComment"
- },
- {
- bindKey: { linux: "ctrl-alt-q", mac: "ctrl-q", win: "ctrl-q" },
- name: "togglerecording"
- }, {
- bindKey: { linux: "ctrl-alt-shift-q", mac: "ctrl-shift-q", win: "ctrl-shift-q" },
- name: "replaymacro"
- },
- {
- bindKey: { mac: "ctrl-t", win: "ctrl-t" },
- name: "transpose"
- }
- ].forEach(function (binding) {
- var command = exports.handler.commands[binding.name];
- if (command)
- command.bindKey = binding.bindKey;
- exports.handler.bindKey(binding.bindKey, command || binding.name);
- });
- }); (function() {
- ace.require(["ace/keyboard/sublime"], function(m) {
- if (typeof module == "object" && typeof exports == "object" && module) {
- module.exports = m;
- }
- });
- })();
-
|