GPQAPP

Форк
0
48 строк · 1.5 Кб
1
// CodeMirror, copyright (c) by Marijn Haverbeke and others
2
// Distributed under an MIT license: https://codemirror.net/LICENSE
3

4
(function(mod) {
5
  if (typeof exports == "object" && typeof module == "object") // CommonJS
6
    mod(require("../../lib/codemirror"));
7
  else if (typeof define == "function" && define.amd) // AMD
8
    define(["../../lib/codemirror"], mod);
9
  else // Plain browser env
10
    mod(CodeMirror);
11
})(function(CodeMirror) {
12
  "use strict";
13

14
  CodeMirror.defineOption("scrollPastEnd", false, function(cm, val, old) {
15
    if (old && old != CodeMirror.Init) {
16
      cm.off("change", onChange);
17
      cm.off("refresh", updateBottomMargin);
18
      cm.display.lineSpace.parentNode.style.paddingBottom = "";
19
      cm.state.scrollPastEndPadding = null;
20
    }
21
    if (val) {
22
      cm.on("change", onChange);
23
      cm.on("refresh", updateBottomMargin);
24
      updateBottomMargin(cm);
25
    }
26
  });
27

28
  function onChange(cm, change) {
29
    if (CodeMirror.changeEnd(change).line == cm.lastLine())
30
      updateBottomMargin(cm);
31
  }
32

33
  function updateBottomMargin(cm) {
34
    var padding = "";
35
    if (cm.lineCount() > 1) {
36
      var totalH = cm.display.scroller.clientHeight - 30,
37
          lastLineH = cm.getLineHandle(cm.lastLine()).height;
38
      padding = (totalH - lastLineH) + "px";
39
    }
40
    if (cm.state.scrollPastEndPadding != padding) {
41
      cm.state.scrollPastEndPadding = padding;
42
      cm.display.lineSpace.parentNode.style.paddingBottom = padding;
43
      cm.off("refresh", updateBottomMargin);
44
      cm.setSize();
45
      cm.on("refresh", updateBottomMargin);
46
    }
47
  }
48
});
49

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.