Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Avatar for KuCalc : devops.
Download
51007 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.off("refresh", updateBottomMargin);
8
cm.display.lineSpace.parentNode.style.paddingBottom = "";
9
cm.state.scrollPastEndPadding = null;
10
}
11
if (val) {
12
cm.on("change", onChange);
13
cm.on("refresh", updateBottomMargin);
14
updateBottomMargin(cm);
15
}
16
});
17
18
function onChange(cm, change) {
19
if (CodeMirror.changeEnd(change).line == cm.lastLine())
20
updateBottomMargin(cm);
21
}
22
23
function updateBottomMargin(cm) {
24
var padding = "";
25
if (cm.lineCount() > 1) {
26
var totalH = cm.display.scroller.clientHeight - 30,
27
lastLineH = cm.getLineHandle(cm.lastLine()).height;
28
padding = (totalH - lastLineH) + "px";
29
}
30
if (cm.state.scrollPastEndPadding != padding) {
31
cm.state.scrollPastEndPadding = padding;
32
cm.display.lineSpace.parentNode.style.paddingBottom = padding;
33
cm.setSize();
34
}
35
}
36
})();
37
38