Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
malwaredllc
GitHub Repository: malwaredllc/byob
Path: blob/master/web-gui/buildyourownbotnet/assets/js/codemirror/addon/scroll/scrollpastend.js
1293 views
1
(function() {
2
"use strict";
3
4
CodeMirror.defineOption("scrollPastEnd", false, function(cm, val, old) {
5
if (old && old != CodeMirror.Init) {
6
cm.off("change", onChange);
7
cm.display.lineSpace.parentNode.style.paddingBottom = "";
8
cm.state.scrollPastEndPadding = null;
9
}
10
if (val) {
11
cm.on("change", onChange);
12
updateBottomMargin(cm);
13
}
14
});
15
16
function onChange(cm, change) {
17
if (CodeMirror.changeEnd(change).line == cm.lastLine())
18
updateBottomMargin(cm);
19
}
20
21
function updateBottomMargin(cm) {
22
var padding = "";
23
if (cm.lineCount() > 1) {
24
var totalH = cm.display.scroller.clientHeight - 30,
25
lastLineH = cm.getLineHandle(cm.lastLine()).height;
26
padding = (totalH - lastLineH) + "px";
27
}
28
if (cm.state.scrollPastEndPadding != padding) {
29
cm.state.scrollPastEndPadding = padding;
30
cm.display.lineSpace.parentNode.style.paddingBottom = padding;
31
cm.setSize();
32
}
33
}
34
})();
35
36