GPQAPP

Форк
0
47 строк · 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("autoRefresh", false, function(cm, val) {
15
    if (cm.state.autoRefresh) {
16
      stopListening(cm, cm.state.autoRefresh)
17
      cm.state.autoRefresh = null
18
    }
19
    if (val && cm.display.wrapper.offsetHeight == 0)
20
      startListening(cm, cm.state.autoRefresh = {delay: val.delay || 250})
21
  })
22

23
  function startListening(cm, state) {
24
    function check() {
25
      if (cm.display.wrapper.offsetHeight) {
26
        stopListening(cm, state)
27
        if (cm.display.lastWrapHeight != cm.display.wrapper.clientHeight)
28
          cm.refresh()
29
      } else {
30
        state.timeout = setTimeout(check, state.delay)
31
      }
32
    }
33
    state.timeout = setTimeout(check, state.delay)
34
    state.hurry = function() {
35
      clearTimeout(state.timeout)
36
      state.timeout = setTimeout(check, 50)
37
    }
38
    CodeMirror.on(window, "mouseup", state.hurry)
39
    CodeMirror.on(window, "keyup", state.hurry)
40
  }
41

42
  function stopListening(_cm, state) {
43
    clearTimeout(state.timeout)
44
    CodeMirror.off(window, "mouseup", state.hurry)
45
    CodeMirror.off(window, "keyup", state.hurry)
46
  }
47
});
48

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

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

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

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