Skip to content

Commit 1490eaf

Browse files
committed
Update CodeMirror to version 5.17.1
1 parent b6ca864 commit 1490eaf

27 files changed

Lines changed: 350 additions & 151 deletions

public/vendor/codemirror/addon/display/rulers.js

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,26 @@
1111
})(function(CodeMirror) {
1212
"use strict";
1313

14-
CodeMirror.defineOption("rulers", false, function(cm, val, old) {
15-
if (old && old != CodeMirror.Init) {
16-
clearRulers(cm);
17-
cm.off("refresh", refreshRulers);
14+
CodeMirror.defineOption("rulers", false, function(cm, val) {
15+
if (cm.state.rulerDiv) {
16+
cm.display.lineSpace.removeChild(cm.state.rulerDiv)
17+
cm.state.rulerDiv = null
18+
cm.off("refresh", drawRulers)
1819
}
1920
if (val && val.length) {
20-
setRulers(cm);
21-
cm.on("refresh", refreshRulers);
21+
cm.state.rulerDiv = cm.display.lineSpace.insertBefore(document.createElement("div"), cm.display.cursorDiv)
22+
cm.state.rulerDiv.className = "CodeMirror-rulers"
23+
drawRulers(cm)
24+
cm.on("refresh", drawRulers)
2225
}
2326
});
2427

25-
function clearRulers(cm) {
26-
for (var i = cm.display.lineSpace.childNodes.length - 1; i >= 0; i--) {
27-
var node = cm.display.lineSpace.childNodes[i];
28-
if (/(^|\s)CodeMirror-ruler($|\s)/.test(node.className))
29-
node.parentNode.removeChild(node);
30-
}
31-
}
32-
33-
function setRulers(cm) {
28+
function drawRulers(cm) {
29+
cm.state.rulerDiv.textContent = ""
3430
var val = cm.getOption("rulers");
3531
var cw = cm.defaultCharWidth();
3632
var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), "div").left;
37-
var minH = cm.display.scroller.offsetHeight + 30;
33+
cm.state.rulerDiv.style.minHeight = (cm.display.scroller.offsetHeight + 30) + "px";
3834
for (var i = 0; i < val.length; i++) {
3935
var elt = document.createElement("div");
4036
elt.className = "CodeMirror-ruler";
@@ -49,15 +45,7 @@
4945
if (conf.width) elt.style.borderLeftWidth = conf.width;
5046
}
5147
elt.style.left = (left + col * cw) + "px";
52-
elt.style.top = "-50px";
53-
elt.style.bottom = "-20px";
54-
elt.style.minHeight = minH + "px";
55-
cm.display.lineSpace.insertBefore(elt, cm.display.cursorDiv);
48+
cm.state.rulerDiv.appendChild(elt)
5649
}
5750
}
58-
59-
function refreshRulers(cm) {
60-
clearRulers(cm);
61-
setRulers(cm);
62-
}
6351
});

public/vendor/codemirror/addon/edit/matchbrackets.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,10 @@
102102
}
103103

104104
CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
105-
if (old && old != CodeMirror.Init)
105+
if (old && old != CodeMirror.Init) {
106106
cm.off("cursorActivity", doMatchBrackets);
107+
if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
108+
}
107109
if (val) {
108110
cm.state.matchBrackets = typeof val == "object" ? val : {};
109111
cm.on("cursorActivity", doMatchBrackets);

public/vendor/codemirror/addon/fold/comment-fold.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ CodeMirror.registerGlobalHelper("fold", "comment", function(mode) {
2929
}
3030
if (pass == 1 && found < start.ch) return;
3131
if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1))) &&
32-
(lineText.slice(found - endToken.length, found) == endToken ||
32+
(found == 0 || lineText.slice(found - endToken.length, found) == endToken ||
3333
!/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found))))) {
3434
startCh = found + startToken.length;
3535
break;

public/vendor/codemirror/addon/fold/foldcode.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
});
5050
var myRange = cm.markText(range.from, range.to, {
5151
replacedWith: myWidget,
52-
clearOnEnter: true,
52+
clearOnEnter: getOption(cm, options, "clearOnEnter"),
5353
__isFold: true
5454
});
5555
myRange.on("clear", function(from, to) {
@@ -129,7 +129,8 @@
129129
rangeFinder: CodeMirror.fold.auto,
130130
widget: "\u2194",
131131
minFoldSize: 0,
132-
scanUp: false
132+
scanUp: false,
133+
clearOnEnter: true
133134
};
134135

135136
CodeMirror.defineOption("foldOptions", null);

public/vendor/codemirror/addon/fold/foldgutter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
}
5151

5252
function isFolded(cm, line) {
53-
var marks = cm.findMarksAt(Pos(line));
53+
var marks = cm.findMarks(Pos(line, 0), Pos(line + 1, 0));
5454
for (var i = 0; i < marks.length; ++i)
5555
if (marks[i].__isFold && marks[i].find().from.line == line) return marks[i];
5656
}

public/vendor/codemirror/addon/hint/show-hint.css

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
background: white;
1717
font-size: 90%;
1818
font-family: monospace;
19-
max-width: 19em;
2019

2120
max-height: 20em;
2221
overflow-y: auto;

public/vendor/codemirror/addon/hint/show-hint.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,8 @@
230230
(completion.options.container || document.body).appendChild(hints);
231231
var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH;
232232
var scrolls = hints.scrollHeight > hints.clientHeight + 1
233+
var startScroll = cm.getScrollInfo();
234+
233235
if (overlapY > 0) {
234236
var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top);
235237
if (curTop - height > 0) { // Fits above cursor
@@ -273,7 +275,6 @@
273275
cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); });
274276
}
275277

276-
var startScroll = cm.getScrollInfo();
277278
cm.on("scroll", this.onScroll = function() {
278279
var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();
279280
var newTop = top + startScroll.top - curScroll.top;

public/vendor/codemirror/addon/hint/sql-hint.js

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
QUERY_DIV: ";",
1919
ALIAS_KEYWORD: "AS"
2020
};
21-
var Pos = CodeMirror.Pos;
21+
var Pos = CodeMirror.Pos, cmpPos = CodeMirror.cmpPos;
2222

2323
function isArray(val) { return Object.prototype.toString.call(val) == "[object Array]" }
2424

@@ -178,15 +178,6 @@
178178
}
179179
}
180180

181-
function convertCurToNumber(cur) {
182-
// max characters of a line is 999,999.
183-
return cur.line + cur.ch / Math.pow(10, 6);
184-
}
185-
186-
function convertNumberToCur(num) {
187-
return Pos(Math.floor(num), +num.toString().split('.').pop());
188-
}
189-
190181
function findTableByAlias(alias, editor) {
191182
var doc = editor.doc;
192183
var fullQuery = doc.getValue();
@@ -209,15 +200,14 @@
209200
separator.push(Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).text.length));
210201

211202
//find valid range
212-
var prevItem = 0;
213-
var current = convertCurToNumber(editor.getCursor());
203+
var prevItem = null;
204+
var current = editor.getCursor()
214205
for (var i = 0; i < separator.length; i++) {
215-
var _v = convertCurToNumber(separator[i]);
216-
if (current > prevItem && current <= _v) {
217-
validRange = { start: convertNumberToCur(prevItem), end: convertNumberToCur(_v) };
206+
if ((prevItem == null || cmpPos(current, prevItem) > 0) && cmpPos(current, separator[i]) <= 0) {
207+
validRange = {start: prevItem, end: separator[i]};
218208
break;
219209
}
220-
prevItem = _v;
210+
prevItem = separator[i];
221211
}
222212

223213
var query = doc.getRange(validRange.start, validRange.end, false);

public/vendor/codemirror/addon/merge/merge.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,9 @@
284284
if (dv.copyButtons) clear(dv.copyButtons);
285285

286286
var vpEdit = dv.edit.getViewport(), vpOrig = dv.orig.getViewport();
287-
var sTopEdit = dv.edit.getScrollInfo().top, sTopOrig = dv.orig.getScrollInfo().top;
287+
var outerTop = dv.mv.wrap.getBoundingClientRect().top
288+
var sTopEdit = outerTop - dv.edit.getScrollerElement().getBoundingClientRect().top + dv.edit.getScrollInfo().top
289+
var sTopOrig = outerTop - dv.orig.getScrollerElement().getBoundingClientRect().top + dv.orig.getScrollInfo().top;
288290
for (var i = 0; i < dv.chunks.length; i++) {
289291
var ch = dv.chunks[i];
290292
if (ch.editFrom <= vpEdit.to && ch.editTo >= vpEdit.from &&

public/vendor/codemirror/addon/scroll/scrollpastend.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@
4040
if (cm.state.scrollPastEndPadding != padding) {
4141
cm.state.scrollPastEndPadding = padding;
4242
cm.display.lineSpace.parentNode.style.paddingBottom = padding;
43+
cm.off("refresh", updateBottomMargin);
4344
cm.setSize();
45+
cm.on("refresh", updateBottomMargin);
4446
}
4547
}
4648
});

0 commit comments

Comments
 (0)