ace.define( 'ace/keyboard/sublime', ['require', 'exports', 'module', 'ace/keyboard/hash_handler'], function (e, t, n) { 'use strict' function i(e, t, n) { function f(e) { return e ? /\s/.test(e) ? 's' : e == '_' ? '_' : e.toUpperCase() == e && e.toLowerCase() != e ? 'W' : e.toUpperCase() != e && e.toLowerCase() == e ? 'w' : 'o' : '-' } var r = e.selection, i = r.lead.row, s = r.lead.column, o = e.session.getLine(i) if (!o[s + t]) { var u = (n ? 'selectWord' : 'moveCursorShortWord') + (t == 1 ? 'Right' : 'Left') return e.selection[u]() } t == -1 && s-- while (o[s]) { var a = f(o[s]) + f(o[s + t]) s += t if (t == 1) { if (a == 'WW' && f(o[s + 1]) == 'w') break } else { if (a == 'wW') { if (f(o[s - 1]) == 'W') { s -= 1 break } continue } if (a == 'Ww') break } if (/w[s_oW]|_[sWo]|o[s_wW]|s[W]|W[so]/.test(a)) break } t == -1 && s++, n ? e.selection.moveCursorTo(i, s) : e.selection.moveTo(i, s) } var r = e('../keyboard/hash_handler').HashHandler ;(t.handler = new r()), t.handler.addCommands([ { name: 'find_all_under', exec: function (e) { e.selection.isEmpty() && e.selection.selectWord(), e.findAll() }, readOnly: !0, }, { name: 'find_under', exec: function (e) { e.selection.isEmpty() && e.selection.selectWord(), e.findNext() }, readOnly: !0, }, { name: 'find_under_prev', exec: function (e) { e.selection.isEmpty() && e.selection.selectWord(), e.findPrevious() }, readOnly: !0, }, { name: 'find_under_expand', exec: function (e) { e.selectMore(1, !1, !0) }, scrollIntoView: 'animate', readOnly: !0, }, { name: 'find_under_expand_skip', exec: function (e) { e.selectMore(1, !0, !0) }, scrollIntoView: 'animate', readOnly: !0, }, { name: 'delete_to_hard_bol', exec: function (e) { var t = e.selection.getCursor() e.session.remove({ start: { row: t.row, column: 0 }, end: t }) }, multiSelectAction: 'forEach', scrollIntoView: 'cursor', }, { name: 'delete_to_hard_eol', exec: function (e) { var t = e.selection.getCursor() e.session.remove({ start: t, end: { row: t.row, column: Infinity } }) }, multiSelectAction: 'forEach', scrollIntoView: 'cursor', }, { name: 'moveToWordStartLeft', exec: function (e) { e.selection.moveCursorLongWordLeft(), e.clearSelection() }, multiSelectAction: 'forEach', scrollIntoView: 'cursor', }, { name: 'moveToWordEndRight', exec: function (e) { e.selection.moveCursorLongWordRight(), e.clearSelection() }, multiSelectAction: 'forEach', scrollIntoView: 'cursor', }, { name: 'selectToWordStartLeft', exec: function (e) { var t = e.selection t.$moveSelection(t.moveCursorLongWordLeft) }, multiSelectAction: 'forEach', scrollIntoView: 'cursor', }, { name: 'selectToWordEndRight', exec: function (e) { var t = e.selection t.$moveSelection(t.moveCursorLongWordRight) }, multiSelectAction: 'forEach', scrollIntoView: 'cursor', }, { name: 'selectSubWordRight', exec: function (e) { i(e, 1, !0) }, multiSelectAction: 'forEach', scrollIntoView: 'cursor', readOnly: !0, }, { name: 'selectSubWordLeft', exec: function (e) { i(e, -1, !0) }, multiSelectAction: 'forEach', scrollIntoView: 'cursor', readOnly: !0, }, { name: 'moveSubWordRight', exec: function (e) { i(e, 1) }, multiSelectAction: 'forEach', scrollIntoView: 'cursor', readOnly: !0, }, { name: 'moveSubWordLeft', exec: function (e) { i(e, -1) }, multiSelectAction: 'forEach', scrollIntoView: 'cursor', readOnly: !0, }, ]), [ { 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: !0 }, }, { 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 (e) { var n = t.handler.commands[e.name] n && (n.bindKey = e.bindKey), t.handler.bindKey(e.bindKey, n || e.name) }) } ) ;(function () { ace.require(['ace/keyboard/sublime'], function (m) { if (typeof module == 'object' && typeof exports == 'object' && module) { module.exports = m } }) })()