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

Function regChange

external/.scrollLibs.js:5580–5653  ·  view source on GitHub ↗
(cm, from, to, lendiff)

Source from the content-addressed store, hash-verified

5578 // lines are divided into visual lines. regLineChange (below)
5579 // registers single-line changes.
5580 function regChange(cm, from, to, lendiff) {
5581 if (from == null) {
5582 from = cm.doc.first
5583 }
5584 if (to == null) {
5585 to = cm.doc.first + cm.doc.size
5586 }
5587 if (!lendiff) {
5588 lendiff = 0
5589 }
5590
5591 var display = cm.display
5592 if (lendiff && to < display.viewTo && (display.updateLineNumbers == null || display.updateLineNumbers > from)) {
5593 display.updateLineNumbers = from
5594 }
5595
5596 cm.curOp.viewChanged = true
5597
5598 if (from >= display.viewTo) {
5599 // Change after
5600 if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo) {
5601 resetView(cm)
5602 }
5603 } else if (to <= display.viewFrom) {
5604 // Change before
5605 if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {
5606 resetView(cm)
5607 } else {
5608 display.viewFrom += lendiff
5609 display.viewTo += lendiff
5610 }
5611 } else if (from <= display.viewFrom && to >= display.viewTo) {
5612 // Full overlap
5613 resetView(cm)
5614 } else if (from <= display.viewFrom) {
5615 // Top overlap
5616 var cut = viewCuttingPoint(cm, to, to + lendiff, 1)
5617 if (cut) {
5618 display.view = display.view.slice(cut.index)
5619 display.viewFrom = cut.lineN
5620 display.viewTo += lendiff
5621 } else {
5622 resetView(cm)
5623 }
5624 } else if (to >= display.viewTo) {
5625 // Bottom overlap
5626 var cut$1 = viewCuttingPoint(cm, from, from, -1)
5627 if (cut$1) {
5628 display.view = display.view.slice(0, cut$1.index)
5629 display.viewTo = cut$1.lineN
5630 } else {
5631 resetView(cm)
5632 }
5633 } else {
5634 // Gap in the middle
5635 var cutTop = viewCuttingPoint(cm, from, from, -1)
5636 var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1)
5637 if (cutTop && cutBot) {

Callers 11

resetModeStateFunction · 0.85
attachDocFunction · 0.85
directionChangedFunction · 0.85
shiftDocFunction · 0.85
.scrollLibs.jsFile · 0.85
markTextFunction · 0.85
defineOptionsFunction · 0.85
guttersChangedFunction · 0.85
wrappingChangedFunction · 0.85
addEditorMethodsFunction · 0.85

Calls 7

visualLineNoFunction · 0.85
resetViewFunction · 0.85
visualLineEndNoFunction · 0.85
viewCuttingPointFunction · 0.85
buildViewArrayFunction · 0.85
sliceMethod · 0.80
concatMethod · 0.80

Tested by

no test coverage detected