MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / makeChangeSingleDoc

Function makeChangeSingleDoc

lib/web/CodeMirror/src/model/changes.js:176–208  ·  view source on GitHub ↗
(doc, change, selAfter, spans)

Source from the content-addressed store, hash-verified

174// More lower-level change function, handling only a single document
175// (not linked ones).
176function makeChangeSingleDoc(doc, change, selAfter, spans) {
177 if (doc.cm && !doc.cm.curOp)
178 return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans)
179
180 if (change.to.line < doc.first) {
181 shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line))
182 return
183 }
184 if (change.from.line > doc.lastLine()) return
185
186 // Clip the change to the size of this doc
187 if (change.from.line < doc.first) {
188 let shift = change.text.length - 1 - (doc.first - change.from.line)
189 shiftDoc(doc, shift)
190 change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),
191 text: [lst(change.text)], origin: change.origin}
192 }
193 let last = doc.lastLine()
194 if (change.to.line > last) {
195 change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),
196 text: [change.text[0]], origin: change.origin}
197 }
198
199 change.removed = getBetween(doc, change.from, change.to)
200
201 if (!selAfter) selAfter = computeSelAfterChange(doc, change)
202 if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans)
203 else updateDoc(doc, change, spans)
204 setSelectionNoUndo(doc, selAfter, sel_dontScroll)
205
206 if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))
207 doc.cantEdit = false
208}
209
210// Handle the interaction of a change to a document with the editor
211// that this document is part of.

Callers 2

makeChangeInnerFunction · 0.70
makeChangeFromHistoryFunction · 0.70

Calls 11

operationFunction · 0.90
PosFunction · 0.90
lstFunction · 0.90
getLineFunction · 0.90
getBetweenFunction · 0.90
computeSelAfterChangeFunction · 0.90
updateDocFunction · 0.90
setSelectionNoUndoFunction · 0.90
skipAtomicFunction · 0.90
shiftDocFunction · 0.70

Tested by

no test coverage detected