ace-rails-ap 3.0.1 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/ace/rails/version.rb +1 -1
- data/vendor/assets/javascripts/ace/ace.js +210 -161
- data/vendor/assets/javascripts/ace/ext-beautify.js +0 -1
- data/vendor/assets/javascripts/ace/ext-chromevox.js +0 -1
- data/vendor/assets/javascripts/ace/ext-elastic_tabstops_lite.js +0 -1
- data/vendor/assets/javascripts/ace/ext-emmet.js +66 -48
- data/vendor/assets/javascripts/ace/ext-keybinding_menu.js +9 -19
- data/vendor/assets/javascripts/ace/ext-language_tools.js +108 -10
- data/vendor/assets/javascripts/ace/ext-linking.js +0 -1
- data/vendor/assets/javascripts/ace/ext-modelist.js +4 -1
- data/vendor/assets/javascripts/ace/ext-old_ie.js +23 -2
- data/vendor/assets/javascripts/ace/ext-searchbox.js +23 -2
- data/vendor/assets/javascripts/ace/ext-settings_menu.js +10 -1
- data/vendor/assets/javascripts/ace/ext-spellcheck.js +0 -1
- data/vendor/assets/javascripts/ace/ext-split.js +0 -1
- data/vendor/assets/javascripts/ace/ext-static_highlight.js +0 -1
- data/vendor/assets/javascripts/ace/ext-statusbar.js +2 -4
- data/vendor/assets/javascripts/ace/ext-textarea.js +0 -1
- data/vendor/assets/javascripts/ace/ext-themelist.js +0 -1
- data/vendor/assets/javascripts/ace/ext-whitespace.js +0 -1
- data/vendor/assets/javascripts/ace/keybinding-emacs.js +159 -50
- data/vendor/assets/javascripts/ace/mode-autohotkey.js +1 -1
- data/vendor/assets/javascripts/ace/mode-c_cpp.js +32 -14
- data/vendor/assets/javascripts/ace/mode-coffee.js +1 -1
- data/vendor/assets/javascripts/ace/mode-coldfusion.js +62 -24
- data/vendor/assets/javascripts/ace/mode-csharp.js +14 -8
- data/vendor/assets/javascripts/ace/mode-css.js +2 -2
- data/vendor/assets/javascripts/ace/mode-curly.js +62 -24
- data/vendor/assets/javascripts/ace/mode-d.js +13 -7
- data/vendor/assets/javascripts/ace/mode-dart.js +32 -14
- data/vendor/assets/javascripts/ace/mode-django.js +62 -24
- data/vendor/assets/javascripts/ace/mode-dockerfile.js +3 -3
- data/vendor/assets/javascripts/ace/mode-dot.js +12 -6
- data/vendor/assets/javascripts/ace/mode-ejs.js +126 -27
- data/vendor/assets/javascripts/ace/mode-elixir.js +493 -0
- data/vendor/assets/javascripts/ace/mode-elm.js +248 -0
- data/vendor/assets/javascripts/ace/mode-forth.js +1 -1
- data/vendor/assets/javascripts/ace/mode-ftl.js +20 -10
- data/vendor/assets/javascripts/ace/mode-gitignore.js +1 -0
- data/vendor/assets/javascripts/ace/mode-glsl.js +32 -14
- data/vendor/assets/javascripts/ace/mode-golang.js +14 -8
- data/vendor/assets/javascripts/ace/mode-groovy.js +22 -12
- data/vendor/assets/javascripts/ace/mode-haml.js +64 -3
- data/vendor/assets/javascripts/ace/mode-handlebars.js +72 -34
- data/vendor/assets/javascripts/ace/mode-haxe.js +14 -8
- data/vendor/assets/javascripts/ace/mode-html.js +62 -24
- data/vendor/assets/javascripts/ace/mode-html_ruby.js +126 -27
- data/vendor/assets/javascripts/ace/mode-jack.js +2 -2
- data/vendor/assets/javascripts/ace/mode-jade.js +21 -11
- data/vendor/assets/javascripts/ace/mode-java.js +22 -12
- data/vendor/assets/javascripts/ace/mode-javascript.js +22 -12
- data/vendor/assets/javascripts/ace/mode-json.js +2 -2
- data/vendor/assets/javascripts/ace/mode-jsoniq.js +47 -1835
- data/vendor/assets/javascripts/ace/mode-jsp.js +22 -12
- data/vendor/assets/javascripts/ace/mode-jsx.js +14 -8
- data/vendor/assets/javascripts/ace/mode-less.js +2 -2
- data/vendor/assets/javascripts/ace/mode-liquid.js +20 -10
- data/vendor/assets/javascripts/ace/mode-logiql.js +2 -2
- data/vendor/assets/javascripts/ace/mode-lsl.js +2 -2
- data/vendor/assets/javascripts/ace/mode-luapage.js +62 -24
- data/vendor/assets/javascripts/ace/mode-markdown.js +62 -24
- data/vendor/assets/javascripts/ace/mode-mel.js +2 -2
- data/vendor/assets/javascripts/ace/mode-mysql.js +12 -6
- data/vendor/assets/javascripts/ace/mode-nix.js +32 -14
- data/vendor/assets/javascripts/ace/mode-objectivec.js +30 -12
- data/vendor/assets/javascripts/ace/mode-pgsql.js +20 -10
- data/vendor/assets/javascripts/ace/mode-php.js +1126 -40
- data/vendor/assets/javascripts/ace/mode-powershell.js +2 -2
- data/vendor/assets/javascripts/ace/mode-protobuf.js +32 -14
- data/vendor/assets/javascripts/ace/mode-rhtml.js +62 -24
- data/vendor/assets/javascripts/ace/mode-ruby.js +66 -5
- data/vendor/assets/javascripts/ace/mode-rust.js +36 -3
- data/vendor/assets/javascripts/ace/mode-scad.js +14 -8
- data/vendor/assets/javascripts/ace/mode-scala.js +22 -12
- data/vendor/assets/javascripts/ace/mode-scss.js +2 -2
- data/vendor/assets/javascripts/ace/mode-sh.js +2 -2
- data/vendor/assets/javascripts/ace/mode-sjs.js +22 -12
- data/vendor/assets/javascripts/ace/mode-smarty.js +62 -24
- data/vendor/assets/javascripts/ace/mode-soy_template.js +63 -25
- data/vendor/assets/javascripts/ace/mode-stylus.js +4 -1
- data/vendor/assets/javascripts/ace/mode-svg.js +62 -24
- data/vendor/assets/javascripts/ace/mode-textile.js +1 -0
- data/vendor/assets/javascripts/ace/mode-twig.js +62 -24
- data/vendor/assets/javascripts/ace/mode-typescript.js +22 -12
- data/vendor/assets/javascripts/ace/mode-vala.js +2 -2
- data/vendor/assets/javascripts/ace/mode-velocity.js +62 -24
- data/vendor/assets/javascripts/ace/mode-xml.js +40 -12
- data/vendor/assets/javascripts/ace/mode-xquery.js +47 -1835
- data/vendor/assets/javascripts/ace/theme-cobalt.js +1 -1
- data/vendor/assets/javascripts/ace/theme-idle_fingers.js +1 -1
- data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +2 -2
- data/vendor/assets/javascripts/ace/worker-coffee.js +15 -5
- data/vendor/assets/javascripts/ace/worker-css.js +15 -5
- data/vendor/assets/javascripts/ace/worker-html.js +15 -5
- data/vendor/assets/javascripts/ace/worker-javascript.js +15 -5
- data/vendor/assets/javascripts/ace/worker-json.js +17 -6
- data/vendor/assets/javascripts/ace/worker-lua.js +15 -5
- data/vendor/assets/javascripts/ace/worker-php.js +15 -5
- data/vendor/assets/javascripts/ace/worker-xquery.js +15 -5
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2cc5d57286310940b01bf444c90157de22458f80
|
|
4
|
+
data.tar.gz: 35372099cf669dbf6639d6f5a69b45f9a30c4274
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4b12bead68c4eb9d30d6bac6c7b17ef2a7aa481ee759e4ec090fd382f5321c919cb8f18711f60e9672be7831b5353eafafb2459d2a06367fd1e16a4e1e32b4fe
|
|
7
|
+
data.tar.gz: 05c2bc884dd715f97fbd697d0c65db8db7aeab519da54b0eadb674f5ebff823f0437297be1a30b86c04134be9439f97f705e52109d0611deac546578c9036be7
|
data/lib/ace/rails/version.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) 2010, Ajax.org B.V.
|
|
5
5
|
* All rights reserved.
|
|
6
|
-
*
|
|
6
|
+
*
|
|
7
7
|
* Redistribution and use in source and binary forms, with or without
|
|
8
8
|
* modification, are permitted provided that the following conditions are met:
|
|
9
9
|
* * Redistributions of source code must retain the above copyright
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* * Neither the name of Ajax.org B.V. nor the
|
|
15
15
|
* names of its contributors may be used to endorse or promote products
|
|
16
16
|
* derived from this software without specific prior written permission.
|
|
17
|
-
*
|
|
17
|
+
*
|
|
18
18
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
19
19
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
20
20
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
@@ -65,7 +65,7 @@ var _define = function(module, deps, payload) {
|
|
|
65
65
|
_define.modules = {};
|
|
66
66
|
_define.payloads = {};
|
|
67
67
|
}
|
|
68
|
-
|
|
68
|
+
|
|
69
69
|
_define.payloads[module] = payload;
|
|
70
70
|
_define.modules[module] = null;
|
|
71
71
|
};
|
|
@@ -160,7 +160,7 @@ var lookup = function(parentId, moduleName) {
|
|
|
160
160
|
function exportAce(ns) {
|
|
161
161
|
var require = function(module, callback) {
|
|
162
162
|
return _require("", module, callback);
|
|
163
|
-
};
|
|
163
|
+
};
|
|
164
164
|
|
|
165
165
|
var root = global;
|
|
166
166
|
if (ns) {
|
|
@@ -1324,6 +1324,9 @@ var Keys = (function() {
|
|
|
1324
1324
|
}
|
|
1325
1325
|
})();
|
|
1326
1326
|
|
|
1327
|
+
ret.KEY_MODS[0] = "";
|
|
1328
|
+
ret.KEY_MODS[-1] = "input";
|
|
1329
|
+
|
|
1327
1330
|
return ret;
|
|
1328
1331
|
})();
|
|
1329
1332
|
oop.mixin(exports, Keys);
|
|
@@ -1831,7 +1834,6 @@ exports.getMatchOffsets = function(string, regExp) {
|
|
|
1831
1834
|
return matches;
|
|
1832
1835
|
};
|
|
1833
1836
|
exports.deferredCall = function(fcn) {
|
|
1834
|
-
|
|
1835
1837
|
var timer = null;
|
|
1836
1838
|
var callback = function() {
|
|
1837
1839
|
timer = null;
|
|
@@ -1937,13 +1939,13 @@ var TextInput = function(parentNode, host) {
|
|
|
1937
1939
|
var isSelectionEmpty = true;
|
|
1938
1940
|
try { var isFocused = document.activeElement === text; } catch(e) {}
|
|
1939
1941
|
|
|
1940
|
-
event.addListener(text, "blur", function() {
|
|
1941
|
-
host.onBlur();
|
|
1942
|
+
event.addListener(text, "blur", function(e) {
|
|
1943
|
+
host.onBlur(e);
|
|
1942
1944
|
isFocused = false;
|
|
1943
1945
|
});
|
|
1944
|
-
event.addListener(text, "focus", function() {
|
|
1946
|
+
event.addListener(text, "focus", function(e) {
|
|
1945
1947
|
isFocused = true;
|
|
1946
|
-
host.onFocus();
|
|
1948
|
+
host.onFocus(e);
|
|
1947
1949
|
resetSelection();
|
|
1948
1950
|
});
|
|
1949
1951
|
this.focus = function() { text.focus(); };
|
|
@@ -3966,8 +3968,16 @@ var KeyBinding = function(editor) {
|
|
|
3966
3968
|
this.getKeyboardHandler = function() {
|
|
3967
3969
|
return this.$handlers[this.$handlers.length - 1];
|
|
3968
3970
|
};
|
|
3971
|
+
|
|
3972
|
+
this.getStatusText = function() {
|
|
3973
|
+
var data = this.$data;
|
|
3974
|
+
var editor = data.editor;
|
|
3975
|
+
return this.$handlers.map(function(h) {
|
|
3976
|
+
return h.getStatusText && h.getStatusText(editor, data) || "";
|
|
3977
|
+
}).filter(Boolean).join(" ");
|
|
3978
|
+
};
|
|
3969
3979
|
|
|
3970
|
-
this.$callKeyboardHandlers = function
|
|
3980
|
+
this.$callKeyboardHandlers = function(hashId, keyString, keyCode, e) {
|
|
3971
3981
|
var toExecute;
|
|
3972
3982
|
var success = false;
|
|
3973
3983
|
var commands = this.$editor.commands;
|
|
@@ -4859,7 +4869,7 @@ exports.Selection = Selection;
|
|
|
4859
4869
|
|
|
4860
4870
|
define("ace/tokenizer",["require","exports","module"], function(require, exports, module) {
|
|
4861
4871
|
"use strict";
|
|
4862
|
-
var MAX_TOKEN_COUNT =
|
|
4872
|
+
var MAX_TOKEN_COUNT = 2000;
|
|
4863
4873
|
var Tokenizer = function(rules) {
|
|
4864
4874
|
this.states = rules;
|
|
4865
4875
|
|
|
@@ -4890,9 +4900,11 @@ var Tokenizer = function(rules) {
|
|
|
4890
4900
|
if (rule.token.length == 1 || matchcount == 1) {
|
|
4891
4901
|
rule.token = rule.token[0];
|
|
4892
4902
|
} else if (matchcount - 1 != rule.token.length) {
|
|
4893
|
-
|
|
4894
|
-
rule
|
|
4895
|
-
|
|
4903
|
+
this.reportError("number of classes and regexp groups doesn't match", {
|
|
4904
|
+
rule: rule,
|
|
4905
|
+
groupCount: matchcount - 1
|
|
4906
|
+
});
|
|
4907
|
+
rule.token = rule.token[0];
|
|
4896
4908
|
} else {
|
|
4897
4909
|
rule.tokenArray = rule.token;
|
|
4898
4910
|
rule.token = null;
|
|
@@ -5043,6 +5055,7 @@ var Tokenizer = function(rules) {
|
|
|
5043
5055
|
|
|
5044
5056
|
var match, tokens = [];
|
|
5045
5057
|
var lastIndex = 0;
|
|
5058
|
+
var matchAttempts = 0;
|
|
5046
5059
|
|
|
5047
5060
|
var token = {type: null, value: ""};
|
|
5048
5061
|
|
|
@@ -5083,7 +5096,7 @@ var Tokenizer = function(rules) {
|
|
|
5083
5096
|
|
|
5084
5097
|
state = this.states[currentState];
|
|
5085
5098
|
if (!state) {
|
|
5086
|
-
|
|
5099
|
+
this.reportError("state doesn't exist", currentState);
|
|
5087
5100
|
currentState = "start";
|
|
5088
5101
|
state = this.states[currentState];
|
|
5089
5102
|
}
|
|
@@ -5096,7 +5109,7 @@ var Tokenizer = function(rules) {
|
|
|
5096
5109
|
}
|
|
5097
5110
|
|
|
5098
5111
|
if (value) {
|
|
5099
|
-
if (typeof type
|
|
5112
|
+
if (typeof type === "string") {
|
|
5100
5113
|
if ((!rule || rule.merge !== false) && token.type === type) {
|
|
5101
5114
|
token.value += value;
|
|
5102
5115
|
} else {
|
|
@@ -5118,7 +5131,13 @@ var Tokenizer = function(rules) {
|
|
|
5118
5131
|
|
|
5119
5132
|
lastIndex = index;
|
|
5120
5133
|
|
|
5121
|
-
if (
|
|
5134
|
+
if (matchAttempts++ > MAX_TOKEN_COUNT) {
|
|
5135
|
+
if (matchAttempts > 2 * line.length) {
|
|
5136
|
+
this.reportError("infinite loop with in ace tokenizer", {
|
|
5137
|
+
startState: startState,
|
|
5138
|
+
line: line
|
|
5139
|
+
});
|
|
5140
|
+
}
|
|
5122
5141
|
while (lastIndex < line.length) {
|
|
5123
5142
|
if (token.type)
|
|
5124
5143
|
tokens.push(token);
|
|
@@ -5145,7 +5164,14 @@ var Tokenizer = function(rules) {
|
|
|
5145
5164
|
state : stack.length ? stack : currentState
|
|
5146
5165
|
};
|
|
5147
5166
|
};
|
|
5148
|
-
|
|
5167
|
+
|
|
5168
|
+
this.reportError = function(msg, data) {
|
|
5169
|
+
var e = new Error(msg);
|
|
5170
|
+
e.data = data;
|
|
5171
|
+
if (typeof console == "object" && console.error)
|
|
5172
|
+
console.error(e);
|
|
5173
|
+
setTimeout(function() { throw e; });
|
|
5174
|
+
};
|
|
5149
5175
|
}).call(Tokenizer.prototype);
|
|
5150
5176
|
|
|
5151
5177
|
exports.Tokenizer = Tokenizer;
|
|
@@ -7334,12 +7360,11 @@ function Folding() {
|
|
|
7334
7360
|
if (startFold && endFold == startFold)
|
|
7335
7361
|
return startFold.addSubFold(fold);
|
|
7336
7362
|
|
|
7337
|
-
if (
|
|
7338
|
-
(startFold
|
|
7339
|
-
|
|
7340
|
-
)
|
|
7341
|
-
|
|
7342
|
-
}
|
|
7363
|
+
if (startFold && !startFold.range.isStart(startRow, startColumn))
|
|
7364
|
+
this.removeFold(startFold);
|
|
7365
|
+
|
|
7366
|
+
if (endFold && !endFold.range.isEnd(endRow, endColumn))
|
|
7367
|
+
this.removeFold(endFold);
|
|
7343
7368
|
var folds = this.getFoldsInRange(fold.range);
|
|
7344
7369
|
if (folds.length > 0) {
|
|
7345
7370
|
this.removeFolds(folds);
|
|
@@ -8992,7 +9017,7 @@ var EditSession = function(text, mode) {
|
|
|
8992
9017
|
}
|
|
8993
9018
|
};
|
|
8994
9019
|
this.adjustWrapLimit = function(desiredLimit, $printMargin) {
|
|
8995
|
-
var limits = this.$wrapLimitRange
|
|
9020
|
+
var limits = this.$wrapLimitRange;
|
|
8996
9021
|
if (limits.max < 0)
|
|
8997
9022
|
limits = {min: $printMargin, max: $printMargin};
|
|
8998
9023
|
var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);
|
|
@@ -9092,7 +9117,7 @@ var EditSession = function(text, mode) {
|
|
|
9092
9117
|
var foldLine = this.getFoldLine(firstRow);
|
|
9093
9118
|
var idx = 0;
|
|
9094
9119
|
if (foldLine) {
|
|
9095
|
-
var cmp = foldLine.range.compareInside(start.row, start.column)
|
|
9120
|
+
var cmp = foldLine.range.compareInside(start.row, start.column);
|
|
9096
9121
|
if (cmp == 0) {
|
|
9097
9122
|
foldLine = foldLine.split(start.row, start.column);
|
|
9098
9123
|
if (foldLine) {
|
|
@@ -9438,7 +9463,7 @@ var EditSession = function(text, mode) {
|
|
|
9438
9463
|
return {
|
|
9439
9464
|
row: maxRow,
|
|
9440
9465
|
column: this.getLine(maxRow).length
|
|
9441
|
-
}
|
|
9466
|
+
};
|
|
9442
9467
|
} else {
|
|
9443
9468
|
line = this.getLine(docRow);
|
|
9444
9469
|
foldLine = null;
|
|
@@ -9941,7 +9966,7 @@ var Search = function() {
|
|
|
9941
9966
|
if (options.wholeWord)
|
|
9942
9967
|
needle = "\\b" + needle + "\\b";
|
|
9943
9968
|
|
|
9944
|
-
var modifier = options.caseSensitive ? "
|
|
9969
|
+
var modifier = options.caseSensitive ? "gm" : "gmi";
|
|
9945
9970
|
|
|
9946
9971
|
options.$isMultiLine = !$disableFakeMultiline && /[\n\r]/.test(needle);
|
|
9947
9972
|
if (options.$isMultiLine)
|
|
@@ -10036,35 +10061,25 @@ define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys",
|
|
|
10036
10061
|
|
|
10037
10062
|
var keyUtil = require("../lib/keys");
|
|
10038
10063
|
var useragent = require("../lib/useragent");
|
|
10064
|
+
var KEY_MODS = keyUtil.KEY_MODS;
|
|
10039
10065
|
|
|
10040
10066
|
function HashHandler(config, platform) {
|
|
10041
10067
|
this.platform = platform || (useragent.isMac ? "mac" : "win");
|
|
10042
10068
|
this.commands = {};
|
|
10043
10069
|
this.commandKeyBinding = {};
|
|
10044
|
-
if (this.__defineGetter__ && this.__defineSetter__ && typeof console != "undefined" && console.error) {
|
|
10045
|
-
var warned = false;
|
|
10046
|
-
var warn = function() {
|
|
10047
|
-
if (!warned) {
|
|
10048
|
-
warned = true;
|
|
10049
|
-
console.error("commmandKeyBinding has too many m's. use commandKeyBinding");
|
|
10050
|
-
}
|
|
10051
|
-
};
|
|
10052
|
-
this.__defineGetter__("commmandKeyBinding", function() {
|
|
10053
|
-
warn();
|
|
10054
|
-
return this.commandKeyBinding;
|
|
10055
|
-
});
|
|
10056
|
-
this.__defineSetter__("commmandKeyBinding", function(val) {
|
|
10057
|
-
warn();
|
|
10058
|
-
return this.commandKeyBinding = val;
|
|
10059
|
-
});
|
|
10060
|
-
} else {
|
|
10061
|
-
this.commmandKeyBinding = this.commandKeyBinding;
|
|
10062
|
-
}
|
|
10063
|
-
|
|
10064
10070
|
this.addCommands(config);
|
|
10065
|
-
|
|
10071
|
+
this.$singleCommand = true;
|
|
10072
|
+
}
|
|
10073
|
+
|
|
10074
|
+
function MultiHashHandler(config, platform) {
|
|
10075
|
+
HashHandler.call(this, config, platform);
|
|
10076
|
+
this.$singleCommand = false;
|
|
10077
|
+
}
|
|
10078
|
+
|
|
10079
|
+
MultiHashHandler.prototype = HashHandler.prototype;
|
|
10066
10080
|
|
|
10067
10081
|
(function() {
|
|
10082
|
+
|
|
10068
10083
|
|
|
10069
10084
|
this.addCommand = function(command) {
|
|
10070
10085
|
if (this.commands[command.name])
|
|
@@ -10076,34 +10091,73 @@ function HashHandler(config, platform) {
|
|
|
10076
10091
|
this._buildKeyHash(command);
|
|
10077
10092
|
};
|
|
10078
10093
|
|
|
10079
|
-
this.removeCommand = function(command) {
|
|
10080
|
-
var name = (typeof command === 'string' ? command : command.name);
|
|
10094
|
+
this.removeCommand = function(command, keepCommand) {
|
|
10095
|
+
var name = command && (typeof command === 'string' ? command : command.name);
|
|
10081
10096
|
command = this.commands[name];
|
|
10082
|
-
|
|
10097
|
+
if (!keepCommand)
|
|
10098
|
+
delete this.commands[name];
|
|
10083
10099
|
var ckb = this.commandKeyBinding;
|
|
10084
|
-
for (var
|
|
10085
|
-
|
|
10086
|
-
|
|
10087
|
-
|
|
10100
|
+
for (var keyId in ckb) {
|
|
10101
|
+
var cmdGroup = ckb[keyId];
|
|
10102
|
+
if (cmdGroup == command) {
|
|
10103
|
+
delete ckb[keyId];
|
|
10104
|
+
} else if (Array.isArray(cmdGroup)) {
|
|
10105
|
+
var i = cmdGroup.indexOf(command);
|
|
10106
|
+
if (i != -1) {
|
|
10107
|
+
cmdGroup.splice(i, 1);
|
|
10108
|
+
if (cmdGroup.length == 1)
|
|
10109
|
+
ckb[keyId] = cmdGroup[0];
|
|
10110
|
+
}
|
|
10088
10111
|
}
|
|
10089
10112
|
}
|
|
10090
10113
|
};
|
|
10091
10114
|
|
|
10092
|
-
this.bindKey = function(key, command) {
|
|
10093
|
-
if(
|
|
10115
|
+
this.bindKey = function(key, command, asDefault) {
|
|
10116
|
+
if (typeof key == "object")
|
|
10117
|
+
key = key[this.platform];
|
|
10118
|
+
if (!key)
|
|
10094
10119
|
return;
|
|
10095
|
-
if (typeof command == "function")
|
|
10096
|
-
this.addCommand({exec: command, bindKey: key, name: command.name || key});
|
|
10097
|
-
|
|
10098
|
-
}
|
|
10099
|
-
|
|
10100
|
-
var ckb = this.commandKeyBinding;
|
|
10120
|
+
if (typeof command == "function")
|
|
10121
|
+
return this.addCommand({exec: command, bindKey: key, name: command.name || key});
|
|
10122
|
+
|
|
10101
10123
|
key.split("|").forEach(function(keyPart) {
|
|
10102
|
-
var
|
|
10103
|
-
|
|
10104
|
-
|
|
10124
|
+
var chain = "";
|
|
10125
|
+
if (keyPart.indexOf(" ") != -1) {
|
|
10126
|
+
var parts = keyPart.split(/\s+/);
|
|
10127
|
+
keyPart = parts.pop();
|
|
10128
|
+
parts.forEach(function(keyPart) {
|
|
10129
|
+
var binding = this.parseKeys(keyPart);
|
|
10130
|
+
var id = KEY_MODS[binding.hashId] + binding.key;
|
|
10131
|
+
chain += (chain ? " " : "") + id;
|
|
10132
|
+
this._addCommandToBinding(chain, "chainKeys");
|
|
10133
|
+
}, this);
|
|
10134
|
+
chain += " ";
|
|
10135
|
+
}
|
|
10136
|
+
var binding = this.parseKeys(keyPart);
|
|
10137
|
+
var id = KEY_MODS[binding.hashId] + binding.key;
|
|
10138
|
+
this._addCommandToBinding(chain + id, command, asDefault);
|
|
10105
10139
|
}, this);
|
|
10106
10140
|
};
|
|
10141
|
+
|
|
10142
|
+
this._addCommandToBinding = function(keyId, command, asDefault) {
|
|
10143
|
+
var ckb = this.commandKeyBinding, i;
|
|
10144
|
+
if (!command) {
|
|
10145
|
+
delete ckb[keyId];
|
|
10146
|
+
} else if (!ckb[keyId] || this.$singleCommand) {
|
|
10147
|
+
ckb[keyId] = command;
|
|
10148
|
+
} else {
|
|
10149
|
+
if (!Array.isArray(ckb[keyId])) {
|
|
10150
|
+
ckb[keyId] = [ckb[keyId]];
|
|
10151
|
+
} else if ((i = ckb[keyId].indexOf(command)) != -1) {
|
|
10152
|
+
ckb[keyId].splice(i, 1);
|
|
10153
|
+
}
|
|
10154
|
+
|
|
10155
|
+
if (asDefault || command.isDefault)
|
|
10156
|
+
ckb[keyId].unshift(command);
|
|
10157
|
+
else
|
|
10158
|
+
ckb[keyId].push(command);
|
|
10159
|
+
}
|
|
10160
|
+
};
|
|
10107
10161
|
|
|
10108
10162
|
this.addCommands = function(commands) {
|
|
10109
10163
|
commands && Object.keys(commands).forEach(function(name) {
|
|
@@ -10140,17 +10194,9 @@ function HashHandler(config, platform) {
|
|
|
10140
10194
|
};
|
|
10141
10195
|
|
|
10142
10196
|
this._buildKeyHash = function(command) {
|
|
10143
|
-
|
|
10144
|
-
if (!binding)
|
|
10145
|
-
return;
|
|
10146
|
-
|
|
10147
|
-
var key = typeof binding == "string" ? binding: binding[this.platform];
|
|
10148
|
-
this.bindKey(key, command);
|
|
10197
|
+
this.bindKey(command.bindKey, command);
|
|
10149
10198
|
};
|
|
10150
10199
|
this.parseKeys = function(keys) {
|
|
10151
|
-
if (keys.indexOf(" ") != -1)
|
|
10152
|
-
keys = keys.split(/\s+/).pop();
|
|
10153
|
-
|
|
10154
10200
|
var parts = keys.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(x){return x});
|
|
10155
10201
|
var key = parts.pop();
|
|
10156
10202
|
|
|
@@ -10167,7 +10213,7 @@ function HashHandler(config, platform) {
|
|
|
10167
10213
|
var modifier = keyUtil.KEY_MODS[parts[i]];
|
|
10168
10214
|
if (modifier == null) {
|
|
10169
10215
|
if (typeof console != "undefined")
|
|
10170
|
-
|
|
10216
|
+
console.error("invalid modifier " + parts[i] + " in " + keys);
|
|
10171
10217
|
return false;
|
|
10172
10218
|
}
|
|
10173
10219
|
hashId |= modifier;
|
|
@@ -10176,44 +10222,66 @@ function HashHandler(config, platform) {
|
|
|
10176
10222
|
};
|
|
10177
10223
|
|
|
10178
10224
|
this.findKeyCommand = function findKeyCommand(hashId, keyString) {
|
|
10179
|
-
var
|
|
10180
|
-
return
|
|
10225
|
+
var key = KEY_MODS[hashId] + keyString;
|
|
10226
|
+
return this.commandKeyBinding[key];
|
|
10181
10227
|
};
|
|
10182
10228
|
|
|
10183
10229
|
this.handleKeyboard = function(data, hashId, keyString, keyCode) {
|
|
10184
|
-
|
|
10185
|
-
|
|
10186
|
-
|
|
10230
|
+
var key = KEY_MODS[hashId] + keyString;
|
|
10231
|
+
var command = this.commandKeyBinding[key];
|
|
10232
|
+
if (data.$keyChain) {
|
|
10233
|
+
data.$keyChain += " " + key;
|
|
10234
|
+
command = this.commandKeyBinding[data.$keyChain] || command;
|
|
10235
|
+
}
|
|
10236
|
+
|
|
10237
|
+
if (command) {
|
|
10238
|
+
if (command == "chainKeys" || command[command.length - 1] == "chainKeys") {
|
|
10239
|
+
data.$keyChain = data.$keyChain || key;
|
|
10240
|
+
return {command: "null"};
|
|
10241
|
+
}
|
|
10242
|
+
}
|
|
10243
|
+
|
|
10244
|
+
if (data.$keyChain && keyCode > 0)
|
|
10245
|
+
data.$keyChain = "";
|
|
10246
|
+
return {command: command};
|
|
10187
10247
|
};
|
|
10188
10248
|
|
|
10189
|
-
}).call(HashHandler.prototype)
|
|
10249
|
+
}).call(HashHandler.prototype);
|
|
10190
10250
|
|
|
10191
10251
|
exports.HashHandler = HashHandler;
|
|
10252
|
+
exports.MultiHashHandler = MultiHashHandler;
|
|
10192
10253
|
});
|
|
10193
10254
|
|
|
10194
10255
|
define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"], function(require, exports, module) {
|
|
10195
10256
|
"use strict";
|
|
10196
10257
|
|
|
10197
10258
|
var oop = require("../lib/oop");
|
|
10198
|
-
var
|
|
10259
|
+
var MultiHashHandler = require("../keyboard/hash_handler").MultiHashHandler;
|
|
10199
10260
|
var EventEmitter = require("../lib/event_emitter").EventEmitter;
|
|
10200
10261
|
|
|
10201
10262
|
var CommandManager = function(platform, commands) {
|
|
10202
|
-
|
|
10263
|
+
MultiHashHandler.call(this, commands, platform);
|
|
10203
10264
|
this.byName = this.commands;
|
|
10204
10265
|
this.setDefaultHandler("exec", function(e) {
|
|
10205
10266
|
return e.command.exec(e.editor, e.args || {});
|
|
10206
10267
|
});
|
|
10207
10268
|
};
|
|
10208
10269
|
|
|
10209
|
-
oop.inherits(CommandManager,
|
|
10270
|
+
oop.inherits(CommandManager, MultiHashHandler);
|
|
10210
10271
|
|
|
10211
10272
|
(function() {
|
|
10212
10273
|
|
|
10213
10274
|
oop.implement(this, EventEmitter);
|
|
10214
10275
|
|
|
10215
10276
|
this.exec = function(command, editor, args) {
|
|
10216
|
-
if (
|
|
10277
|
+
if (Array.isArray(command)) {
|
|
10278
|
+
for (var i = command.length; i--; ) {
|
|
10279
|
+
if (this.exec(command[i], editor, args)) return true;
|
|
10280
|
+
}
|
|
10281
|
+
return false;
|
|
10282
|
+
}
|
|
10283
|
+
|
|
10284
|
+
if (typeof command === "string")
|
|
10217
10285
|
command = this.commands[command];
|
|
10218
10286
|
|
|
10219
10287
|
if (!command)
|
|
@@ -10223,10 +10291,10 @@ oop.inherits(CommandManager, HashHandler);
|
|
|
10223
10291
|
return false;
|
|
10224
10292
|
|
|
10225
10293
|
var e = {editor: editor, command: command, args: args};
|
|
10226
|
-
|
|
10294
|
+
e.returnValue = this._emit("exec", e);
|
|
10227
10295
|
this._signal("afterExec", e);
|
|
10228
10296
|
|
|
10229
|
-
return
|
|
10297
|
+
return e.returnValue === false ? false : true;
|
|
10230
10298
|
};
|
|
10231
10299
|
|
|
10232
10300
|
this.toggleRecording = function(editor) {
|
|
@@ -11022,30 +11090,8 @@ var Editor = function(renderer, session) {
|
|
|
11022
11090
|
function last(a) {return a[a.length - 1]}
|
|
11023
11091
|
|
|
11024
11092
|
this.selections = [];
|
|
11025
|
-
this.commands.on("exec",
|
|
11026
|
-
|
|
11027
|
-
|
|
11028
|
-
var command = e.command;
|
|
11029
|
-
if (command.aceCommandGroup == "fileJump") {
|
|
11030
|
-
var prev = this.prevOp;
|
|
11031
|
-
if (!prev || prev.command.aceCommandGroup != "fileJump") {
|
|
11032
|
-
this.lastFileJumpPos = last(this.selections);
|
|
11033
|
-
}
|
|
11034
|
-
} else {
|
|
11035
|
-
this.lastFileJumpPos = null;
|
|
11036
|
-
}
|
|
11037
|
-
}.bind(this), true);
|
|
11038
|
-
|
|
11039
|
-
this.commands.on("afterExec", function(e) {
|
|
11040
|
-
var command = e.command;
|
|
11041
|
-
|
|
11042
|
-
if (command.aceCommandGroup == "fileJump") {
|
|
11043
|
-
if (this.lastFileJumpPos && !this.curOp.selectionChanged) {
|
|
11044
|
-
this.selection.fromJSON(this.lastFileJumpPos);
|
|
11045
|
-
}
|
|
11046
|
-
}
|
|
11047
|
-
this.endOperation(e);
|
|
11048
|
-
}.bind(this), true);
|
|
11093
|
+
this.commands.on("exec", this.startOperation.bind(this), true);
|
|
11094
|
+
this.commands.on("afterExec", this.endOperation.bind(this), true);
|
|
11049
11095
|
|
|
11050
11096
|
this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));
|
|
11051
11097
|
|
|
@@ -11079,19 +11125,15 @@ var Editor = function(renderer, session) {
|
|
|
11079
11125
|
args: commadEvent.args,
|
|
11080
11126
|
scrollTop: this.renderer.scrollTop
|
|
11081
11127
|
};
|
|
11082
|
-
|
|
11083
|
-
var command = this.curOp.command;
|
|
11084
|
-
if (command && command.scrollIntoView)
|
|
11085
|
-
this.$blockScrolling++;
|
|
11086
|
-
|
|
11087
|
-
this.selections.push(this.selection.toJSON());
|
|
11088
11128
|
};
|
|
11089
11129
|
|
|
11090
|
-
this.endOperation = function() {
|
|
11130
|
+
this.endOperation = function(e) {
|
|
11091
11131
|
if (this.curOp) {
|
|
11132
|
+
if (e && e.returnValue === false)
|
|
11133
|
+
return this.curOp = null;
|
|
11134
|
+
|
|
11092
11135
|
var command = this.curOp.command;
|
|
11093
11136
|
if (command && command.scrollIntoView) {
|
|
11094
|
-
this.$blockScrolling--;
|
|
11095
11137
|
switch (command.scrollIntoView) {
|
|
11096
11138
|
case "center":
|
|
11097
11139
|
this.renderer.scrollCursorIntoView(null, 0.5);
|
|
@@ -11153,19 +11195,19 @@ var Editor = function(renderer, session) {
|
|
|
11153
11195
|
else if (mergeableCommands.indexOf(e.command.name) !== -1)
|
|
11154
11196
|
this.sequenceStartTime = Date.now();
|
|
11155
11197
|
};
|
|
11156
|
-
this.setKeyboardHandler = function(keyboardHandler) {
|
|
11157
|
-
if (
|
|
11158
|
-
this.keyBinding.setKeyboardHandler(null);
|
|
11159
|
-
} else if (typeof keyboardHandler === "string") {
|
|
11198
|
+
this.setKeyboardHandler = function(keyboardHandler, cb) {
|
|
11199
|
+
if (keyboardHandler && typeof keyboardHandler === "string") {
|
|
11160
11200
|
this.$keybindingId = keyboardHandler;
|
|
11161
11201
|
var _self = this;
|
|
11162
11202
|
config.loadModule(["keybinding", keyboardHandler], function(module) {
|
|
11163
11203
|
if (_self.$keybindingId == keyboardHandler)
|
|
11164
11204
|
_self.keyBinding.setKeyboardHandler(module && module.handler);
|
|
11205
|
+
cb && cb();
|
|
11165
11206
|
});
|
|
11166
11207
|
} else {
|
|
11167
11208
|
this.$keybindingId = null;
|
|
11168
11209
|
this.keyBinding.setKeyboardHandler(keyboardHandler);
|
|
11210
|
+
cb && cb();
|
|
11169
11211
|
}
|
|
11170
11212
|
};
|
|
11171
11213
|
this.getKeyboardHandler = function() {
|
|
@@ -11431,21 +11473,21 @@ var Editor = function(renderer, session) {
|
|
|
11431
11473
|
this.blur = function() {
|
|
11432
11474
|
this.textInput.blur();
|
|
11433
11475
|
};
|
|
11434
|
-
this.onFocus = function() {
|
|
11476
|
+
this.onFocus = function(e) {
|
|
11435
11477
|
if (this.$isFocused)
|
|
11436
11478
|
return;
|
|
11437
11479
|
this.$isFocused = true;
|
|
11438
11480
|
this.renderer.showCursor();
|
|
11439
11481
|
this.renderer.visualizeFocus();
|
|
11440
|
-
this._emit("focus");
|
|
11482
|
+
this._emit("focus", e);
|
|
11441
11483
|
};
|
|
11442
|
-
this.onBlur = function() {
|
|
11484
|
+
this.onBlur = function(e) {
|
|
11443
11485
|
if (!this.$isFocused)
|
|
11444
11486
|
return;
|
|
11445
11487
|
this.$isFocused = false;
|
|
11446
11488
|
this.renderer.hideCursor();
|
|
11447
11489
|
this.renderer.visualizeBlur();
|
|
11448
|
-
this._emit("blur");
|
|
11490
|
+
this._emit("blur", e);
|
|
11449
11491
|
};
|
|
11450
11492
|
|
|
11451
11493
|
this.$cursorChange = function() {
|
|
@@ -11631,9 +11673,8 @@ var Editor = function(renderer, session) {
|
|
|
11631
11673
|
this.insert(e.text, true);
|
|
11632
11674
|
};
|
|
11633
11675
|
|
|
11634
|
-
|
|
11635
11676
|
this.execCommand = function(command, args) {
|
|
11636
|
-
this.commands.exec(command, this, args);
|
|
11677
|
+
return this.commands.exec(command, this, args);
|
|
11637
11678
|
};
|
|
11638
11679
|
this.insert = function(text, pasted) {
|
|
11639
11680
|
var session = this.session;
|
|
@@ -12663,7 +12704,9 @@ var Editor = function(renderer, session) {
|
|
|
12663
12704
|
rect = self.renderer.container.getBoundingClientRect();
|
|
12664
12705
|
});
|
|
12665
12706
|
var onAfterRender = this.renderer.on("afterRender", function() {
|
|
12666
|
-
if (shouldScroll && rect && self.isFocused()
|
|
12707
|
+
if (shouldScroll && rect && (self.isFocused()
|
|
12708
|
+
|| self.searchBox && self.searchBox.isFocused())
|
|
12709
|
+
) {
|
|
12667
12710
|
var renderer = self.renderer;
|
|
12668
12711
|
var pos = renderer.$cursorLayer.$pixelPos;
|
|
12669
12712
|
var config = renderer.layerConfig;
|
|
@@ -15377,23 +15420,24 @@ var VirtualRenderer = function(container, theme) {
|
|
|
15377
15420
|
this.scrollBarH.setVisible(horizScroll);
|
|
15378
15421
|
}
|
|
15379
15422
|
|
|
15380
|
-
|
|
15381
|
-
|
|
15382
|
-
|
|
15423
|
+
var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd
|
|
15424
|
+
? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd
|
|
15425
|
+
: 0;
|
|
15426
|
+
maxHeight += scrollPastEnd;
|
|
15427
|
+
|
|
15428
|
+
this.session.setScrollTop(Math.max(-this.scrollMargin.top,
|
|
15429
|
+
Math.min(this.scrollTop, maxHeight - size.scrollerHeight + this.scrollMargin.bottom)));
|
|
15430
|
+
|
|
15431
|
+
this.session.setScrollLeft(Math.max(-this.scrollMargin.left, Math.min(this.scrollLeft,
|
|
15432
|
+
longestLine + 2 * this.$padding - size.scrollerWidth + this.scrollMargin.right)));
|
|
15383
15433
|
|
|
15384
15434
|
var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||
|
|
15385
|
-
size.scrollerHeight - maxHeight < 0);
|
|
15435
|
+
size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop);
|
|
15386
15436
|
var vScrollChanged = this.$vScroll !== vScroll;
|
|
15387
15437
|
if (vScrollChanged) {
|
|
15388
15438
|
this.$vScroll = vScroll;
|
|
15389
15439
|
this.scrollBarV.setVisible(vScroll);
|
|
15390
15440
|
}
|
|
15391
|
-
|
|
15392
|
-
this.session.setScrollTop(Math.max(-this.scrollMargin.top,
|
|
15393
|
-
Math.min(this.scrollTop, maxHeight - size.scrollerHeight + this.scrollMargin.bottom)));
|
|
15394
|
-
|
|
15395
|
-
this.session.setScrollLeft(Math.max(-this.scrollMargin.left, Math.min(this.scrollLeft,
|
|
15396
|
-
longestLine + 2 * this.$padding - size.scrollerWidth + this.scrollMargin.right)));
|
|
15397
15441
|
|
|
15398
15442
|
var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;
|
|
15399
15443
|
var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));
|
|
@@ -16005,14 +16049,9 @@ var WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {
|
|
|
16005
16049
|
this.onMessage = function(e) {
|
|
16006
16050
|
var msg = e.data;
|
|
16007
16051
|
switch(msg.type) {
|
|
16008
|
-
case "log":
|
|
16009
|
-
window.console && console.log && console.log.apply(console, msg.data);
|
|
16010
|
-
break;
|
|
16011
|
-
|
|
16012
16052
|
case "event":
|
|
16013
16053
|
this._signal(msg.name, {data: msg.data});
|
|
16014
16054
|
break;
|
|
16015
|
-
|
|
16016
16055
|
case "call":
|
|
16017
16056
|
var callback = this.callbacks[msg.id];
|
|
16018
16057
|
if (callback) {
|
|
@@ -16020,8 +16059,18 @@ var WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {
|
|
|
16020
16059
|
delete this.callbacks[msg.id];
|
|
16021
16060
|
}
|
|
16022
16061
|
break;
|
|
16062
|
+
case "error":
|
|
16063
|
+
this.reportError(msg.data);
|
|
16064
|
+
break;
|
|
16065
|
+
case "log":
|
|
16066
|
+
window.console && console.log && console.log.apply(console, msg.data);
|
|
16067
|
+
break;
|
|
16023
16068
|
}
|
|
16024
16069
|
};
|
|
16070
|
+
|
|
16071
|
+
this.reportError = function(err) {
|
|
16072
|
+
window.console && console.error && console.error(err);
|
|
16073
|
+
};
|
|
16025
16074
|
|
|
16026
16075
|
this.$normalizePath = function(path) {
|
|
16027
16076
|
return net.qualifyURL(path);
|
|
@@ -16032,7 +16081,8 @@ var WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {
|
|
|
16032
16081
|
this.deltaQueue = null;
|
|
16033
16082
|
this.$worker.terminate();
|
|
16034
16083
|
this.$worker = null;
|
|
16035
|
-
this.$doc
|
|
16084
|
+
if (this.$doc)
|
|
16085
|
+
this.$doc.off("change", this.changeListener);
|
|
16036
16086
|
this.$doc = null;
|
|
16037
16087
|
};
|
|
16038
16088
|
|
|
@@ -17642,9 +17692,10 @@ function LineWidgets(session) {
|
|
|
17642
17692
|
this.renderWidgets = this.renderWidgets.bind(this);
|
|
17643
17693
|
this.measureWidgets = this.measureWidgets.bind(this);
|
|
17644
17694
|
this.session._changedWidgets = [];
|
|
17645
|
-
this
|
|
17695
|
+
this.$onChangeEditor = this.$onChangeEditor.bind(this);
|
|
17646
17696
|
|
|
17647
17697
|
this.session.on("change", this.updateOnChange);
|
|
17698
|
+
this.session.on("changeEditor", this.$onChangeEditor);
|
|
17648
17699
|
}
|
|
17649
17700
|
|
|
17650
17701
|
(function() {
|
|
@@ -17670,8 +17721,12 @@ function LineWidgets(session) {
|
|
|
17670
17721
|
return screenRows;
|
|
17671
17722
|
};
|
|
17672
17723
|
|
|
17724
|
+
this.$onChangeEditor = function(e) {
|
|
17725
|
+
this.attach(e.editor);
|
|
17726
|
+
};
|
|
17727
|
+
|
|
17673
17728
|
this.attach = function(editor) {
|
|
17674
|
-
if (editor.widgetManager && editor.widgetManager != this)
|
|
17729
|
+
if (editor && editor.widgetManager && editor.widgetManager != this)
|
|
17675
17730
|
editor.widgetManager.detach();
|
|
17676
17731
|
|
|
17677
17732
|
if (this.editor == editor)
|
|
@@ -17680,21 +17735,16 @@ function LineWidgets(session) {
|
|
|
17680
17735
|
this.detach();
|
|
17681
17736
|
this.editor = editor;
|
|
17682
17737
|
|
|
17683
|
-
|
|
17684
|
-
|
|
17685
|
-
|
|
17686
|
-
|
|
17687
|
-
|
|
17688
|
-
editor.renderer.on("afterRender", this.renderWidgets);
|
|
17738
|
+
if (editor) {
|
|
17739
|
+
editor.widgetManager = this;
|
|
17740
|
+
editor.renderer.on("beforeRender", this.measureWidgets);
|
|
17741
|
+
editor.renderer.on("afterRender", this.renderWidgets);
|
|
17742
|
+
}
|
|
17689
17743
|
};
|
|
17690
17744
|
this.detach = function(e) {
|
|
17691
|
-
if (e && e.session == this.session)
|
|
17692
|
-
return; // sometimes attach can be called before setSession
|
|
17693
17745
|
var editor = this.editor;
|
|
17694
17746
|
if (!editor)
|
|
17695
17747
|
return;
|
|
17696
|
-
|
|
17697
|
-
editor.off("changeSession", this.detach);
|
|
17698
17748
|
|
|
17699
17749
|
this.editor = null;
|
|
17700
17750
|
editor.widgetManager = null;
|
|
@@ -18142,7 +18192,6 @@ exports.createEditSession = function(text, mode) {
|
|
|
18142
18192
|
exports.EditSession = EditSession;
|
|
18143
18193
|
exports.UndoManager = UndoManager;
|
|
18144
18194
|
});
|
|
18145
|
-
;
|
|
18146
18195
|
(function() {
|
|
18147
18196
|
window.require(["ace/ace"], function(a) {
|
|
18148
18197
|
a && a.config.init(true);
|