codemirror-rails 5.7 → 5.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/codemirror/rails/version.rb +2 -2
- data/vendor/assets/javascripts/codemirror.js +54 -33
- data/vendor/assets/javascripts/codemirror/addons/comment/comment.js +20 -7
- data/vendor/assets/javascripts/codemirror/addons/hint/show-hint.js +77 -23
- data/vendor/assets/javascripts/codemirror/addons/merge/merge.js +3 -6
- data/vendor/assets/javascripts/codemirror/addons/mode/multiplex.js +3 -3
- data/vendor/assets/javascripts/codemirror/addons/wrap/hardwrap.js +9 -6
- data/vendor/assets/javascripts/codemirror/keymaps/sublime.js +3 -1
- data/vendor/assets/javascripts/codemirror/modes/clike.js +140 -15
- data/vendor/assets/javascripts/codemirror/modes/coffeescript.js +0 -11
- data/vendor/assets/javascripts/codemirror/modes/css.js +2 -0
- data/vendor/assets/javascripts/codemirror/modes/cypher.js +3 -3
- data/vendor/assets/javascripts/codemirror/modes/dart.js +81 -1
- data/vendor/assets/javascripts/codemirror/modes/haxe.js +13 -4
- data/vendor/assets/javascripts/codemirror/modes/htmlmixed.js +2 -2
- data/vendor/assets/javascripts/codemirror/modes/javascript.js +20 -5
- data/vendor/assets/javascripts/codemirror/modes/markdown.js +58 -47
- data/vendor/assets/javascripts/codemirror/modes/nsis.js +63 -0
- data/vendor/assets/javascripts/codemirror/modes/rpm.js +17 -9
- data/vendor/assets/stylesheets/codemirror/themes/abcdef.css +1 -1
- data/vendor/assets/stylesheets/codemirror/themes/base16-dark.css +1 -1
- data/vendor/assets/stylesheets/codemirror/themes/base16-light.css +1 -1
- data/vendor/assets/stylesheets/codemirror/themes/bespin.css +34 -0
- data/vendor/assets/stylesheets/codemirror/themes/hopscotch.css +34 -0
- data/vendor/assets/stylesheets/codemirror/themes/isotope.css +34 -0
- data/vendor/assets/stylesheets/codemirror/themes/liquibyte.css +14 -14
- data/vendor/assets/stylesheets/codemirror/themes/railscasts.css +34 -0
- metadata +6 -2
- data/vendor/assets/javascripts/codemirror/modes/kotlin.js +0 -284
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a62ba8fcdd98556c524029b28df974c5a88b1601
|
4
|
+
data.tar.gz: fdf40baa6466b4723679d6f3b9834798a7cec253
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21c62cdaa7357fcaacfcbfe670f755e9bc7daafdbe75e05abf38d29e8aaed85cb50718b00129449bb6553fe59d99e38ffe95ba7d0db1370ad7cc6f11b645e407
|
7
|
+
data.tar.gz: b5dfde01f65c7b1d05dd7b9099dcb2fa2ee897ba6e7510a5efa4cb3e46c12248d44eefad1d59ccdd1b613d39554f44d7ec3ac08f35d1b64d37c3f6e9dd6cd998
|
@@ -21,27 +21,29 @@
|
|
21
21
|
|
22
22
|
// Kludges for bugs and behavior differences that can't be feature
|
23
23
|
// detected are enabled based on userAgent etc sniffing.
|
24
|
+
var userAgent = navigator.userAgent;
|
25
|
+
var platform = navigator.platform;
|
24
26
|
|
25
|
-
var gecko = /gecko\/\d/i.test(
|
26
|
-
var ie_upto10 = /MSIE \d/.test(
|
27
|
-
var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(
|
27
|
+
var gecko = /gecko\/\d/i.test(userAgent);
|
28
|
+
var ie_upto10 = /MSIE \d/.test(userAgent);
|
29
|
+
var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent);
|
28
30
|
var ie = ie_upto10 || ie_11up;
|
29
31
|
var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : ie_11up[1]);
|
30
|
-
var webkit = /WebKit\//.test(
|
31
|
-
var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(
|
32
|
-
var chrome = /Chrome\//.test(
|
33
|
-
var presto = /Opera\//.test(
|
32
|
+
var webkit = /WebKit\//.test(userAgent);
|
33
|
+
var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent);
|
34
|
+
var chrome = /Chrome\//.test(userAgent);
|
35
|
+
var presto = /Opera\//.test(userAgent);
|
34
36
|
var safari = /Apple Computer/.test(navigator.vendor);
|
35
|
-
var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(
|
36
|
-
var phantom = /PhantomJS/.test(
|
37
|
+
var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent);
|
38
|
+
var phantom = /PhantomJS/.test(userAgent);
|
37
39
|
|
38
|
-
var ios = /AppleWebKit/.test(
|
40
|
+
var ios = /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent);
|
39
41
|
// This is woefully incomplete. Suggestions for alternative methods welcome.
|
40
|
-
var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(
|
41
|
-
var mac = ios || /Mac/.test(
|
42
|
-
var windows = /win/i.test(
|
42
|
+
var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);
|
43
|
+
var mac = ios || /Mac/.test(platform);
|
44
|
+
var windows = /win/i.test(platform);
|
43
45
|
|
44
|
-
var presto_version = presto &&
|
46
|
+
var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/);
|
45
47
|
if (presto_version) presto_version = Number(presto_version[1]);
|
46
48
|
if (presto_version && presto_version >= 15) { presto = false; webkit = true; }
|
47
49
|
// Some browsers use the wrong event properties to signal cmd/ctrl on OS X
|
@@ -3821,9 +3823,15 @@
|
|
3821
3823
|
if (files && files.length && window.FileReader && window.File) {
|
3822
3824
|
var n = files.length, text = Array(n), read = 0;
|
3823
3825
|
var loadFile = function(file, i) {
|
3826
|
+
if (cm.options.allowDropFileTypes &&
|
3827
|
+
indexOf(cm.options.allowDropFileTypes, file.type) == -1)
|
3828
|
+
return;
|
3829
|
+
|
3824
3830
|
var reader = new FileReader;
|
3825
3831
|
reader.onload = operation(cm, function() {
|
3826
|
-
|
3832
|
+
var content = reader.result;
|
3833
|
+
if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) content = "";
|
3834
|
+
text[i] = content;
|
3827
3835
|
if (++read == n) {
|
3828
3836
|
pos = clipPos(cm.doc, pos);
|
3829
3837
|
var change = {from: pos, to: pos,
|
@@ -3965,8 +3973,9 @@
|
|
3965
3973
|
|
3966
3974
|
var display = cm.display, scroll = display.scroller;
|
3967
3975
|
// Quit if there's nothing to scroll here
|
3968
|
-
|
3969
|
-
|
3976
|
+
var canScrollX = scroll.scrollWidth > scroll.clientWidth;
|
3977
|
+
var canScrollY = scroll.scrollHeight > scroll.clientHeight;
|
3978
|
+
if (!(dx && canScrollX || dy && canScrollY)) return;
|
3970
3979
|
|
3971
3980
|
// Webkit browsers on OS X abort momentum scrolls when the target
|
3972
3981
|
// of the scroll event is removed from the scrollable element.
|
@@ -3990,10 +3999,15 @@
|
|
3990
3999
|
// scrolling entirely here. It'll be slightly off from native, but
|
3991
4000
|
// better than glitching out.
|
3992
4001
|
if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
|
3993
|
-
if (dy)
|
4002
|
+
if (dy && canScrollY)
|
3994
4003
|
setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight)));
|
3995
4004
|
setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));
|
3996
|
-
|
4005
|
+
// Only prevent default scrolling if vertical scrolling is
|
4006
|
+
// actually possible. Otherwise, it causes vertical scroll
|
4007
|
+
// jitter on OSX trackpads when deltaX is small and deltaY
|
4008
|
+
// is large (issue #3579)
|
4009
|
+
if (!dy || (dy && canScrollY))
|
4010
|
+
e_preventDefault(e);
|
3997
4011
|
display.wheelStartX = null; // Abort measurement, if in progress
|
3998
4012
|
return;
|
3999
4013
|
}
|
@@ -4221,6 +4235,7 @@
|
|
4221
4235
|
// right-click take effect on it.
|
4222
4236
|
function onContextMenu(cm, e) {
|
4223
4237
|
if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) return;
|
4238
|
+
if (signalDOMEvent(cm, e, "contextmenu")) return;
|
4224
4239
|
cm.display.input.onContextMenu(e);
|
4225
4240
|
}
|
4226
4241
|
|
@@ -5404,6 +5419,7 @@
|
|
5404
5419
|
});
|
5405
5420
|
option("disableInput", false, function(cm, val) {if (!val) cm.display.input.reset();}, true);
|
5406
5421
|
option("dragDrop", true, dragDropChanged);
|
5422
|
+
option("allowDropFileTypes", null);
|
5407
5423
|
|
5408
5424
|
option("cursorBlinkRate", 530);
|
5409
5425
|
option("cursorScrollMargin", 0);
|
@@ -5708,8 +5724,8 @@
|
|
5708
5724
|
var range = cm.listSelections()[i];
|
5709
5725
|
cm.replaceRange(cm.doc.lineSeparator(), range.anchor, range.head, "+input");
|
5710
5726
|
cm.indentLine(range.from().line + 1, null, true);
|
5711
|
-
ensureCursorVisible(cm);
|
5712
5727
|
}
|
5728
|
+
ensureCursorVisible(cm);
|
5713
5729
|
});
|
5714
5730
|
},
|
5715
5731
|
toggleOverwrite: function(cm) {cm.toggleOverwrite();}
|
@@ -7542,7 +7558,7 @@
|
|
7542
7558
|
removeLineWidget: function(widget) { widget.clear(); },
|
7543
7559
|
|
7544
7560
|
markText: function(from, to, options) {
|
7545
|
-
return markText(this, clipPos(this, from), clipPos(this, to), options, "range");
|
7561
|
+
return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range");
|
7546
7562
|
},
|
7547
7563
|
setBookmark: function(pos, options) {
|
7548
7564
|
var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),
|
@@ -8103,24 +8119,30 @@
|
|
8103
8119
|
}
|
8104
8120
|
};
|
8105
8121
|
|
8122
|
+
var noHandlers = []
|
8123
|
+
function getHandlers(emitter, type, copy) {
|
8124
|
+
var arr = emitter._handlers && emitter._handlers[type]
|
8125
|
+
if (copy) return arr && arr.length > 0 ? arr.slice() : noHandlers
|
8126
|
+
else return arr || noHandlers
|
8127
|
+
}
|
8128
|
+
|
8106
8129
|
var off = CodeMirror.off = function(emitter, type, f) {
|
8107
8130
|
if (emitter.removeEventListener)
|
8108
8131
|
emitter.removeEventListener(type, f, false);
|
8109
8132
|
else if (emitter.detachEvent)
|
8110
8133
|
emitter.detachEvent("on" + type, f);
|
8111
8134
|
else {
|
8112
|
-
var
|
8113
|
-
|
8114
|
-
|
8115
|
-
if (arr[i] == f) { arr.splice(i, 1); break; }
|
8135
|
+
var handlers = getHandlers(emitter, type, false)
|
8136
|
+
for (var i = 0; i < handlers.length; ++i)
|
8137
|
+
if (handlers[i] == f) { handlers.splice(i, 1); break; }
|
8116
8138
|
}
|
8117
8139
|
};
|
8118
8140
|
|
8119
8141
|
var signal = CodeMirror.signal = function(emitter, type /*, values...*/) {
|
8120
|
-
var
|
8121
|
-
if (!
|
8142
|
+
var handlers = getHandlers(emitter, type, true)
|
8143
|
+
if (!handlers.length) return;
|
8122
8144
|
var args = Array.prototype.slice.call(arguments, 2);
|
8123
|
-
for (var i = 0; i <
|
8145
|
+
for (var i = 0; i < handlers.length; ++i) handlers[i].apply(null, args);
|
8124
8146
|
};
|
8125
8147
|
|
8126
8148
|
var orphanDelayedCallbacks = null;
|
@@ -8133,8 +8155,8 @@
|
|
8133
8155
|
// them to be executed when the last operation ends, or, if no
|
8134
8156
|
// operation is active, when a timeout fires.
|
8135
8157
|
function signalLater(emitter, type /*, values...*/) {
|
8136
|
-
var arr = emitter
|
8137
|
-
if (!arr) return;
|
8158
|
+
var arr = getHandlers(emitter, type, false)
|
8159
|
+
if (!arr.length) return;
|
8138
8160
|
var args = Array.prototype.slice.call(arguments, 2), list;
|
8139
8161
|
if (operationGroup) {
|
8140
8162
|
list = operationGroup.delayedCallbacks;
|
@@ -8174,8 +8196,7 @@
|
|
8174
8196
|
}
|
8175
8197
|
|
8176
8198
|
function hasHandler(emitter, type) {
|
8177
|
-
|
8178
|
-
return arr && arr.length > 0;
|
8199
|
+
return getHandlers(emitter, type).length > 0
|
8179
8200
|
}
|
8180
8201
|
|
8181
8202
|
// Add on and off methods to a constructor's prototype, to make
|
@@ -8829,7 +8850,7 @@
|
|
8829
8850
|
|
8830
8851
|
// THE END
|
8831
8852
|
|
8832
|
-
CodeMirror.version = "5.
|
8853
|
+
CodeMirror.version = "5.8.0";
|
8833
8854
|
|
8834
8855
|
return CodeMirror;
|
8835
8856
|
});
|
@@ -21,22 +21,28 @@
|
|
21
21
|
}
|
22
22
|
|
23
23
|
CodeMirror.commands.toggleComment = function(cm) {
|
24
|
-
|
24
|
+
cm.toggleComment();
|
25
|
+
};
|
26
|
+
|
27
|
+
CodeMirror.defineExtension("toggleComment", function(options) {
|
28
|
+
if (!options) options = noOptions;
|
29
|
+
var cm = this;
|
30
|
+
var minLine = Infinity, ranges = this.listSelections(), mode = null;
|
25
31
|
for (var i = ranges.length - 1; i >= 0; i--) {
|
26
32
|
var from = ranges[i].from(), to = ranges[i].to();
|
27
33
|
if (from.line >= minLine) continue;
|
28
34
|
if (to.line >= minLine) to = Pos(minLine, 0);
|
29
35
|
minLine = from.line;
|
30
36
|
if (mode == null) {
|
31
|
-
if (cm.uncomment(from, to)) mode = "un";
|
32
|
-
else { cm.lineComment(from, to); mode = "line"; }
|
37
|
+
if (cm.uncomment(from, to, options)) mode = "un";
|
38
|
+
else { cm.lineComment(from, to, options); mode = "line"; }
|
33
39
|
} else if (mode == "un") {
|
34
|
-
cm.uncomment(from, to);
|
40
|
+
cm.uncomment(from, to, options);
|
35
41
|
} else {
|
36
|
-
cm.lineComment(from, to);
|
42
|
+
cm.lineComment(from, to, options);
|
37
43
|
}
|
38
44
|
}
|
39
|
-
};
|
45
|
+
});
|
40
46
|
|
41
47
|
CodeMirror.defineExtension("lineComment", function(from, to, options) {
|
42
48
|
if (!options) options = noOptions;
|
@@ -57,7 +63,14 @@
|
|
57
63
|
|
58
64
|
self.operation(function() {
|
59
65
|
if (options.indent) {
|
60
|
-
var baseString =
|
66
|
+
var baseString = null;
|
67
|
+
for (var i = from.line; i < end; ++i) {
|
68
|
+
var line = self.getLine(i);
|
69
|
+
var whitespace = line.slice(0, firstNonWS(line));
|
70
|
+
if (baseString == null || baseString.length > whitespace.length) {
|
71
|
+
baseString = whitespace;
|
72
|
+
}
|
73
|
+
}
|
61
74
|
for (var i = from.line; i < end; ++i) {
|
62
75
|
var line = self.getLine(i), cut = baseString.length;
|
63
76
|
if (!blankLines && !nonWS.test(line)) continue;
|
@@ -25,8 +25,18 @@
|
|
25
25
|
};
|
26
26
|
|
27
27
|
CodeMirror.defineExtension("showHint", function(options) {
|
28
|
-
|
29
|
-
|
28
|
+
options = parseOptions(this, this.getCursor("start"), options);
|
29
|
+
var selections = this.listSelections()
|
30
|
+
if (selections.length > 1) return;
|
31
|
+
// By default, don't allow completion when something is selected.
|
32
|
+
// A hint function can have a `supportsSelection` property to
|
33
|
+
// indicate that it can handle selections.
|
34
|
+
if (this.somethingSelected()) {
|
35
|
+
if (!options.hint.supportsSelection) return;
|
36
|
+
// Don't try with cross-line selections
|
37
|
+
for (var i = 0; i < selections.length; i++)
|
38
|
+
if (selections[i].head.line != selections[i].anchor.line) return;
|
39
|
+
}
|
30
40
|
|
31
41
|
if (this.state.completionActive) this.state.completionActive.close();
|
32
42
|
var completion = this.state.completionActive = new Completion(this, options);
|
@@ -38,12 +48,12 @@
|
|
38
48
|
|
39
49
|
function Completion(cm, options) {
|
40
50
|
this.cm = cm;
|
41
|
-
this.options =
|
51
|
+
this.options = options;
|
42
52
|
this.widget = null;
|
43
53
|
this.debounce = 0;
|
44
54
|
this.tick = 0;
|
45
|
-
this.startPos = this.cm.getCursor();
|
46
|
-
this.startLen = this.cm.getLine(this.startPos.line).length;
|
55
|
+
this.startPos = this.cm.getCursor("start");
|
56
|
+
this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length;
|
47
57
|
|
48
58
|
var self = this;
|
49
59
|
cm.on("cursorActivity", this.activityFunc = function() { self.cursorActivity(); });
|
@@ -124,20 +134,21 @@
|
|
124
134
|
CodeMirror.signal(data, "shown");
|
125
135
|
}
|
126
136
|
}
|
127
|
-
},
|
128
|
-
|
129
|
-
buildOptions: function(options) {
|
130
|
-
var editor = this.cm.options.hintOptions;
|
131
|
-
var out = {};
|
132
|
-
for (var prop in defaultOptions) out[prop] = defaultOptions[prop];
|
133
|
-
if (editor) for (var prop in editor)
|
134
|
-
if (editor[prop] !== undefined) out[prop] = editor[prop];
|
135
|
-
if (options) for (var prop in options)
|
136
|
-
if (options[prop] !== undefined) out[prop] = options[prop];
|
137
|
-
return out;
|
138
137
|
}
|
139
138
|
};
|
140
139
|
|
140
|
+
function parseOptions(cm, pos, options) {
|
141
|
+
var editor = cm.options.hintOptions;
|
142
|
+
var out = {};
|
143
|
+
for (var prop in defaultOptions) out[prop] = defaultOptions[prop];
|
144
|
+
if (editor) for (var prop in editor)
|
145
|
+
if (editor[prop] !== undefined) out[prop] = editor[prop];
|
146
|
+
if (options) for (var prop in options)
|
147
|
+
if (options[prop] !== undefined) out[prop] = options[prop];
|
148
|
+
if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos)
|
149
|
+
return out;
|
150
|
+
}
|
151
|
+
|
141
152
|
function getText(completion) {
|
142
153
|
if (typeof completion == "string") return completion;
|
143
154
|
else return completion.text;
|
@@ -336,18 +347,61 @@
|
|
336
347
|
}
|
337
348
|
};
|
338
349
|
|
339
|
-
|
340
|
-
|
350
|
+
function applicableHelpers(cm, helpers) {
|
351
|
+
if (!cm.somethingSelected()) return helpers
|
352
|
+
var result = []
|
353
|
+
for (var i = 0; i < helpers.length; i++)
|
354
|
+
if (helpers[i].supportsSelection) result.push(helpers[i])
|
355
|
+
return result
|
356
|
+
}
|
357
|
+
|
358
|
+
function resolveAutoHints(cm, pos) {
|
359
|
+
var helpers = cm.getHelpers(pos, "hint"), words
|
341
360
|
if (helpers.length) {
|
342
|
-
|
343
|
-
|
344
|
-
|
361
|
+
var async = false, resolved
|
362
|
+
for (var i = 0; i < helpers.length; i++) if (helpers[i].async) async = true
|
363
|
+
if (async) {
|
364
|
+
resolved = function(cm, callback, options) {
|
365
|
+
var app = applicableHelpers(cm, helpers)
|
366
|
+
function run(i, result) {
|
367
|
+
if (i == app.length) return callback(null)
|
368
|
+
var helper = app[i]
|
369
|
+
if (helper.async) {
|
370
|
+
helper(cm, function(result) {
|
371
|
+
if (result) callback(result)
|
372
|
+
else run(i + 1)
|
373
|
+
}, options)
|
374
|
+
} else {
|
375
|
+
var result = helper(cm, options)
|
376
|
+
if (result) callback(result)
|
377
|
+
else run(i + 1)
|
378
|
+
}
|
379
|
+
}
|
380
|
+
run(0)
|
381
|
+
}
|
382
|
+
resolved.async = true
|
383
|
+
} else {
|
384
|
+
resolved = function(cm, options) {
|
385
|
+
var app = applicableHelpers(cm, helpers)
|
386
|
+
for (var i = 0; i < app.length; i++) {
|
387
|
+
var cur = app[i](cm, options)
|
388
|
+
if (cur && cur.list.length) return cur
|
389
|
+
}
|
390
|
+
}
|
345
391
|
}
|
392
|
+
resolved.supportsSelection = true
|
393
|
+
return resolved
|
346
394
|
} else if (words = cm.getHelper(cm.getCursor(), "hintWords")) {
|
347
|
-
|
395
|
+
return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) }
|
348
396
|
} else if (CodeMirror.hint.anyword) {
|
349
|
-
return CodeMirror.hint.anyword(cm, options)
|
397
|
+
return function(cm, options) { return CodeMirror.hint.anyword(cm, options) }
|
398
|
+
} else {
|
399
|
+
return function() {}
|
350
400
|
}
|
401
|
+
}
|
402
|
+
|
403
|
+
CodeMirror.registerHelper("hint", "auto", {
|
404
|
+
resolve: resolveAutoHints
|
351
405
|
});
|
352
406
|
|
353
407
|
CodeMirror.registerHelper("hint", "fromList", function(cm, options) {
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
(function(mod) {
|
7
7
|
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
8
|
-
mod(require("../../lib/codemirror")
|
8
|
+
mod(require("../../lib/codemirror")); // Note non-packaged dependency diff_match_patch
|
9
9
|
else if (typeof define == "function" && define.amd) // AMD
|
10
10
|
define(["../../lib/codemirror", "diff_match_patch"], mod);
|
11
11
|
else // Plain browser env
|
@@ -471,13 +471,10 @@
|
|
471
471
|
if (left) left.init(leftPane, origLeft, options);
|
472
472
|
if (right) right.init(rightPane, origRight, options);
|
473
473
|
|
474
|
-
if (options.collapseIdentical)
|
475
|
-
updating = true;
|
474
|
+
if (options.collapseIdentical)
|
476
475
|
this.editor().operation(function() {
|
477
476
|
collapseIdenticalStretches(self, options.collapseIdentical);
|
478
477
|
});
|
479
|
-
updating = false;
|
480
|
-
}
|
481
478
|
if (options.connect == "align") {
|
482
479
|
this.aligners = [];
|
483
480
|
alignChunks(this.left || this.right, true);
|
@@ -640,7 +637,7 @@
|
|
640
637
|
mark.clear();
|
641
638
|
cm.removeLineClass(from, "wrap", "CodeMirror-merge-collapsed-line");
|
642
639
|
}
|
643
|
-
|
640
|
+
CodeMirror.on(widget, "click", clear);
|
644
641
|
return {mark: mark, clear: clear};
|
645
642
|
}
|
646
643
|
|
@@ -51,7 +51,7 @@ CodeMirror.multiplexingMode = function(outer /*, others */) {
|
|
51
51
|
if (!other.parseDelimiters) stream.match(other.open);
|
52
52
|
state.innerActive = other;
|
53
53
|
state.inner = CodeMirror.startState(other.mode, outer.indent ? outer.indent(state.outer, "") : 0);
|
54
|
-
return other.delimStyle;
|
54
|
+
return other.delimStyle && (other.delimStyle + " " + other.delimStyle + "-open");
|
55
55
|
} else if (found != -1 && found < cutOff) {
|
56
56
|
cutOff = found;
|
57
57
|
}
|
@@ -70,7 +70,7 @@ CodeMirror.multiplexingMode = function(outer /*, others */) {
|
|
70
70
|
if (found == stream.pos && !curInner.parseDelimiters) {
|
71
71
|
stream.match(curInner.close);
|
72
72
|
state.innerActive = state.inner = null;
|
73
|
-
return curInner.delimStyle;
|
73
|
+
return curInner.delimStyle && (curInner.delimStyle + " " + curInner.delimStyle + "-close");
|
74
74
|
}
|
75
75
|
if (found > -1) stream.string = oldContent.slice(0, found);
|
76
76
|
var innerToken = curInner.mode.token(stream, state.inner);
|
@@ -80,7 +80,7 @@ CodeMirror.multiplexingMode = function(outer /*, others */) {
|
|
80
80
|
state.innerActive = state.inner = null;
|
81
81
|
|
82
82
|
if (curInner.innerStyle) {
|
83
|
-
if (innerToken) innerToken = innerToken +
|
83
|
+
if (innerToken) innerToken = innerToken + " " + curInner.innerStyle;
|
84
84
|
else innerToken = curInner.innerStyle;
|
85
85
|
}
|
86
86
|
|