MCPcopy Create free account
hub / github.com/TruthHun/BookStack / getChunks

Function getChunks

static/editor.md/lib/codemirror/addon/merge/merge.js:565–590  ·  view source on GitHub ↗
(diff)

Source from the content-addressed store, hash-verified

563 }
564
565 function getChunks(diff) {
566 var chunks = [];
567 var startEdit = 0, startOrig = 0;
568 var edit = Pos(0, 0), orig = Pos(0, 0);
569 for (var i = 0; i < diff.length; ++i) {
570 var part = diff[i], tp = part[0];
571 if (tp == DIFF_EQUAL) {
572 var startOff = startOfLineClean(diff, i) ? 0 : 1;
573 var cleanFromEdit = edit.line + startOff, cleanFromOrig = orig.line + startOff;
574 moveOver(edit, part[1], null, orig);
575 var endOff = endOfLineClean(diff, i) ? 1 : 0;
576 var cleanToEdit = edit.line + endOff, cleanToOrig = orig.line + endOff;
577 if (cleanToEdit > cleanFromEdit) {
578 if (i) chunks.push({origFrom: startOrig, origTo: cleanFromOrig,
579 editFrom: startEdit, editTo: cleanFromEdit});
580 startEdit = cleanToEdit; startOrig = cleanToOrig;
581 }
582 } else {
583 moveOver(tp == DIFF_INSERT ? edit : orig, part[1]);
584 }
585 }
586 if (startEdit <= edit.line || startOrig <= orig.line)
587 chunks.push({origFrom: startOrig, origTo: orig.line + 1,
588 editFrom: startEdit, editTo: edit.line + 1});
589 return chunks;
590 }
591
592 function endOfLineClean(diff, i) {
593 if (i == diff.length - 1) return true;

Callers 2

merge.jsFile · 0.85
ensureDiffFunction · 0.85

Calls 3

startOfLineCleanFunction · 0.85
moveOverFunction · 0.85
endOfLineCleanFunction · 0.85

Tested by

no test coverage detected