MCPcopy Create free account
hub / github.com/ronreiter/interactive-tutorials / makeChangeSingleDoc

Function makeChangeSingleDoc

static/js/codemirror/codemirror.js:2185–2211  ·  view source on GitHub ↗
(doc, change, selAfter, spans)

Source from the content-addressed store, hash-verified

2183 }
2184
2185 function makeChangeSingleDoc(doc, change, selAfter, spans) {
2186 if (doc.cm && !doc.cm.curOp)
2187 return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans);
2188
2189 if (change.to.line < doc.first) {
2190 shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));
2191 return;
2192 }
2193 if (change.from.line > doc.lastLine()) return;
2194
2195 // Clip the change to the size of this doc
2196 if (change.from.line < doc.first) {
2197 var shift = change.text.length - 1 - (doc.first - change.from.line);
2198 shiftDoc(doc, shift);
2199 change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),
2200 text: [lst(change.text)], origin: change.origin};
2201 }
2202 var last = doc.lastLine();
2203 if (change.to.line > last) {
2204 change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),
2205 text: [change.text[0]], origin: change.origin};
2206 }
2207
2208 if (!selAfter) selAfter = computeSelAfterChange(doc, change, null);
2209 if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans, selAfter);
2210 else updateDoc(doc, change, spans, selAfter);
2211 }
2212
2213 function makeChangeSingleDocInEditor(cm, change, spans, selAfter) {
2214 var doc = cm.doc, display = cm.display, from = change.from, to = change.to;

Callers 2

makeChangeNoReadonlyFunction · 0.85
makeChangeFromHistoryFunction · 0.85

Calls 8

operationFunction · 0.85
shiftDocFunction · 0.85
PosFunction · 0.85
lstFunction · 0.85
getLineFunction · 0.85
computeSelAfterChangeFunction · 0.85
updateDocFunction · 0.85

Tested by

no test coverage detected