mirror of
https://github.com/zadam/trilium.git
synced 2025-11-01 02:45:54 +01:00
codemirro 5.48.4
This commit is contained in:
@@ -2284,7 +2284,7 @@
|
||||
function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}
|
||||
function paddingH(display) {
|
||||
if (display.cachedPaddingH) { return display.cachedPaddingH }
|
||||
var e = removeChildrenAndAdd(display.measure, elt("pre", "x"));
|
||||
var e = removeChildrenAndAdd(display.measure, elt("pre", "x", "CodeMirror-line-like"));
|
||||
var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;
|
||||
var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};
|
||||
if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }
|
||||
@@ -2678,7 +2678,7 @@
|
||||
function PosWithInfo(line, ch, sticky, outside, xRel) {
|
||||
var pos = Pos(line, ch, sticky);
|
||||
pos.xRel = xRel;
|
||||
if (outside) { pos.outside = true; }
|
||||
if (outside) { pos.outside = outside; }
|
||||
return pos
|
||||
}
|
||||
|
||||
@@ -2687,16 +2687,16 @@
|
||||
function coordsChar(cm, x, y) {
|
||||
var doc = cm.doc;
|
||||
y += cm.display.viewOffset;
|
||||
if (y < 0) { return PosWithInfo(doc.first, 0, null, true, -1) }
|
||||
if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) }
|
||||
var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;
|
||||
if (lineN > last)
|
||||
{ return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, true, 1) }
|
||||
{ return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) }
|
||||
if (x < 0) { x = 0; }
|
||||
|
||||
var lineObj = getLine(doc, lineN);
|
||||
for (;;) {
|
||||
var found = coordsCharInner(cm, lineObj, lineN, x, y);
|
||||
var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 ? 1 : 0));
|
||||
var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0));
|
||||
if (!collapsed) { return found }
|
||||
var rangeEnd = collapsed.find(1);
|
||||
if (rangeEnd.line == lineN) { return rangeEnd }
|
||||
@@ -2784,7 +2784,7 @@
|
||||
// base X position
|
||||
var coords = cursorCoords(cm, Pos(lineNo$$1, ch, sticky), "line", lineObj, preparedMeasure);
|
||||
baseX = coords.left;
|
||||
outside = y < coords.top || y >= coords.bottom;
|
||||
outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;
|
||||
}
|
||||
|
||||
ch = skipExtendingChars(lineObj.text, ch, 1);
|
||||
@@ -2853,7 +2853,7 @@
|
||||
function textHeight(display) {
|
||||
if (display.cachedTextHeight != null) { return display.cachedTextHeight }
|
||||
if (measureText == null) {
|
||||
measureText = elt("pre");
|
||||
measureText = elt("pre", null, "CodeMirror-line-like");
|
||||
// Measure a bunch of lines, for browsers that compute
|
||||
// fractional heights.
|
||||
for (var i = 0; i < 49; ++i) {
|
||||
@@ -2873,7 +2873,7 @@
|
||||
function charWidth(display) {
|
||||
if (display.cachedCharWidth != null) { return display.cachedCharWidth }
|
||||
var anchor = elt("span", "xxxxxxxxxx");
|
||||
var pre = elt("pre", [anchor]);
|
||||
var pre = elt("pre", [anchor], "CodeMirror-line-like");
|
||||
removeChildrenAndAdd(display.measure, pre);
|
||||
var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;
|
||||
if (width > 2) { display.cachedCharWidth = width; }
|
||||
@@ -5147,8 +5147,15 @@
|
||||
var line = getLine(doc, pos.line);
|
||||
if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {
|
||||
var sp = line.markedSpans[i], m = sp.marker;
|
||||
if ((sp.from == null || (m.inclusiveLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&
|
||||
(sp.to == null || (m.inclusiveRight ? sp.to >= pos.ch : sp.to > pos.ch))) {
|
||||
|
||||
// Determine if we should prevent the cursor being placed to the left/right of an atomic marker
|
||||
// Historically this was determined using the inclusiveLeft/Right option, but the new way to control it
|
||||
// is with selectLeft/Right
|
||||
var preventCursorLeft = ("selectLeft" in m) ? !m.selectLeft : m.inclusiveLeft;
|
||||
var preventCursorRight = ("selectRight" in m) ? !m.selectRight : m.inclusiveRight;
|
||||
|
||||
if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&
|
||||
(sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) {
|
||||
if (mayClear) {
|
||||
signal(m, "beforeCursorEnter");
|
||||
if (m.explicitlyCleared) {
|
||||
@@ -5160,14 +5167,14 @@
|
||||
|
||||
if (oldPos) {
|
||||
var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);
|
||||
if (dir < 0 ? m.inclusiveRight : m.inclusiveLeft)
|
||||
if (dir < 0 ? preventCursorRight : preventCursorLeft)
|
||||
{ near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }
|
||||
if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))
|
||||
{ return skipAtomicInner(doc, near, pos, dir, mayClear) }
|
||||
}
|
||||
|
||||
var far = m.find(dir < 0 ? -1 : 1);
|
||||
if (dir < 0 ? m.inclusiveLeft : m.inclusiveRight)
|
||||
if (dir < 0 ? preventCursorLeft : preventCursorRight)
|
||||
{ far = movePos(doc, far, dir, far.line == pos.line ? line : null); }
|
||||
return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null
|
||||
}
|
||||
@@ -5396,6 +5403,9 @@
|
||||
if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }
|
||||
else { updateDoc(doc, change, spans); }
|
||||
setSelectionNoUndo(doc, selAfter, sel_dontScroll);
|
||||
|
||||
if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))
|
||||
{ doc.cantEdit = false; }
|
||||
}
|
||||
|
||||
// Handle the interaction of a change to a document with the editor
|
||||
@@ -7700,7 +7710,7 @@
|
||||
for (var i = newBreaks.length - 1; i >= 0; i--)
|
||||
{ replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }
|
||||
});
|
||||
option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g, function (cm, val, old) {
|
||||
option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g, function (cm, val, old) {
|
||||
cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g");
|
||||
if (old != Init) { cm.refresh(); }
|
||||
});
|
||||
@@ -9748,7 +9758,7 @@
|
||||
|
||||
addLegacyProps(CodeMirror);
|
||||
|
||||
CodeMirror.version = "5.47.0";
|
||||
CodeMirror.version = "5.48.4";
|
||||
|
||||
return CodeMirror;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user