]>
git.r.bdr.sh - rbdr/dotfiles/blob - atom/packages/pretty-json/node_modules/jsonminify/report/assets/scripts/vendor/codemirror/util/loadmode.js
60fafbb17824516db4e434b42bb030b66fc34c7f
2 if (!CodeMirror
.modeURL
) CodeMirror
.modeURL
= "../mode/%N/%N.js";
5 function splitCallback(cont
, n
) {
7 return function() { if (--countDown
== 0) cont(); };
9 function ensureDeps(mode
, cont
) {
10 var deps
= CodeMirror
.modes
[mode
].dependencies
;
11 if (!deps
) return cont();
13 for (var i
= 0; i
< deps
.length
; ++i
) {
14 if (!CodeMirror
.modes
.hasOwnProperty(deps
[i
]))
15 missing
.push(deps
[i
]);
17 if (!missing
.length
) return cont();
18 var split
= splitCallback(cont
, missing
.length
);
19 for (var i
= 0; i
< missing
.length
; ++i
)
20 CodeMirror
.requireMode(missing
[i
], split
);
23 CodeMirror
.requireMode = function(mode
, cont
) {
24 if (typeof mode
!= "string") mode
= mode
.name
;
25 if (CodeMirror
.modes
.hasOwnProperty(mode
)) return ensureDeps(mode
, cont
);
26 if (loading
.hasOwnProperty(mode
)) return loading
[mode
].push(cont
);
28 var script
= document
.createElement("script");
29 script
.src
= CodeMirror
.modeURL
.replace(/%N/g, mode
);
30 var others
= document
.getElementsByTagName("script")[0];
31 others
.parentNode
.insertBefore(script
, others
);
32 var list
= loading
[mode
] = [cont
];
33 var count
= 0, poll
= setInterval(function() {
34 if (++count
> 100) return clearInterval(poll
);
35 if (CodeMirror
.modes
.hasOwnProperty(mode
)) {
38 ensureDeps(mode
, function() {
39 for (var i
= 0; i
< list
.length
; ++i
) list
[i
]();
45 CodeMirror
.autoLoadMode = function(instance
, mode
) {
46 if (!CodeMirror
.modes
.hasOwnProperty(mode
))
47 CodeMirror
.requireMode(mode
, function() {
48 instance
.setOption("mode", instance
.getOption("mode"));