| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /**
- * extends codemirror/addon/display/autorefresh
- *
- * @author Yuki Takei <yuki@weseek.co.jp>
- * @see https://codemirror.net/addon/display/autorefresh.js
- * @see https://github.com/scniro/react-codemirror2/issues/83#issuecomment-398825212
- */
- /* eslint-disable */
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
- // Distributed under an MIT license: http://codemirror.net/LICENSE
- (function(mod) {
- mod(require("codemirror"));
- })(function(CodeMirror) {
- "use strict"
- CodeMirror.defineOption("autoRefresh", false, function(cm, val) {
- if (cm.state.autoRefresh) {
- stopListening(cm, cm.state.autoRefresh)
- cm.state.autoRefresh = null
- }
- if (val && (val.force || cm.display.wrapper.offsetHeight == 0))
- startListening(cm, cm.state.autoRefresh = {delay: val.delay || 250})
- })
- function startListening(cm, state) {
- function check() {
- if (cm.display.wrapper.offsetHeight) {
- stopListening(cm, state)
- if (cm.display.lastWrapHeight != cm.display.wrapper.clientHeight)
- cm.refresh()
- } else {
- state.timeout = setTimeout(check, state.delay)
- }
- }
- state.timeout = setTimeout(check, state.delay)
- state.hurry = function() {
- clearTimeout(state.timeout)
- state.timeout = setTimeout(check, 50)
- }
- CodeMirror.on(window, "mouseup", state.hurry)
- CodeMirror.on(window, "keyup", state.hurry)
- }
- function stopListening(_cm, state) {
- clearTimeout(state.timeout)
- CodeMirror.off(window, "mouseup", state.hurry)
- CodeMirror.off(window, "keyup", state.hurry)
- }
- });
|