MCPcopy Create free account
hub / github.com/breck7/scroll / makeChangeSingleDoc

Function makeChangeSingleDoc

external/.scrollLibs.js:7297–7332  ·  view source on GitHub ↗
(doc, change, selAfter, spans)

Source from the content-addressed store, hash-verified

7295 // More lower-level change function, handling only a single document
7296 // (not linked ones).
7297 function makeChangeSingleDoc(doc, change, selAfter, spans) {
7298 if (doc.cm && !doc.cm.curOp) {
7299 return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans)
7300 }
7301
7302 if (change.to.line < doc.first) {
7303 shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line))
7304 return
7305 }
7306 if (change.from.line > doc.lastLine()) {
7307 return
7308 }
7309
7310 // Clip the change to the size of this doc
7311 if (change.from.line < doc.first) {
7312 var shift = change.text.length - 1 - (doc.first - change.from.line)
7313 shiftDoc(doc, shift)
7314 change = { from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch), text: [lst(change.text)], origin: change.origin }
7315 }
7316 var last = doc.lastLine()
7317 if (change.to.line > last) {
7318 change = { from: change.from, to: Pos(last, getLine(doc, last).text.length), text: [change.text[0]], origin: change.origin }
7319 }
7320
7321 change.removed = getBetween(doc, change.from, change.to)
7322
7323 if (!selAfter) {
7324 selAfter = computeSelAfterChange(doc, change)
7325 }
7326 if (doc.cm) {
7327 makeChangeSingleDocInEditor(doc.cm, change, spans)
7328 } else {
7329 updateDoc(doc, change, spans)
7330 }
7331 setSelectionNoUndo(doc, selAfter, sel_dontScroll)
7332 }
7333
7334 // Handle the interaction of a change to a document with the editor
7335 // that this document is part of.

Callers 2

makeChangeInnerFunction · 0.85
loopFunction · 0.85

Calls 10

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

Tested by

no test coverage detected