ace-rails-ap 4.0.0 → 4.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ace/rails/version.rb +1 -1
- data/vendor/assets/javascripts/ace/ace.js +993 -613
- data/vendor/assets/javascripts/ace/ext-chromevox.js +3 -4
- data/vendor/assets/javascripts/ace/ext-elastic_tabstops_lite.js +5 -6
- data/vendor/assets/javascripts/ace/ext-emmet.js +50 -21
- data/vendor/assets/javascripts/ace/ext-language_tools.js +21 -19
- data/vendor/assets/javascripts/ace/ext-modelist.js +11 -6
- data/vendor/assets/javascripts/ace/ext-old_ie.js +12 -5
- data/vendor/assets/javascripts/ace/ext-searchbox.js +12 -5
- data/vendor/assets/javascripts/ace/ext-settings_menu.js +14 -7
- data/vendor/assets/javascripts/ace/ext-static_highlight.js +5 -5
- data/vendor/assets/javascripts/ace/ext-statusbar.js +14 -12
- data/vendor/assets/javascripts/ace/ext-textarea.js +1 -2
- data/vendor/assets/javascripts/ace/ext-themelist.js +2 -0
- data/vendor/assets/javascripts/ace/ext-whitespace.js +17 -13
- data/vendor/assets/javascripts/ace/keybinding-emacs.js +76 -78
- data/vendor/assets/javascripts/ace/keybinding-vim.js +221 -80
- data/vendor/assets/javascripts/ace/mode-abc.js +2 -3
- data/vendor/assets/javascripts/ace/mode-actionscript.js +2 -3
- data/vendor/assets/javascripts/ace/mode-apache_conf.js +2 -3
- data/vendor/assets/javascripts/ace/mode-applescript.js +2 -3
- data/vendor/assets/javascripts/ace/mode-autohotkey.js +2 -3
- data/vendor/assets/javascripts/ace/mode-batchfile.js +2 -3
- data/vendor/assets/javascripts/ace/mode-c_cpp.js +8 -5
- data/vendor/assets/javascripts/ace/mode-coffee.js +1 -1
- data/vendor/assets/javascripts/ace/mode-coldfusion.js +533 -139
- data/vendor/assets/javascripts/ace/mode-csharp.js +4 -5
- data/vendor/assets/javascripts/ace/mode-css.js +185 -6
- data/vendor/assets/javascripts/ace/mode-curly.js +495 -138
- data/vendor/assets/javascripts/ace/mode-d.js +2 -3
- data/vendor/assets/javascripts/ace/mode-dart.js +8 -5
- data/vendor/assets/javascripts/ace/mode-django.js +495 -138
- data/vendor/assets/javascripts/ace/mode-dockerfile.js +59 -14
- data/vendor/assets/javascripts/ace/mode-dot.js +2 -3
- data/vendor/assets/javascripts/ace/mode-ejs.js +497 -152
- data/vendor/assets/javascripts/ace/mode-elm.js +6 -4
- data/vendor/assets/javascripts/ace/mode-erlang.js +3 -4
- data/vendor/assets/javascripts/ace/mode-forth.js +3 -4
- data/vendor/assets/javascripts/ace/mode-ftl.js +145 -17
- data/vendor/assets/javascripts/ace/mode-gherkin.js +58 -25
- data/vendor/assets/javascripts/ace/mode-glsl.js +8 -5
- data/vendor/assets/javascripts/ace/mode-golang.js +36 -25
- data/vendor/assets/javascripts/ace/mode-groovy.js +145 -17
- data/vendor/assets/javascripts/ace/mode-handlebars.js +496 -140
- data/vendor/assets/javascripts/ace/mode-haskell.js +3 -4
- data/vendor/assets/javascripts/ace/mode-haxe.js +4 -5
- data/vendor/assets/javascripts/ace/mode-html.js +495 -138
- data/vendor/assets/javascripts/ace/mode-html_elixir.js +3372 -0
- data/vendor/assets/javascripts/ace/mode-html_ruby.js +495 -138
- data/vendor/assets/javascripts/ace/mode-ini.js +1 -1
- data/vendor/assets/javascripts/ace/mode-io.js +2 -3
- data/vendor/assets/javascripts/ace/mode-jack.js +4 -5
- data/vendor/assets/javascripts/ace/mode-jade.js +155 -25
- data/vendor/assets/javascripts/ace/mode-java.js +145 -17
- data/vendor/assets/javascripts/ace/mode-javascript.js +145 -17
- data/vendor/assets/javascripts/ace/mode-json.js +4 -5
- data/vendor/assets/javascripts/ace/mode-jsoniq.js +4 -5
- data/vendor/assets/javascripts/ace/mode-jsp.js +150 -23
- data/vendor/assets/javascripts/ace/mode-jsx.js +4 -5
- data/vendor/assets/javascripts/ace/mode-julia.js +2 -3
- data/vendor/assets/javascripts/ace/mode-less.js +5 -6
- data/vendor/assets/javascripts/ace/mode-liquid.js +145 -17
- data/vendor/assets/javascripts/ace/mode-logiql.js +2 -2
- data/vendor/assets/javascripts/ace/mode-lsl.js +8 -10
- data/vendor/assets/javascripts/ace/mode-lua.js +2 -2
- data/vendor/assets/javascripts/ace/mode-luapage.js +497 -140
- data/vendor/assets/javascripts/ace/mode-makefile.js +54 -8
- data/vendor/assets/javascripts/ace/mode-markdown.js +497 -139
- data/vendor/assets/javascripts/ace/mode-mask.js +150 -22
- data/vendor/assets/javascripts/ace/mode-maze.js +283 -0
- data/vendor/assets/javascripts/ace/mode-mel.js +4 -5
- data/vendor/assets/javascripts/ace/mode-mushcode.js +0 -1
- data/vendor/assets/javascripts/ace/mode-mysql.js +1 -1
- data/vendor/assets/javascripts/ace/mode-nix.js +8 -5
- data/vendor/assets/javascripts/ace/mode-objectivec.js +6 -3
- data/vendor/assets/javascripts/ace/mode-perl.js +4 -5
- data/vendor/assets/javascripts/ace/mode-pgsql.js +141 -12
- data/vendor/assets/javascripts/ace/mode-php.js +9872 -143
- data/vendor/assets/javascripts/ace/mode-powershell.js +4 -5
- data/vendor/assets/javascripts/ace/mode-praat.js +18 -14
- data/vendor/assets/javascripts/ace/mode-prolog.js +2 -3
- data/vendor/assets/javascripts/ace/mode-protobuf.js +8 -5
- data/vendor/assets/javascripts/ace/mode-rhtml.js +495 -138
- data/vendor/assets/javascripts/ace/mode-ruby.js +2 -2
- data/vendor/assets/javascripts/ace/mode-rust.js +32 -39
- data/vendor/assets/javascripts/ace/mode-scad.js +4 -5
- data/vendor/assets/javascripts/ace/mode-scala.js +158 -21
- data/vendor/assets/javascripts/ace/mode-scheme.js +118 -1
- data/vendor/assets/javascripts/ace/mode-scss.js +4 -5
- data/vendor/assets/javascripts/ace/mode-sh.js +58 -13
- data/vendor/assets/javascripts/ace/mode-sjs.js +145 -17
- data/vendor/assets/javascripts/ace/mode-smarty.js +495 -138
- data/vendor/assets/javascripts/ace/mode-soy_template.js +496 -140
- data/vendor/assets/javascripts/ace/mode-sql.js +12 -4
- data/vendor/assets/javascripts/ace/mode-sqlserver.js +437 -0
- data/vendor/assets/javascripts/ace/mode-svg.js +147 -20
- data/vendor/assets/javascripts/ace/mode-swift.js +738 -0
- data/vendor/assets/javascripts/ace/mode-swig.js +1099 -0
- data/vendor/assets/javascripts/ace/mode-tcl.js +2 -3
- data/vendor/assets/javascripts/ace/mode-tex.js +1 -0
- data/vendor/assets/javascripts/ace/mode-toml.js +4 -0
- data/vendor/assets/javascripts/ace/mode-twig.js +495 -138
- data/vendor/assets/javascripts/ace/mode-typescript.js +147 -19
- data/vendor/assets/javascripts/ace/mode-vala.js +4 -5
- data/vendor/assets/javascripts/ace/mode-vbscript.js +26 -13
- data/vendor/assets/javascripts/ace/mode-velocity.js +495 -138
- data/vendor/assets/javascripts/ace/mode-verilog.js +8 -0
- data/vendor/assets/javascripts/ace/mode-xml.js +2 -3
- data/vendor/assets/javascripts/ace/mode-xquery.js +4 -5
- data/vendor/assets/javascripts/ace/snippets/actionscript.js +5 -0
- data/vendor/assets/javascripts/ace/snippets/html_elixir.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/java.js +6 -0
- data/vendor/assets/javascripts/ace/snippets/javascript.js +13 -0
- data/vendor/assets/javascripts/ace/snippets/lsl.js +166 -0
- data/vendor/assets/javascripts/ace/snippets/maze.js +16 -0
- data/vendor/assets/javascripts/ace/snippets/php.js +105 -4
- data/vendor/assets/javascripts/ace/snippets/sqlserver.js +76 -0
- data/vendor/assets/javascripts/ace/snippets/swift.js +7 -0
- data/vendor/assets/javascripts/ace/snippets/swig.js +7 -0
- data/vendor/assets/javascripts/ace/theme-clouds.js +0 -1
- data/vendor/assets/javascripts/ace/theme-clouds_midnight.js +0 -1
- data/vendor/assets/javascripts/ace/theme-cobalt.js +3 -3
- data/vendor/assets/javascripts/ace/theme-dawn.js +0 -1
- data/vendor/assets/javascripts/ace/theme-github.js +0 -1
- data/vendor/assets/javascripts/ace/theme-idle_fingers.js +0 -1
- data/vendor/assets/javascripts/ace/theme-iplastic.js +121 -0
- data/vendor/assets/javascripts/ace/theme-katzenmilch.js +1 -2
- data/vendor/assets/javascripts/ace/theme-kr_theme.js +0 -1
- data/vendor/assets/javascripts/ace/theme-kuroir.js +0 -1
- data/vendor/assets/javascripts/ace/theme-merbivore.js +0 -1
- data/vendor/assets/javascripts/ace/theme-merbivore_soft.js +0 -1
- data/vendor/assets/javascripts/ace/theme-mono_industrial.js +0 -1
- data/vendor/assets/javascripts/ace/theme-monokai.js +0 -1
- data/vendor/assets/javascripts/ace/theme-pastel_on_dark.js +0 -1
- data/vendor/assets/javascripts/ace/theme-solarized_dark.js +0 -1
- data/vendor/assets/javascripts/ace/theme-solarized_light.js +0 -1
- data/vendor/assets/javascripts/ace/theme-sqlserver.js +138 -0
- data/vendor/assets/javascripts/ace/theme-terminal.js +0 -1
- data/vendor/assets/javascripts/ace/theme-textmate.js +0 -1
- data/vendor/assets/javascripts/ace/theme-tomorrow.js +0 -1
- data/vendor/assets/javascripts/ace/theme-tomorrow_night.js +0 -1
- data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue.js +0 -1
- data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +0 -1
- data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties.js +0 -1
- data/vendor/assets/javascripts/ace/theme-twilight.js +0 -1
- data/vendor/assets/javascripts/ace/theme-vibrant_ink.js +0 -1
- data/vendor/assets/javascripts/ace/theme-xcode.js +0 -1
- data/vendor/assets/javascripts/ace/worker-coffee.js +576 -6015
- data/vendor/assets/javascripts/ace/worker-css.js +529 -449
- data/vendor/assets/javascripts/ace/worker-html.js +528 -448
- data/vendor/assets/javascripts/ace/worker-javascript.js +8719 -7656
- data/vendor/assets/javascripts/ace/worker-json.js +530 -450
- data/vendor/assets/javascripts/ace/worker-lua.js +530 -450
- data/vendor/assets/javascripts/ace/worker-php.js +530 -450
- data/vendor/assets/javascripts/ace/worker-xml.js +530 -450
- data/vendor/assets/javascripts/ace/worker-xquery.js +529 -449
- metadata +14 -2
@@ -100,6 +100,7 @@ define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/eve
|
|
100
100
|
CodeMirror.on = event.addListener;
|
101
101
|
CodeMirror.off = event.removeListener;
|
102
102
|
CodeMirror.isWordChar = function(ch) {
|
103
|
+
if (ch < "\x7f") return /^\w$/.test(ch);
|
103
104
|
TextModeTokenRe.lastIndex = 0;
|
104
105
|
return TextModeTokenRe.test(ch);
|
105
106
|
};
|
@@ -117,13 +118,6 @@ define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/eve
|
|
117
118
|
return this.ace.inVirtualSelectionMode && this.ace.selection.index;
|
118
119
|
};
|
119
120
|
this.onChange = function(delta) {
|
120
|
-
var oldDelta = delta.data;
|
121
|
-
delta = {
|
122
|
-
start: oldDelta.range.start,
|
123
|
-
end: oldDelta.range.end,
|
124
|
-
action: oldDelta.action,
|
125
|
-
lines: oldDelta.lines || [oldDelta.text]
|
126
|
-
};// v1.2 api compatibility
|
127
121
|
if (delta.action[0] == 'i') {
|
128
122
|
var change = { text: delta.lines };
|
129
123
|
var curOp = this.curOp = this.curOp || {};
|
@@ -203,6 +197,7 @@ define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/eve
|
|
203
197
|
}
|
204
198
|
if (!this.ace.inVirtualSelectionMode)
|
205
199
|
this.ace.exitMultiSelectMode();
|
200
|
+
this.ace.session.unfold({row: line, column: ch});
|
206
201
|
this.ace.selection.moveTo(line, ch);
|
207
202
|
};
|
208
203
|
this.getCursor = function(p) {
|
@@ -471,7 +466,9 @@ define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/eve
|
|
471
466
|
var optMap = {
|
472
467
|
indentWithTabs: "useSoftTabs",
|
473
468
|
indentUnit: "tabSize",
|
474
|
-
|
469
|
+
tabSize: "tabSize",
|
470
|
+
firstLineNumber: "firstLineNumber",
|
471
|
+
readOnly: "readOnly"
|
475
472
|
};
|
476
473
|
this.setOption = function(name, val) {
|
477
474
|
this.state[name] = val;
|
@@ -514,7 +511,6 @@ define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/eve
|
|
514
511
|
highlight.session = null;
|
515
512
|
};
|
516
513
|
highlight.updateOnChange = function(delta) {
|
517
|
-
delta = delta.data.range;// v1.2 api compatibility
|
518
514
|
var row = delta.start.row;
|
519
515
|
if (row == delta.end.row) highlight.cache[row] = undefined;
|
520
516
|
else highlight.cache.splice(row, highlight.cache.length);
|
@@ -591,6 +587,9 @@ define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/eve
|
|
591
587
|
this.refresh = function() {
|
592
588
|
return this.ace.resize(true);
|
593
589
|
};
|
590
|
+
this.getMode = function() {
|
591
|
+
return { name : this.getOption("mode") };
|
592
|
+
}
|
594
593
|
}).call(CodeMirror.prototype);
|
595
594
|
function toAcePos(cmPos) {
|
596
595
|
return {row: cmPos.line, column: cmPos.ch};
|
@@ -669,10 +668,14 @@ CodeMirror.defineExtension = function(name, fn) {
|
|
669
668
|
CodeMirror.prototype[name] = fn;
|
670
669
|
};
|
671
670
|
dom.importCssString(".normal-mode .ace_cursor{\
|
672
|
-
border:
|
671
|
+
border: 1px solid red;\
|
673
672
|
background-color: red;\
|
674
673
|
opacity: 0.5;\
|
675
|
-
}
|
674
|
+
}\
|
675
|
+
.normal-mode .ace_hidden-cursors .ace_cursor{\
|
676
|
+
background-color: transparent;\
|
677
|
+
}\
|
678
|
+
.ace_dialog {\
|
676
679
|
position: absolute;\
|
677
680
|
left: 0; right: 0;\
|
678
681
|
background: white;\
|
@@ -953,6 +956,27 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
953
956
|
{ keys: 'g#', type: 'search', searchArgs: { forward: false, querySrc: 'wordUnderCursor', toJumplist: true }},
|
954
957
|
{ keys: ':', type: 'ex' }
|
955
958
|
];
|
959
|
+
var defaultExCommandMap = [
|
960
|
+
{ name: 'colorscheme', shortName: 'colo' },
|
961
|
+
{ name: 'map' },
|
962
|
+
{ name: 'imap', shortName: 'im' },
|
963
|
+
{ name: 'nmap', shortName: 'nm' },
|
964
|
+
{ name: 'vmap', shortName: 'vm' },
|
965
|
+
{ name: 'unmap' },
|
966
|
+
{ name: 'write', shortName: 'w' },
|
967
|
+
{ name: 'undo', shortName: 'u' },
|
968
|
+
{ name: 'redo', shortName: 'red' },
|
969
|
+
{ name: 'set', shortName: 'se' },
|
970
|
+
{ name: 'set', shortName: 'se' },
|
971
|
+
{ name: 'setlocal', shortName: 'setl' },
|
972
|
+
{ name: 'setglobal', shortName: 'setg' },
|
973
|
+
{ name: 'sort', shortName: 'sor' },
|
974
|
+
{ name: 'substitute', shortName: 's', possiblyAsync: true },
|
975
|
+
{ name: 'nohlsearch', shortName: 'noh' },
|
976
|
+
{ name: 'delmarks', shortName: 'delm' },
|
977
|
+
{ name: 'registers', shortName: 'reg', excludeFromCommandHistory: true },
|
978
|
+
{ name: 'global', shortName: 'g' }
|
979
|
+
];
|
956
980
|
|
957
981
|
var Pos = CodeMirror.Pos;
|
958
982
|
|
@@ -1099,18 +1123,30 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1099
1123
|
}
|
1100
1124
|
|
1101
1125
|
var options = {};
|
1102
|
-
function defineOption(name, defaultValue, type) {
|
1103
|
-
if (defaultValue === undefined
|
1126
|
+
function defineOption(name, defaultValue, type, aliases, callback) {
|
1127
|
+
if (defaultValue === undefined && !callback) {
|
1128
|
+
throw Error('defaultValue is required unless callback is provided');
|
1129
|
+
}
|
1104
1130
|
if (!type) { type = 'string'; }
|
1105
1131
|
options[name] = {
|
1106
1132
|
type: type,
|
1107
|
-
defaultValue: defaultValue
|
1133
|
+
defaultValue: defaultValue,
|
1134
|
+
callback: callback
|
1108
1135
|
};
|
1109
|
-
|
1136
|
+
if (aliases) {
|
1137
|
+
for (var i = 0; i < aliases.length; i++) {
|
1138
|
+
options[aliases[i]] = options[name];
|
1139
|
+
}
|
1140
|
+
}
|
1141
|
+
if (defaultValue) {
|
1142
|
+
setOption(name, defaultValue);
|
1143
|
+
}
|
1110
1144
|
}
|
1111
1145
|
|
1112
|
-
function setOption(name, value, cm) {
|
1146
|
+
function setOption(name, value, cm, cfg) {
|
1113
1147
|
var option = options[name];
|
1148
|
+
cfg = cfg || {};
|
1149
|
+
var scope = cfg.scope;
|
1114
1150
|
if (!option) {
|
1115
1151
|
throw Error('Unknown option: ' + name);
|
1116
1152
|
}
|
@@ -1121,17 +1157,58 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1121
1157
|
value = true;
|
1122
1158
|
}
|
1123
1159
|
}
|
1124
|
-
|
1160
|
+
if (option.callback) {
|
1161
|
+
if (scope !== 'local') {
|
1162
|
+
option.callback(value, undefined);
|
1163
|
+
}
|
1164
|
+
if (scope !== 'global' && cm) {
|
1165
|
+
option.callback(value, cm);
|
1166
|
+
}
|
1167
|
+
} else {
|
1168
|
+
if (scope !== 'local') {
|
1169
|
+
option.value = option.type == 'boolean' ? !!value : value;
|
1170
|
+
}
|
1171
|
+
if (scope !== 'global' && cm) {
|
1172
|
+
cm.state.vim.options[name] = {value: value};
|
1173
|
+
}
|
1174
|
+
}
|
1125
1175
|
}
|
1126
1176
|
|
1127
|
-
function getOption(name) {
|
1177
|
+
function getOption(name, cm, cfg) {
|
1128
1178
|
var option = options[name];
|
1179
|
+
cfg = cfg || {};
|
1180
|
+
var scope = cfg.scope;
|
1129
1181
|
if (!option) {
|
1130
1182
|
throw Error('Unknown option: ' + name);
|
1131
1183
|
}
|
1132
|
-
|
1184
|
+
if (option.callback) {
|
1185
|
+
var local = cm && option.callback(undefined, cm);
|
1186
|
+
if (scope !== 'global' && local !== undefined) {
|
1187
|
+
return local;
|
1188
|
+
}
|
1189
|
+
if (scope !== 'local') {
|
1190
|
+
return option.callback();
|
1191
|
+
}
|
1192
|
+
return;
|
1193
|
+
} else {
|
1194
|
+
var local = (scope !== 'global') && (cm && cm.state.vim.options[name]);
|
1195
|
+
return (local || (scope !== 'local') && option || {}).value;
|
1196
|
+
}
|
1133
1197
|
}
|
1134
1198
|
|
1199
|
+
defineOption('filetype', undefined, 'string', ['ft'], function(name, cm) {
|
1200
|
+
if (cm === undefined) {
|
1201
|
+
return;
|
1202
|
+
}
|
1203
|
+
if (name === undefined) {
|
1204
|
+
var mode = cm.getOption('mode');
|
1205
|
+
return mode == 'null' ? '' : mode;
|
1206
|
+
} else {
|
1207
|
+
var mode = name == '' ? 'null' : name;
|
1208
|
+
cm.setOption('mode', mode);
|
1209
|
+
}
|
1210
|
+
});
|
1211
|
+
|
1135
1212
|
var createCircularJumpList = function() {
|
1136
1213
|
var size = 100;
|
1137
1214
|
var pointer = -1;
|
@@ -1257,8 +1334,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1257
1334
|
visualBlock: false,
|
1258
1335
|
lastSelection: null,
|
1259
1336
|
lastPastedText: null,
|
1260
|
-
sel: {
|
1261
|
-
}
|
1337
|
+
sel: {},
|
1338
|
+
options: {}
|
1262
1339
|
};
|
1263
1340
|
}
|
1264
1341
|
return cm.state.vim;
|
@@ -1302,13 +1379,15 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1302
1379
|
exCommandDispatcher.map(lhs, rhs, ctx);
|
1303
1380
|
},
|
1304
1381
|
unmap: function(lhs, ctx) {
|
1305
|
-
exCommandDispatcher.unmap(lhs, ctx);
|
1382
|
+
exCommandDispatcher.unmap(lhs, ctx || "normal");
|
1306
1383
|
},
|
1307
1384
|
setOption: setOption,
|
1308
1385
|
getOption: getOption,
|
1309
1386
|
defineOption: defineOption,
|
1310
1387
|
defineEx: function(name, prefix, func){
|
1311
|
-
if (
|
1388
|
+
if (!prefix) {
|
1389
|
+
prefix = name;
|
1390
|
+
} else if (name.indexOf(prefix) !== 0) {
|
1312
1391
|
throw new Error('(Vim.defineEx) "'+prefix+'" is not a prefix of "'+name+'", command not registered');
|
1313
1392
|
}
|
1314
1393
|
exCommands[name]=func;
|
@@ -1412,9 +1491,11 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1412
1491
|
if (command === false) {
|
1413
1492
|
return undefined;
|
1414
1493
|
} else if (command === true) {
|
1415
|
-
return function() {};
|
1494
|
+
return function() { return true; };
|
1416
1495
|
} else {
|
1417
1496
|
return function() {
|
1497
|
+
if ((command.operator || command.isEdit) && cm.getOption('readOnly'))
|
1498
|
+
return; // ace_patch
|
1418
1499
|
return cm.operation(function() {
|
1419
1500
|
cm.curOp.isVimOp = true;
|
1420
1501
|
try {
|
@@ -1446,6 +1527,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1446
1527
|
mapCommand: mapCommand,
|
1447
1528
|
_mapCommand: _mapCommand,
|
1448
1529
|
|
1530
|
+
defineRegister: defineRegister,
|
1531
|
+
|
1449
1532
|
exitVisualMode: exitVisualMode,
|
1450
1533
|
exitInsertMode: exitInsertMode
|
1451
1534
|
};
|
@@ -1524,6 +1607,14 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1524
1607
|
return this.keyBuffer.join('');
|
1525
1608
|
}
|
1526
1609
|
};
|
1610
|
+
function defineRegister(name, register) {
|
1611
|
+
var registers = vimGlobalState.registerController.registers[name];
|
1612
|
+
if (!name || name.length != 1) {
|
1613
|
+
throw Error('Register name must be 1 character');
|
1614
|
+
}
|
1615
|
+
registers[name] = register;
|
1616
|
+
validRegisters.push(name);
|
1617
|
+
}
|
1527
1618
|
function RegisterController(registers) {
|
1528
1619
|
this.registers = registers;
|
1529
1620
|
this.unnamedRegister = registers['"'] = new Register();
|
@@ -1790,7 +1881,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1790
1881
|
}
|
1791
1882
|
function onPromptKeyDown(e, query, close) {
|
1792
1883
|
var keyName = CodeMirror.keyName(e);
|
1793
|
-
if (keyName == 'Esc' || keyName == 'Ctrl-C' || keyName == 'Ctrl-['
|
1884
|
+
if (keyName == 'Esc' || keyName == 'Ctrl-C' || keyName == 'Ctrl-[' ||
|
1885
|
+
(keyName == 'Backspace' && query == '')) {
|
1794
1886
|
vimGlobalState.searchHistoryController.pushInput(query);
|
1795
1887
|
vimGlobalState.searchHistoryController.reset();
|
1796
1888
|
updateSearchQuery(cm, originalQuery);
|
@@ -1800,6 +1892,9 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1800
1892
|
clearInputState(cm);
|
1801
1893
|
close();
|
1802
1894
|
cm.focus();
|
1895
|
+
} else if (keyName == 'Ctrl-U') {
|
1896
|
+
CodeMirror.e_stop(e);
|
1897
|
+
close('');
|
1803
1898
|
}
|
1804
1899
|
}
|
1805
1900
|
switch (command.searchArgs.querySrc) {
|
@@ -1854,7 +1949,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1854
1949
|
}
|
1855
1950
|
function onPromptKeyDown(e, input, close) {
|
1856
1951
|
var keyName = CodeMirror.keyName(e), up;
|
1857
|
-
if (keyName == 'Esc' || keyName == 'Ctrl-C' || keyName == 'Ctrl-['
|
1952
|
+
if (keyName == 'Esc' || keyName == 'Ctrl-C' || keyName == 'Ctrl-[' ||
|
1953
|
+
(keyName == 'Backspace' && input == '')) {
|
1858
1954
|
vimGlobalState.exCommandHistoryController.pushInput(input);
|
1859
1955
|
vimGlobalState.exCommandHistoryController.reset();
|
1860
1956
|
CodeMirror.e_stop(e);
|
@@ -1866,6 +1962,9 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1866
1962
|
up = keyName == 'Up' ? true : false;
|
1867
1963
|
input = vimGlobalState.exCommandHistoryController.nextMatch(input, up) || '';
|
1868
1964
|
close(input);
|
1965
|
+
} else if (keyName == 'Ctrl-U') {
|
1966
|
+
CodeMirror.e_stop(e);
|
1967
|
+
close('');
|
1869
1968
|
} else {
|
1870
1969
|
if ( keyName != 'Left' && keyName != 'Right' && keyName != 'Ctrl' && keyName != 'Alt' && keyName != 'Shift')
|
1871
1970
|
vimGlobalState.exCommandHistoryController.reset();
|
@@ -1876,7 +1975,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1876
1975
|
} else {
|
1877
1976
|
if (vim.visualMode) {
|
1878
1977
|
showPrompt(cm, { onClose: onPromptClose, prefix: ':', value: '\'<,\'>',
|
1879
|
-
onKeyDown: onPromptKeyDown
|
1978
|
+
onKeyDown: onPromptKeyDown});
|
1880
1979
|
} else {
|
1881
1980
|
showPrompt(cm, { onClose: onPromptClose, prefix: ':',
|
1882
1981
|
onKeyDown: onPromptKeyDown});
|
@@ -1891,8 +1990,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1891
1990
|
var operatorArgs = inputState.operatorArgs || {};
|
1892
1991
|
var registerName = inputState.registerName;
|
1893
1992
|
var sel = vim.sel;
|
1894
|
-
var origHead = copyCursor(vim.visualMode ? sel.head: cm.getCursor('head'));
|
1895
|
-
var origAnchor = copyCursor(vim.visualMode ? sel.anchor : cm.getCursor('anchor'));
|
1993
|
+
var origHead = copyCursor(vim.visualMode ? clipCursorToContent(cm, sel.head): cm.getCursor('head'));
|
1994
|
+
var origAnchor = copyCursor(vim.visualMode ? clipCursorToContent(cm, sel.anchor) : cm.getCursor('anchor'));
|
1896
1995
|
var oldHead = copyCursor(origHead);
|
1897
1996
|
var oldAnchor = copyCursor(origAnchor);
|
1898
1997
|
var newHead, newAnchor;
|
@@ -1925,6 +2024,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
1925
2024
|
return;
|
1926
2025
|
}
|
1927
2026
|
if (motionArgs.toJumplist) {
|
2027
|
+
if (!operator)
|
2028
|
+
cm.ace.curOp.command.scrollIntoView = "center-animate"; // ace_patch
|
1928
2029
|
var jumpList = vimGlobalState.jumpList;
|
1929
2030
|
var cachedCursor = jumpList.cachedCursor;
|
1930
2031
|
if (cachedCursor) {
|
@@ -2175,12 +2276,14 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
2175
2276
|
(line > last && cur.line == last)) {
|
2176
2277
|
return;
|
2177
2278
|
}
|
2178
|
-
var fold = cm.ace.session.
|
2279
|
+
var fold = cm.ace.session.getFoldLine(line);
|
2179
2280
|
if (fold) {
|
2180
|
-
if (motionArgs.forward)
|
2181
|
-
line
|
2182
|
-
|
2183
|
-
|
2281
|
+
if (motionArgs.forward) {
|
2282
|
+
if (line > fold.start.row)
|
2283
|
+
line = fold.end.row + 1;
|
2284
|
+
} else {
|
2285
|
+
line = fold.start.row;
|
2286
|
+
}
|
2184
2287
|
}
|
2185
2288
|
if (motionArgs.toFirstChar){
|
2186
2289
|
endCh=findFirstNonWhiteSpaceCharacter(cm.getLine(line));
|
@@ -2404,9 +2507,10 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
2404
2507
|
var anchor = ranges[0].anchor,
|
2405
2508
|
head = ranges[0].head;
|
2406
2509
|
text = cm.getRange(anchor, head);
|
2407
|
-
|
2510
|
+
var lastState = vim.lastEditInputState || {};
|
2511
|
+
if (lastState.motion == "moveByWords" && !isWhiteSpaceString(text)) {
|
2408
2512
|
var match = (/\s+$/).exec(text);
|
2409
|
-
if (match) {
|
2513
|
+
if (match && lastState.motionArgs && lastState.motionArgs.forward) {
|
2410
2514
|
head = offsetCursor(head, 0, - match[0].length);
|
2411
2515
|
text = text.slice(0, - match[0].length);
|
2412
2516
|
}
|
@@ -2540,6 +2644,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
2540
2644
|
var markPos = mark ? mark.find() : undefined;
|
2541
2645
|
markPos = markPos ? markPos : cm.getCursor();
|
2542
2646
|
cm.setCursor(markPos);
|
2647
|
+
cm.ace.curOp.command.scrollIntoView = "center-animate"; // ace_patch
|
2543
2648
|
},
|
2544
2649
|
scroll: function(cm, actionArgs, vim) {
|
2545
2650
|
if (vim.visualMode) {
|
@@ -2817,7 +2922,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
2817
2922
|
}
|
2818
2923
|
var linewise = register.linewise;
|
2819
2924
|
var blockwise = register.blockwise;
|
2820
|
-
if (linewise) {
|
2925
|
+
if (linewise && !blockwise) {
|
2821
2926
|
if(vim.visualMode) {
|
2822
2927
|
text = vim.visualLine ? text.slice(0, -1) : '\n' + text.slice(0, text.length - 1) + '\n';
|
2823
2928
|
} else if (actionArgs.after) {
|
@@ -3707,13 +3812,22 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
3707
3812
|
var min = cm.firstLine();
|
3708
3813
|
var max = cm.lastLine();
|
3709
3814
|
var start, end, i = line;
|
3710
|
-
function isEmpty(i) { return !/\S/.test(cm.getLine(i)); }
|
3815
|
+
function isEmpty(i) { return !/\S/.test(cm.getLine(i)); } // ace_patch
|
3711
3816
|
function isBoundary(i, dir, any) {
|
3712
3817
|
if (any) { return isEmpty(i) != isEmpty(i + dir); }
|
3713
3818
|
return !isEmpty(i) && isEmpty(i + dir);
|
3714
3819
|
}
|
3820
|
+
function skipFold(i) {
|
3821
|
+
dir = dir > 0 ? 1 : -1;
|
3822
|
+
var foldLine = cm.ace.session.getFoldLine(i);
|
3823
|
+
if (foldLine) {
|
3824
|
+
if (i + dir > foldLine.start.row && i + dir < foldLine.end.row)
|
3825
|
+
dir = (dir > 0 ? foldLine.end.row : foldLine.start.row) - i;
|
3826
|
+
}
|
3827
|
+
}
|
3715
3828
|
if (dir) {
|
3716
3829
|
while (min <= i && i <= max && repeat > 0) {
|
3830
|
+
skipFold(i);
|
3717
3831
|
if (isBoundary(i, dir)) { repeat--; }
|
3718
3832
|
i += dir;
|
3719
3833
|
}
|
@@ -3863,7 +3977,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
3863
3977
|
function dialog(cm, template, shortText, onClose, options) {
|
3864
3978
|
if (cm.openDialog) {
|
3865
3979
|
cm.openDialog(template, onClose, { bottom: true, value: options.value,
|
3866
|
-
onKeyDown: options.onKeyDown, onKeyUp: options.onKeyUp,
|
3980
|
+
onKeyDown: options.onKeyDown, onKeyUp: options.onKeyUp,
|
3981
|
+
selectValueOnOpen: false});
|
3867
3982
|
}
|
3868
3983
|
else {
|
3869
3984
|
onClose(prompt(shortText, ''));
|
@@ -3926,13 +4041,17 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
3926
4041
|
}
|
3927
4042
|
return out.join('');
|
3928
4043
|
}
|
4044
|
+
var charUnescapes = {'\\n': '\n', '\\r': '\r', '\\t': '\t'};
|
3929
4045
|
function translateRegexReplace(str) {
|
3930
4046
|
var escapeNextChar = false;
|
3931
4047
|
var out = [];
|
3932
4048
|
for (var i = -1; i < str.length; i++) {
|
3933
4049
|
var c = str.charAt(i) || '';
|
3934
4050
|
var n = str.charAt(i+1) || '';
|
3935
|
-
if (
|
4051
|
+
if (charUnescapes[c + n]) {
|
4052
|
+
out.push(charUnescapes[c+n]);
|
4053
|
+
i++;
|
4054
|
+
} else if (escapeNextChar) {
|
3936
4055
|
out.push(c);
|
3937
4056
|
escapeNextChar = false;
|
3938
4057
|
} else {
|
@@ -3956,6 +4075,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
3956
4075
|
}
|
3957
4076
|
return out.join('');
|
3958
4077
|
}
|
4078
|
+
var unescapes = {'\\/': '/', '\\\\': '\\', '\\n': '\n', '\\r': '\r', '\\t': '\t'};
|
3959
4079
|
function unescapeRegexReplace(str) {
|
3960
4080
|
var stream = new CodeMirror.StringStream(str);
|
3961
4081
|
var output = [];
|
@@ -3963,11 +4083,15 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
3963
4083
|
while (stream.peek() && stream.peek() != '\\') {
|
3964
4084
|
output.push(stream.next());
|
3965
4085
|
}
|
3966
|
-
|
3967
|
-
|
3968
|
-
|
3969
|
-
|
3970
|
-
|
4086
|
+
var matched = false;
|
4087
|
+
for (var matcher in unescapes) {
|
4088
|
+
if (stream.match(matcher, true)) {
|
4089
|
+
matched = true;
|
4090
|
+
output.push(unescapes[matcher]);
|
4091
|
+
break;
|
4092
|
+
}
|
4093
|
+
}
|
4094
|
+
if (!matched) {
|
3971
4095
|
output.push(stream.next());
|
3972
4096
|
}
|
3973
4097
|
}
|
@@ -4158,28 +4282,19 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
4158
4282
|
bottom: renderer.getLastFullyVisibleRow()
|
4159
4283
|
}
|
4160
4284
|
}
|
4161
|
-
|
4162
|
-
{ name: 'map' },
|
4163
|
-
{ name: 'imap', shortName: 'im' },
|
4164
|
-
{ name: 'nmap', shortName: 'nm' },
|
4165
|
-
{ name: 'vmap', shortName: 'vm' },
|
4166
|
-
{ name: 'unmap' },
|
4167
|
-
{ name: 'write', shortName: 'w' },
|
4168
|
-
{ name: 'undo', shortName: 'u' },
|
4169
|
-
{ name: 'redo', shortName: 'red' },
|
4170
|
-
{ name: 'set', shortName: 'set' },
|
4171
|
-
{ name: 'sort', shortName: 'sor' },
|
4172
|
-
{ name: 'substitute', shortName: 's', possiblyAsync: true },
|
4173
|
-
{ name: 'nohlsearch', shortName: 'noh' },
|
4174
|
-
{ name: 'delmarks', shortName: 'delm' },
|
4175
|
-
{ name: 'registers', shortName: 'reg', excludeFromCommandHistory: true },
|
4176
|
-
{ name: 'global', shortName: 'g' }
|
4177
|
-
];
|
4285
|
+
|
4178
4286
|
var ExCommandDispatcher = function() {
|
4179
4287
|
this.buildCommandMap_();
|
4180
4288
|
};
|
4181
4289
|
ExCommandDispatcher.prototype = {
|
4182
4290
|
processCommand: function(cm, input, opt_params) {
|
4291
|
+
var that = this;
|
4292
|
+
cm.operation(function () {
|
4293
|
+
cm.curOp.isVimOp = true;
|
4294
|
+
that._processCommand(cm, input, opt_params);
|
4295
|
+
});
|
4296
|
+
},
|
4297
|
+
_processCommand: function(cm, input, opt_params) {
|
4183
4298
|
var vim = cm.state.vim;
|
4184
4299
|
var commandHistoryRegister = vimGlobalState.registerController.getRegister(':');
|
4185
4300
|
var previousCommand = commandHistoryRegister.toString();
|
@@ -4371,6 +4486,13 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
4371
4486
|
};
|
4372
4487
|
|
4373
4488
|
var exCommands = {
|
4489
|
+
colorscheme: function(cm, params) {
|
4490
|
+
if (!params.args || params.args.length < 1) {
|
4491
|
+
showConfirm(cm, cm.getOption('theme'));
|
4492
|
+
return;
|
4493
|
+
}
|
4494
|
+
cm.setOption('theme', params.args[0]);
|
4495
|
+
},
|
4374
4496
|
map: function(cm, params, ctx) {
|
4375
4497
|
var mapArgs = params.args;
|
4376
4498
|
if (!mapArgs || mapArgs.length < 2) {
|
@@ -4404,6 +4526,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
4404
4526
|
},
|
4405
4527
|
set: function(cm, params) {
|
4406
4528
|
var setArgs = params.args;
|
4529
|
+
var setCfg = params.setCfg || {};
|
4407
4530
|
if (!setArgs || setArgs.length < 1) {
|
4408
4531
|
if (cm) {
|
4409
4532
|
showConfirm(cm, 'Invalid mapping: ' + params.input);
|
@@ -4424,22 +4547,31 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
4424
4547
|
optionName = optionName.substring(2);
|
4425
4548
|
value = false;
|
4426
4549
|
}
|
4550
|
+
|
4427
4551
|
var optionIsBoolean = options[optionName] && options[optionName].type == 'boolean';
|
4428
4552
|
if (optionIsBoolean && value == undefined) {
|
4429
4553
|
value = true;
|
4430
4554
|
}
|
4431
|
-
if (!optionIsBoolean &&
|
4432
|
-
var oldValue = getOption(optionName);
|
4555
|
+
if (!optionIsBoolean && value === undefined || forceGet) {
|
4556
|
+
var oldValue = getOption(optionName, cm, setCfg);
|
4433
4557
|
if (oldValue === true || oldValue === false) {
|
4434
4558
|
showConfirm(cm, ' ' + (oldValue ? '' : 'no') + optionName);
|
4435
4559
|
} else {
|
4436
4560
|
showConfirm(cm, ' ' + optionName + '=' + oldValue);
|
4437
4561
|
}
|
4438
4562
|
} else {
|
4439
|
-
setOption(optionName, value, cm);
|
4563
|
+
setOption(optionName, value, cm, setCfg);
|
4440
4564
|
}
|
4441
4565
|
},
|
4442
|
-
|
4566
|
+
setlocal: function (cm, params) {
|
4567
|
+
params.setCfg = {scope: 'local'};
|
4568
|
+
this.set(cm, params);
|
4569
|
+
},
|
4570
|
+
setglobal: function (cm, params) {
|
4571
|
+
params.setCfg = {scope: 'global'};
|
4572
|
+
this.set(cm, params);
|
4573
|
+
},
|
4574
|
+
registers: function(cm, params) {
|
4443
4575
|
var regArgs = params.args;
|
4444
4576
|
var registers = vimGlobalState.registerController.registers;
|
4445
4577
|
var regInfo = '----------Registers----------<br><br>';
|
@@ -4649,6 +4781,9 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
4649
4781
|
var query = state.getQuery();
|
4650
4782
|
var lineStart = (params.line !== undefined) ? params.line : cm.getCursor().line;
|
4651
4783
|
var lineEnd = params.lineEnd || lineStart;
|
4784
|
+
if (lineStart == cm.firstLine() && lineEnd == cm.lastLine()) {
|
4785
|
+
lineEnd = Infinity;
|
4786
|
+
}
|
4652
4787
|
if (count) {
|
4653
4788
|
lineStart = lineEnd;
|
4654
4789
|
lineEnd = lineStart + count - 1;
|
@@ -4739,8 +4874,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
4739
4874
|
searchCursor.replace(newText);
|
4740
4875
|
}
|
4741
4876
|
function next() {
|
4742
|
-
|
4743
|
-
while(found = searchCursor.findNext() &&
|
4877
|
+
while(searchCursor.findNext() &&
|
4744
4878
|
isInRange(searchCursor.from(), lineStart, lineEnd)) {
|
4745
4879
|
if (!global && lastPos && searchCursor.from().line == lastPos.line) {
|
4746
4880
|
continue;
|
@@ -4855,7 +4989,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
4855
4989
|
}
|
4856
4990
|
|
4857
4991
|
function _mapCommand(command) {
|
4858
|
-
defaultKeymap.
|
4992
|
+
defaultKeymap.unshift(command);
|
4859
4993
|
}
|
4860
4994
|
|
4861
4995
|
function mapCommand(keys, type, name, args, extra) {
|
@@ -4892,6 +5026,13 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
4892
5026
|
|
4893
5027
|
function executeMacroRegister(cm, vim, macroModeState, registerName) {
|
4894
5028
|
var register = vimGlobalState.registerController.getRegister(registerName);
|
5029
|
+
if (registerName == ':') {
|
5030
|
+
if (register.keyBuffer[0]) {
|
5031
|
+
exCommandDispatcher.processCommand(cm, register.keyBuffer[0]);
|
5032
|
+
}
|
5033
|
+
macroModeState.isPlaying = false;
|
5034
|
+
return;
|
5035
|
+
}
|
4895
5036
|
var keyBuffer = register.keyBuffer;
|
4896
5037
|
var imc = 0;
|
4897
5038
|
macroModeState.isPlaying = true;
|
@@ -4929,7 +5070,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
4929
5070
|
if (macroModeState.isPlaying) { return; }
|
4930
5071
|
var registerName = macroModeState.latestRegister;
|
4931
5072
|
var register = vimGlobalState.registerController.getRegister(registerName);
|
4932
|
-
if (register) {
|
5073
|
+
if (register && register.pushInsertModeChanges) {
|
4933
5074
|
register.pushInsertModeChanges(macroModeState.lastInsertModeChanges);
|
4934
5075
|
}
|
4935
5076
|
}
|
@@ -4938,7 +5079,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
4938
5079
|
if (macroModeState.isPlaying) { return; }
|
4939
5080
|
var registerName = macroModeState.latestRegister;
|
4940
5081
|
var register = vimGlobalState.registerController.getRegister(registerName);
|
4941
|
-
if (register) {
|
5082
|
+
if (register && register.pushSearchQuery) {
|
4942
5083
|
register.pushSearchQuery(query);
|
4943
5084
|
}
|
4944
5085
|
}
|
@@ -4977,7 +5118,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
4977
5118
|
}
|
4978
5119
|
function updateFakeCursor(cm) {
|
4979
5120
|
var vim = cm.state.vim;
|
4980
|
-
var from = copyCursor(vim.sel.head);
|
5121
|
+
var from = clipCursorToContent(cm, copyCursor(vim.sel.head));
|
4981
5122
|
var to = offsetCursor(from, 0, 1);
|
4982
5123
|
if (vim.fakeCursor) {
|
4983
5124
|
vim.fakeCursor.clear();
|
@@ -4987,7 +5128,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
4987
5128
|
function handleExternalSelection(cm, vim) {
|
4988
5129
|
var anchor = cm.getCursor('anchor');
|
4989
5130
|
var head = cm.getCursor('head');
|
4990
|
-
if (vim.visualMode &&
|
5131
|
+
if (vim.visualMode && !cm.somethingSelected()) {
|
4991
5132
|
exitVisualMode(cm, false);
|
4992
5133
|
} else if (!vim.visualMode && !vim.insertMode && cm.somethingSelected()) {
|
4993
5134
|
vim.visualMode = true;
|
@@ -5188,7 +5329,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
5188
5329
|
}, true);
|
5189
5330
|
}
|
5190
5331
|
return isHandled;
|
5191
|
-
}
|
5332
|
+
}
|
5192
5333
|
exports.CodeMirror = CodeMirror;
|
5193
5334
|
var getVim = Vim.maybeInitVimState_;
|
5194
5335
|
exports.handler = {
|
@@ -5202,9 +5343,9 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
5202
5343
|
if (!vim.insertMode) {
|
5203
5344
|
var isbackwards = !sel.cursor
|
5204
5345
|
? session.selection.isBackwards() || session.selection.isEmpty()
|
5205
|
-
: Range.comparePoints(sel.cursor, sel.start) <= 0
|
5346
|
+
: Range.comparePoints(sel.cursor, sel.start) <= 0;
|
5206
5347
|
if (!isbackwards && left > w)
|
5207
|
-
left -= w
|
5348
|
+
left -= w;
|
5208
5349
|
}
|
5209
5350
|
if (!vim.insertMode && vim.status) {
|
5210
5351
|
h = h / 2;
|
@@ -5360,13 +5501,13 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
5360
5501
|
};
|
5361
5502
|
var renderVirtualNumbers = {
|
5362
5503
|
getText: function(session, row) {
|
5363
|
-
return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9? "\xb7" : "" ))) + ""
|
5504
|
+
return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9? "\xb7" : "" ))) + "";
|
5364
5505
|
},
|
5365
5506
|
getWidth: function(session, lastLineNumber, config) {
|
5366
5507
|
return session.getLength().toString().length * config.characterWidth;
|
5367
5508
|
},
|
5368
5509
|
update: function(e, editor) {
|
5369
|
-
editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER)
|
5510
|
+
editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);
|
5370
5511
|
},
|
5371
5512
|
attach: function(editor) {
|
5372
5513
|
editor.renderer.$gutterLayer.$renderer = this;
|
@@ -5411,7 +5552,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
5411
5552
|
if (cm.ace.inVirtualSelectionMode)
|
5412
5553
|
cm.ace.on("beforeEndOperation", delayedExecAceCommand);
|
5413
5554
|
else
|
5414
|
-
delayedExecAceCommand(null, cm.ace)
|
5555
|
+
delayedExecAceCommand(null, cm.ace);
|
5415
5556
|
};
|
5416
5557
|
function delayedExecAceCommand(op, ace) {
|
5417
5558
|
ace.off("beforeEndOperation", delayedExecAceCommand);
|
@@ -5430,5 +5571,5 @@ dom.importCssString(".normal-mode .ace_cursor{\
|
|
5430
5571
|
exports.handler.actions = actions;
|
5431
5572
|
exports.Vim = Vim;
|
5432
5573
|
|
5433
|
-
Vim.map("Y", "yy");
|
5574
|
+
Vim.map("Y", "yy", "normal");
|
5434
5575
|
});
|