(cm, from, to, lendiff)
| 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) { |
no test coverage detected