File size: 10,345 Bytes
3a5cf48 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 | 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
}
})
})()
|