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

Function registerUpdate

static/editor.md/lib/codemirror/addon/merge/merge.js:70–124  ·  view source on GitHub ↗
(dv)

Source from the content-addressed store, hash-verified

68
69 var updating = false;
70 function registerUpdate(dv) {
71 var edit = {from: 0, to: 0, marked: []};
72 var orig = {from: 0, to: 0, marked: []};
73 var debounceChange, updatingFast = false;
74 function update(mode) {
75 updating = true;
76 updatingFast = false;
77 if (mode == "full") {
78 if (dv.svg) clear(dv.svg);
79 if (dv.copyButtons) clear(dv.copyButtons);
80 clearMarks(dv.edit, edit.marked, dv.classes);
81 clearMarks(dv.orig, orig.marked, dv.classes);
82 edit.from = edit.to = orig.from = orig.to = 0;
83 }
84 ensureDiff(dv);
85 if (dv.showDifferences) {
86 updateMarks(dv.edit, dv.diff, edit, DIFF_INSERT, dv.classes);
87 updateMarks(dv.orig, dv.diff, orig, DIFF_DELETE, dv.classes);
88 }
89 makeConnections(dv);
90
91 if (dv.mv.options.connect == "align")
92 alignChunks(dv);
93 updating = false;
94 }
95 function setDealign(fast) {
96 if (updating) return;
97 dv.dealigned = true;
98 set(fast);
99 }
100 function set(fast) {
101 if (updating || updatingFast) return;
102 clearTimeout(debounceChange);
103 if (fast === true) updatingFast = true;
104 debounceChange = setTimeout(update, fast === true ? 20 : 250);
105 }
106 function change(_cm, change) {
107 if (!dv.diffOutOfDate) {
108 dv.diffOutOfDate = true;
109 edit.from = edit.to = orig.from = orig.to = 0;
110 }
111 // Update faster when a line was added/removed
112 setDealign(change.text.length - 1 != change.to.line - change.from.line);
113 }
114 dv.edit.on("change", change);
115 dv.orig.on("change", change);
116 dv.edit.on("markerAdded", setDealign);
117 dv.edit.on("markerCleared", setDealign);
118 dv.orig.on("markerAdded", setDealign);
119 dv.orig.on("markerCleared", setDealign);
120 dv.edit.on("viewportChange", function() { set(false); });
121 dv.orig.on("viewportChange", function() { set(false); });
122 update();
123 return update;
124 }
125
126 function registerScroll(dv) {
127 dv.edit.on("scroll", function() {

Callers 1

merge.jsFile · 0.85

Calls 2

setFunction · 0.70
updateFunction · 0.70

Tested by

no test coverage detected