ll-plus 2.10.24 → 2.10.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/package.json +1 -1
  2. package/theme-chalk/code-editor-vue3/addon/comment/comment.js +211 -0
  3. package/theme-chalk/code-editor-vue3/addon/comment/continuecomment.js +114 -0
  4. package/theme-chalk/code-editor-vue3/addon/dialog/dialog.css +32 -0
  5. package/theme-chalk/code-editor-vue3/addon/dialog/dialog.js +163 -0
  6. package/theme-chalk/code-editor-vue3/addon/display/autorefresh.js +47 -0
  7. package/theme-chalk/code-editor-vue3/addon/display/fullscreen.css +6 -0
  8. package/theme-chalk/code-editor-vue3/addon/display/fullscreen.js +41 -0
  9. package/theme-chalk/code-editor-vue3/addon/display/panel.js +133 -0
  10. package/theme-chalk/code-editor-vue3/addon/display/placeholder.js +78 -0
  11. package/theme-chalk/code-editor-vue3/addon/display/rulers.js +51 -0
  12. package/theme-chalk/code-editor-vue3/addon/edit/closebrackets.js +201 -0
  13. package/theme-chalk/code-editor-vue3/addon/edit/closetag.js +185 -0
  14. package/theme-chalk/code-editor-vue3/addon/edit/continuelist.js +101 -0
  15. package/theme-chalk/code-editor-vue3/addon/edit/matchbrackets.js +160 -0
  16. package/theme-chalk/code-editor-vue3/addon/edit/matchtags.js +66 -0
  17. package/theme-chalk/code-editor-vue3/addon/edit/trailingspace.js +27 -0
  18. package/theme-chalk/code-editor-vue3/addon/fold/brace-fold.js +119 -0
  19. package/theme-chalk/code-editor-vue3/addon/fold/comment-fold.js +59 -0
  20. package/theme-chalk/code-editor-vue3/addon/fold/foldcode.js +159 -0
  21. package/theme-chalk/code-editor-vue3/addon/fold/foldgutter.css +20 -0
  22. package/theme-chalk/code-editor-vue3/addon/fold/foldgutter.js +169 -0
  23. package/theme-chalk/code-editor-vue3/addon/fold/indent-fold.js +48 -0
  24. package/theme-chalk/code-editor-vue3/addon/fold/markdown-fold.js +49 -0
  25. package/theme-chalk/code-editor-vue3/addon/fold/xml-fold.js +184 -0
  26. package/theme-chalk/code-editor-vue3/addon/hint/anyword-hint.js +41 -0
  27. package/theme-chalk/code-editor-vue3/addon/hint/css-hint.js +66 -0
  28. package/theme-chalk/code-editor-vue3/addon/hint/html-hint.js +351 -0
  29. package/theme-chalk/code-editor-vue3/addon/hint/javascript-hint.js +162 -0
  30. package/theme-chalk/code-editor-vue3/addon/hint/show-hint.css +37 -0
  31. package/theme-chalk/code-editor-vue3/addon/hint/show-hint.js +523 -0
  32. package/theme-chalk/code-editor-vue3/addon/hint/sql-hint.js +304 -0
  33. package/theme-chalk/code-editor-vue3/addon/hint/xml-hint.js +132 -0
  34. package/theme-chalk/code-editor-vue3/addon/lint/coffeescript-lint.js +47 -0
  35. package/theme-chalk/code-editor-vue3/addon/lint/css-lint.js +40 -0
  36. package/theme-chalk/code-editor-vue3/addon/lint/html-lint.js +59 -0
  37. package/theme-chalk/code-editor-vue3/addon/lint/javascript-lint.js +65 -0
  38. package/theme-chalk/code-editor-vue3/addon/lint/json-lint.js +40 -0
  39. package/theme-chalk/code-editor-vue3/addon/lint/lint.css +79 -0
  40. package/theme-chalk/code-editor-vue3/addon/lint/lint.js +288 -0
  41. package/theme-chalk/code-editor-vue3/addon/lint/yaml-lint.js +41 -0
  42. package/theme-chalk/code-editor-vue3/addon/merge/merge.css +119 -0
  43. package/theme-chalk/code-editor-vue3/addon/merge/merge.js +1018 -0
  44. package/theme-chalk/code-editor-vue3/addon/mode/loadmode.js +66 -0
  45. package/theme-chalk/code-editor-vue3/addon/mode/multiplex.js +136 -0
  46. package/theme-chalk/code-editor-vue3/addon/mode/multiplex_test.js +49 -0
  47. package/theme-chalk/code-editor-vue3/addon/mode/overlay.js +90 -0
  48. package/theme-chalk/code-editor-vue3/addon/mode/simple.js +216 -0
  49. package/theme-chalk/code-editor-vue3/addon/runmode/colorize.js +40 -0
  50. package/theme-chalk/code-editor-vue3/addon/runmode/runmode-standalone.js +334 -0
  51. package/theme-chalk/code-editor-vue3/addon/runmode/runmode.js +76 -0
  52. package/theme-chalk/code-editor-vue3/addon/runmode/runmode.node.js +329 -0
  53. package/theme-chalk/code-editor-vue3/addon/scroll/annotatescrollbar.js +128 -0
  54. package/theme-chalk/code-editor-vue3/addon/scroll/scrollpastend.js +48 -0
  55. package/theme-chalk/code-editor-vue3/addon/scroll/simplescrollbars.css +66 -0
  56. package/theme-chalk/code-editor-vue3/addon/scroll/simplescrollbars.js +152 -0
  57. package/theme-chalk/code-editor-vue3/addon/search/jump-to-line.js +53 -0
  58. package/theme-chalk/code-editor-vue3/addon/search/match-highlighter.js +167 -0
  59. package/theme-chalk/code-editor-vue3/addon/search/matchesonscrollbar.css +8 -0
  60. package/theme-chalk/code-editor-vue3/addon/search/matchesonscrollbar.js +97 -0
  61. package/theme-chalk/code-editor-vue3/addon/search/search.js +295 -0
  62. package/theme-chalk/code-editor-vue3/addon/search/searchcursor.js +305 -0
  63. package/theme-chalk/code-editor-vue3/addon/selection/active-line.js +72 -0
  64. package/theme-chalk/code-editor-vue3/addon/selection/mark-selection.js +119 -0
  65. package/theme-chalk/code-editor-vue3/addon/selection/selection-pointer.js +98 -0
  66. package/theme-chalk/code-editor-vue3/addon/tern/tern.css +87 -0
  67. package/theme-chalk/code-editor-vue3/addon/tern/tern.js +756 -0
  68. package/theme-chalk/code-editor-vue3/addon/tern/worker.js +44 -0
  69. package/theme-chalk/code-editor-vue3/addon/wrap/hardwrap.js +160 -0
  70. package/theme-chalk/code-editor-vue3/lib/codemirror.css +344 -0
  71. package/theme-chalk/code-editor-vue3/lib/codemirror.js +9884 -0
  72. package/theme-chalk/code-editor-vue3/mode/apl/apl.js +174 -0
  73. package/theme-chalk/code-editor-vue3/mode/asciiarmor/asciiarmor.js +74 -0
  74. package/theme-chalk/code-editor-vue3/mode/asn.1/asn.1.js +204 -0
  75. package/theme-chalk/code-editor-vue3/mode/asterisk/asterisk.js +220 -0
  76. package/theme-chalk/code-editor-vue3/mode/brainfuck/brainfuck.js +85 -0
  77. package/theme-chalk/code-editor-vue3/mode/clike/clike.js +942 -0
  78. package/theme-chalk/code-editor-vue3/mode/clojure/clojure.js +293 -0
  79. package/theme-chalk/code-editor-vue3/mode/cmake/cmake.js +97 -0
  80. package/theme-chalk/code-editor-vue3/mode/cobol/cobol.js +255 -0
  81. package/theme-chalk/code-editor-vue3/mode/coffeescript/coffeescript.js +359 -0
  82. package/theme-chalk/code-editor-vue3/mode/commonlisp/commonlisp.js +125 -0
  83. package/theme-chalk/code-editor-vue3/mode/crystal/crystal.js +433 -0
  84. package/theme-chalk/code-editor-vue3/mode/cypher/cypher.js +152 -0
  85. package/theme-chalk/code-editor-vue3/mode/d/d.js +223 -0
  86. package/theme-chalk/code-editor-vue3/mode/dart/dart.js +168 -0
  87. package/theme-chalk/code-editor-vue3/mode/diff/diff.js +47 -0
  88. package/theme-chalk/code-editor-vue3/mode/django/django.js +356 -0
  89. package/theme-chalk/code-editor-vue3/mode/dockerfile/dockerfile.js +211 -0
  90. package/theme-chalk/code-editor-vue3/mode/dtd/dtd.js +142 -0
  91. package/theme-chalk/code-editor-vue3/mode/dylan/dylan.js +352 -0
  92. package/theme-chalk/code-editor-vue3/mode/ebnf/ebnf.js +195 -0
  93. package/theme-chalk/code-editor-vue3/mode/ecl/ecl.js +206 -0
  94. package/theme-chalk/code-editor-vue3/mode/eiffel/eiffel.js +160 -0
  95. package/theme-chalk/code-editor-vue3/mode/elm/elm.js +245 -0
  96. package/theme-chalk/code-editor-vue3/mode/erlang/erlang.js +619 -0
  97. package/theme-chalk/code-editor-vue3/mode/factor/factor.js +85 -0
  98. package/theme-chalk/code-editor-vue3/mode/fcl/fcl.js +173 -0
  99. package/theme-chalk/code-editor-vue3/mode/forth/forth.js +180 -0
  100. package/theme-chalk/code-editor-vue3/mode/fortran/fortran.js +188 -0
  101. package/theme-chalk/code-editor-vue3/mode/gas/gas.js +353 -0
  102. package/theme-chalk/code-editor-vue3/mode/gfm/gfm.js +129 -0
  103. package/theme-chalk/code-editor-vue3/mode/gherkin/gherkin.js +178 -0
  104. package/theme-chalk/code-editor-vue3/mode/go/go.js +187 -0
  105. package/theme-chalk/code-editor-vue3/mode/groovy/groovy.js +245 -0
  106. package/theme-chalk/code-editor-vue3/mode/haml/haml.js +161 -0
  107. package/theme-chalk/code-editor-vue3/mode/handlebars/handlebars.js +70 -0
  108. package/theme-chalk/code-editor-vue3/mode/haskell/haskell.js +268 -0
  109. package/theme-chalk/code-editor-vue3/mode/haskell-literate/haskell-literate.js +43 -0
  110. package/theme-chalk/code-editor-vue3/mode/haxe/haxe.js +515 -0
  111. package/theme-chalk/code-editor-vue3/mode/htmlmixed/htmlmixed.js +153 -0
  112. package/theme-chalk/code-editor-vue3/mode/http/http.js +113 -0
  113. package/theme-chalk/code-editor-vue3/mode/idl/idl.js +290 -0
  114. package/theme-chalk/code-editor-vue3/mode/jinja2/jinja2.js +193 -0
  115. package/theme-chalk/code-editor-vue3/mode/julia/julia.js +390 -0
  116. package/theme-chalk/code-editor-vue3/mode/livescript/livescript.js +280 -0
  117. package/theme-chalk/code-editor-vue3/mode/lua/lua.js +160 -0
  118. package/theme-chalk/code-editor-vue3/mode/markdown/markdown.js +886 -0
  119. package/theme-chalk/code-editor-vue3/mode/mathematica/mathematica.js +176 -0
  120. package/theme-chalk/code-editor-vue3/mode/mbox/mbox.js +129 -0
  121. package/theme-chalk/code-editor-vue3/mode/meta.js +221 -0
  122. package/theme-chalk/code-editor-vue3/mode/mirc/mirc.js +193 -0
  123. package/theme-chalk/code-editor-vue3/mode/mllike/mllike.js +359 -0
  124. package/theme-chalk/code-editor-vue3/mode/modelica/modelica.js +245 -0
  125. package/theme-chalk/code-editor-vue3/mode/mscgen/mscgen.js +175 -0
  126. package/theme-chalk/code-editor-vue3/mode/mumps/mumps.js +148 -0
  127. package/theme-chalk/code-editor-vue3/mode/nginx/nginx.js +178 -0
  128. package/theme-chalk/code-editor-vue3/mode/nsis/nsis.js +95 -0
  129. package/theme-chalk/code-editor-vue3/mode/ntriples/ntriples.js +195 -0
  130. package/theme-chalk/code-editor-vue3/mode/octave/octave.js +139 -0
  131. package/theme-chalk/code-editor-vue3/mode/oz/oz.js +252 -0
  132. package/theme-chalk/code-editor-vue3/mode/pascal/pascal.js +136 -0
  133. package/theme-chalk/code-editor-vue3/mode/pegjs/pegjs.js +111 -0
  134. package/theme-chalk/code-editor-vue3/mode/perl/perl.js +836 -0
  135. package/theme-chalk/code-editor-vue3/mode/php/php.js +234 -0
  136. package/theme-chalk/code-editor-vue3/mode/pig/pig.js +178 -0
  137. package/theme-chalk/code-editor-vue3/mode/powershell/powershell.js +398 -0
  138. package/theme-chalk/code-editor-vue3/mode/properties/properties.js +78 -0
  139. package/theme-chalk/code-editor-vue3/mode/protobuf/protobuf.js +72 -0
  140. package/theme-chalk/code-editor-vue3/mode/pug/pug.js +591 -0
  141. package/theme-chalk/code-editor-vue3/mode/puppet/puppet.js +220 -0
  142. package/theme-chalk/code-editor-vue3/mode/python/python.js +402 -0
  143. package/theme-chalk/code-editor-vue3/mode/q/q.js +139 -0
  144. package/theme-chalk/code-editor-vue3/mode/r/r.js +190 -0
  145. package/theme-chalk/code-editor-vue3/mode/rpm/changes/index.html +66 -0
  146. package/theme-chalk/code-editor-vue3/mode/rpm/rpm.js +109 -0
  147. package/theme-chalk/code-editor-vue3/mode/rst/rst.js +557 -0
  148. package/theme-chalk/code-editor-vue3/mode/ruby/ruby.js +303 -0
  149. package/theme-chalk/code-editor-vue3/mode/rust/rust.js +72 -0
  150. package/theme-chalk/code-editor-vue3/mode/sas/sas.js +303 -0
  151. package/theme-chalk/code-editor-vue3/mode/sass/sass.js +459 -0
  152. package/theme-chalk/code-editor-vue3/mode/scheme/scheme.js +284 -0
  153. package/theme-chalk/code-editor-vue3/mode/shell/shell.js +168 -0
  154. package/theme-chalk/code-editor-vue3/mode/sieve/sieve.js +193 -0
  155. package/theme-chalk/code-editor-vue3/mode/slim/slim.js +575 -0
  156. package/theme-chalk/code-editor-vue3/mode/smalltalk/smalltalk.js +168 -0
  157. package/theme-chalk/code-editor-vue3/mode/smarty/smarty.js +225 -0
  158. package/theme-chalk/code-editor-vue3/mode/solr/solr.js +104 -0
  159. package/theme-chalk/code-editor-vue3/mode/soy/soy.js +665 -0
  160. package/theme-chalk/code-editor-vue3/mode/sparql/sparql.js +184 -0
  161. package/theme-chalk/code-editor-vue3/mode/spreadsheet/spreadsheet.js +112 -0
  162. package/theme-chalk/code-editor-vue3/mode/sql/sql.js +525 -0
  163. package/theme-chalk/code-editor-vue3/mode/stex/stex.js +264 -0
  164. package/theme-chalk/code-editor-vue3/mode/stylus/stylus.js +775 -0
  165. package/theme-chalk/code-editor-vue3/mode/swift/swift.js +221 -0
  166. package/theme-chalk/code-editor-vue3/mode/tcl/tcl.js +140 -0
  167. package/theme-chalk/code-editor-vue3/mode/textile/textile.js +469 -0
  168. package/theme-chalk/code-editor-vue3/mode/tiddlywiki/tiddlywiki.css +14 -0
  169. package/theme-chalk/code-editor-vue3/mode/tiddlywiki/tiddlywiki.js +308 -0
  170. package/theme-chalk/code-editor-vue3/mode/tiki/tiki.css +26 -0
  171. package/theme-chalk/code-editor-vue3/mode/tiki/tiki.js +312 -0
  172. package/theme-chalk/code-editor-vue3/mode/toml/toml.js +88 -0
  173. package/theme-chalk/code-editor-vue3/mode/tornado/tornado.js +68 -0
  174. package/theme-chalk/code-editor-vue3/mode/troff/troff.js +84 -0
  175. package/theme-chalk/code-editor-vue3/mode/ttcn/ttcn.js +283 -0
  176. package/theme-chalk/code-editor-vue3/mode/ttcn-cfg/ttcn-cfg.js +214 -0
  177. package/theme-chalk/code-editor-vue3/mode/turtle/turtle.js +162 -0
  178. package/theme-chalk/code-editor-vue3/mode/twig/twig.js +141 -0
  179. package/theme-chalk/code-editor-vue3/mode/vb/vb.js +275 -0
  180. package/theme-chalk/code-editor-vue3/mode/vbscript/vbscript.js +350 -0
  181. package/theme-chalk/code-editor-vue3/mode/velocity/velocity.js +202 -0
  182. package/theme-chalk/code-editor-vue3/mode/verilog/verilog.js +781 -0
  183. package/theme-chalk/code-editor-vue3/mode/vhdl/vhdl.js +189 -0
  184. package/theme-chalk/code-editor-vue3/mode/wast/wast.js +132 -0
  185. package/theme-chalk/code-editor-vue3/mode/webidl/webidl.js +195 -0
  186. package/theme-chalk/code-editor-vue3/mode/xml/xml.js +417 -0
  187. package/theme-chalk/code-editor-vue3/mode/xquery/xquery.js +448 -0
  188. package/theme-chalk/code-editor-vue3/mode/yacas/yacas.js +204 -0
  189. package/theme-chalk/code-editor-vue3/mode/yaml/yaml.js +120 -0
  190. package/theme-chalk/code-editor-vue3/mode/yaml-frontmatter/yaml-frontmatter.js +72 -0
  191. package/theme-chalk/code-editor-vue3/mode/z80/z80.js +116 -0
@@ -0,0 +1,329 @@
1
+ 'use strict';
2
+
3
+ function copyObj(obj, target, overwrite) {
4
+ if (!target) { target = {}; }
5
+ for (var prop in obj)
6
+ { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))
7
+ { target[prop] = obj[prop]; } }
8
+ return target
9
+ }
10
+
11
+ // Counts the column offset in a string, taking tabs into account.
12
+ // Used mostly to find indentation.
13
+ function countColumn(string, end, tabSize, startIndex, startValue) {
14
+ if (end == null) {
15
+ end = string.search(/[^\s\u00a0]/);
16
+ if (end == -1) { end = string.length; }
17
+ }
18
+ for (var i = startIndex || 0, n = startValue || 0;;) {
19
+ var nextTab = string.indexOf("\t", i);
20
+ if (nextTab < 0 || nextTab >= end)
21
+ { return n + (end - i) }
22
+ n += nextTab - i;
23
+ n += tabSize - (n % tabSize);
24
+ i = nextTab + 1;
25
+ }
26
+ }
27
+
28
+ function nothing() {}
29
+
30
+ function createObj(base, props) {
31
+ var inst;
32
+ if (Object.create) {
33
+ inst = Object.create(base);
34
+ } else {
35
+ nothing.prototype = base;
36
+ inst = new nothing();
37
+ }
38
+ if (props) { copyObj(props, inst); }
39
+ return inst
40
+ }
41
+
42
+ // STRING STREAM
43
+
44
+ // Fed to the mode parsers, provides helper functions to make
45
+ // parsers more succinct.
46
+
47
+ var StringStream = function(string, tabSize, lineOracle) {
48
+ this.pos = this.start = 0;
49
+ this.string = string;
50
+ this.tabSize = tabSize || 8;
51
+ this.lastColumnPos = this.lastColumnValue = 0;
52
+ this.lineStart = 0;
53
+ this.lineOracle = lineOracle;
54
+ };
55
+
56
+ StringStream.prototype.eol = function () {return this.pos >= this.string.length};
57
+ StringStream.prototype.sol = function () {return this.pos == this.lineStart};
58
+ StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};
59
+ StringStream.prototype.next = function () {
60
+ if (this.pos < this.string.length)
61
+ { return this.string.charAt(this.pos++) }
62
+ };
63
+ StringStream.prototype.eat = function (match) {
64
+ var ch = this.string.charAt(this.pos);
65
+ var ok;
66
+ if (typeof match == "string") { ok = ch == match; }
67
+ else { ok = ch && (match.test ? match.test(ch) : match(ch)); }
68
+ if (ok) {++this.pos; return ch}
69
+ };
70
+ StringStream.prototype.eatWhile = function (match) {
71
+ var start = this.pos;
72
+ while (this.eat(match)){}
73
+ return this.pos > start
74
+ };
75
+ StringStream.prototype.eatSpace = function () {
76
+ var start = this.pos;
77
+ while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }
78
+ return this.pos > start
79
+ };
80
+ StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};
81
+ StringStream.prototype.skipTo = function (ch) {
82
+ var found = this.string.indexOf(ch, this.pos);
83
+ if (found > -1) {this.pos = found; return true}
84
+ };
85
+ StringStream.prototype.backUp = function (n) {this.pos -= n;};
86
+ StringStream.prototype.column = function () {
87
+ if (this.lastColumnPos < this.start) {
88
+ this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);
89
+ this.lastColumnPos = this.start;
90
+ }
91
+ return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)
92
+ };
93
+ StringStream.prototype.indentation = function () {
94
+ return countColumn(this.string, null, this.tabSize) -
95
+ (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)
96
+ };
97
+ StringStream.prototype.match = function (pattern, consume, caseInsensitive) {
98
+ if (typeof pattern == "string") {
99
+ var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };
100
+ var substr = this.string.substr(this.pos, pattern.length);
101
+ if (cased(substr) == cased(pattern)) {
102
+ if (consume !== false) { this.pos += pattern.length; }
103
+ return true
104
+ }
105
+ } else {
106
+ var match = this.string.slice(this.pos).match(pattern);
107
+ if (match && match.index > 0) { return null }
108
+ if (match && consume !== false) { this.pos += match[0].length; }
109
+ return match
110
+ }
111
+ };
112
+ StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};
113
+ StringStream.prototype.hideFirstChars = function (n, inner) {
114
+ this.lineStart += n;
115
+ try { return inner() }
116
+ finally { this.lineStart -= n; }
117
+ };
118
+ StringStream.prototype.lookAhead = function (n) {
119
+ var oracle = this.lineOracle;
120
+ return oracle && oracle.lookAhead(n)
121
+ };
122
+ StringStream.prototype.baseToken = function () {
123
+ var oracle = this.lineOracle;
124
+ return oracle && oracle.baseToken(this.pos)
125
+ };
126
+
127
+ // Known modes, by name and by MIME
128
+ var modes = {}, mimeModes = {};
129
+
130
+ // Extra arguments are stored as the mode's dependencies, which is
131
+ // used by (legacy) mechanisms like loadmode.js to automatically
132
+ // load a mode. (Preferred mechanism is the require/define calls.)
133
+ function defineMode(name, mode) {
134
+ if (arguments.length > 2)
135
+ { mode.dependencies = Array.prototype.slice.call(arguments, 2); }
136
+ modes[name] = mode;
137
+ }
138
+
139
+ function defineMIME(mime, spec) {
140
+ mimeModes[mime] = spec;
141
+ }
142
+
143
+ // Given a MIME type, a {name, ...options} config object, or a name
144
+ // string, return a mode config object.
145
+ function resolveMode(spec) {
146
+ if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) {
147
+ spec = mimeModes[spec];
148
+ } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) {
149
+ var found = mimeModes[spec.name];
150
+ if (typeof found == "string") { found = {name: found}; }
151
+ spec = createObj(found, spec);
152
+ spec.name = found.name;
153
+ } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) {
154
+ return resolveMode("application/xml")
155
+ } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) {
156
+ return resolveMode("application/json")
157
+ }
158
+ if (typeof spec == "string") { return {name: spec} }
159
+ else { return spec || {name: "null"} }
160
+ }
161
+
162
+ // Given a mode spec (anything that resolveMode accepts), find and
163
+ // initialize an actual mode object.
164
+ function getMode(options, spec) {
165
+ spec = resolveMode(spec);
166
+ var mfactory = modes[spec.name];
167
+ if (!mfactory) { return getMode(options, "text/plain") }
168
+ var modeObj = mfactory(options, spec);
169
+ if (modeExtensions.hasOwnProperty(spec.name)) {
170
+ var exts = modeExtensions[spec.name];
171
+ for (var prop in exts) {
172
+ if (!exts.hasOwnProperty(prop)) { continue }
173
+ if (modeObj.hasOwnProperty(prop)) { modeObj["_" + prop] = modeObj[prop]; }
174
+ modeObj[prop] = exts[prop];
175
+ }
176
+ }
177
+ modeObj.name = spec.name;
178
+ if (spec.helperType) { modeObj.helperType = spec.helperType; }
179
+ if (spec.modeProps) { for (var prop$1 in spec.modeProps)
180
+ { modeObj[prop$1] = spec.modeProps[prop$1]; } }
181
+
182
+ return modeObj
183
+ }
184
+
185
+ // This can be used to attach properties to mode objects from
186
+ // outside the actual mode definition.
187
+ var modeExtensions = {};
188
+ function extendMode(mode, properties) {
189
+ var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});
190
+ copyObj(properties, exts);
191
+ }
192
+
193
+ function copyState(mode, state) {
194
+ if (state === true) { return state }
195
+ if (mode.copyState) { return mode.copyState(state) }
196
+ var nstate = {};
197
+ for (var n in state) {
198
+ var val = state[n];
199
+ if (val instanceof Array) { val = val.concat([]); }
200
+ nstate[n] = val;
201
+ }
202
+ return nstate
203
+ }
204
+
205
+ // Given a mode and a state (for that mode), find the inner mode and
206
+ // state at the position that the state refers to.
207
+ function innerMode(mode, state) {
208
+ var info;
209
+ while (mode.innerMode) {
210
+ info = mode.innerMode(state);
211
+ if (!info || info.mode == mode) { break }
212
+ state = info.state;
213
+ mode = info.mode;
214
+ }
215
+ return info || {mode: mode, state: state}
216
+ }
217
+
218
+ function startState(mode, a1, a2) {
219
+ return mode.startState ? mode.startState(a1, a2) : true
220
+ }
221
+
222
+ var modeMethods = {
223
+ __proto__: null,
224
+ modes: modes,
225
+ mimeModes: mimeModes,
226
+ defineMode: defineMode,
227
+ defineMIME: defineMIME,
228
+ resolveMode: resolveMode,
229
+ getMode: getMode,
230
+ modeExtensions: modeExtensions,
231
+ extendMode: extendMode,
232
+ copyState: copyState,
233
+ innerMode: innerMode,
234
+ startState: startState
235
+ };
236
+
237
+ // Copy StringStream and mode methods into exports (CodeMirror) object.
238
+ exports.StringStream = StringStream;
239
+ exports.countColumn = countColumn;
240
+ for (var exported in modeMethods) { exports[exported] = modeMethods[exported]; }
241
+
242
+ // Shim library CodeMirror with the minimal CodeMirror defined above.
243
+ require.cache[require.resolve("../../lib/codemirror")] = require.cache[require.resolve("./runmode.node")];
244
+ require.cache[require.resolve("../../addon/runmode/runmode")] = require.cache[require.resolve("./runmode.node")];
245
+
246
+ // Minimal default mode.
247
+ exports.defineMode("null", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });
248
+ exports.defineMIME("text/plain", "null");
249
+
250
+ exports.registerHelper = exports.registerGlobalHelper = Math.min;
251
+ exports.splitLines = function(string) { return string.split(/\r?\n|\r/) };
252
+
253
+ exports.defaults = { indentUnit: 2 };
254
+
255
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
256
+ // Distributed under an MIT license: https://codemirror.net/5/LICENSE
257
+
258
+ (function(mod) {
259
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
260
+ { mod(require("../../lib/codemirror")); }
261
+ else if (typeof define == "function" && define.amd) // AMD
262
+ { define(["../../lib/codemirror"], mod); }
263
+ else // Plain browser env
264
+ { mod(CodeMirror); }
265
+ })(function(CodeMirror) {
266
+
267
+ CodeMirror.runMode = function(string, modespec, callback, options) {
268
+ var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);
269
+ var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;
270
+
271
+ // Create a tokenizing callback function if passed-in callback is a DOM element.
272
+ if (callback.appendChild) {
273
+ var ie = /MSIE \d/.test(navigator.userAgent);
274
+ var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);
275
+ var node = callback, col = 0;
276
+ node.textContent = "";
277
+ callback = function(text, style) {
278
+ if (text == "\n") {
279
+ // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.
280
+ // Emitting a carriage return makes everything ok.
281
+ node.appendChild(document.createTextNode(ie_lt9 ? '\r' : text));
282
+ col = 0;
283
+ return;
284
+ }
285
+ var content = "";
286
+ // replace tabs
287
+ for (var pos = 0;;) {
288
+ var idx = text.indexOf("\t", pos);
289
+ if (idx == -1) {
290
+ content += text.slice(pos);
291
+ col += text.length - pos;
292
+ break;
293
+ } else {
294
+ col += idx - pos;
295
+ content += text.slice(pos, idx);
296
+ var size = tabSize - col % tabSize;
297
+ col += size;
298
+ for (var i = 0; i < size; ++i) { content += " "; }
299
+ pos = idx + 1;
300
+ }
301
+ }
302
+ // Create a node with token style and append it to the callback DOM element.
303
+ if (style) {
304
+ var sp = node.appendChild(document.createElement("span"));
305
+ sp.className = "cm-" + style.replace(/ +/g, " cm-");
306
+ sp.appendChild(document.createTextNode(content));
307
+ } else {
308
+ node.appendChild(document.createTextNode(content));
309
+ }
310
+ };
311
+ }
312
+
313
+ var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);
314
+ for (var i = 0, e = lines.length; i < e; ++i) {
315
+ if (i) { callback("\n"); }
316
+ var stream = new CodeMirror.StringStream(lines[i], null, {
317
+ lookAhead: function(n) { return lines[i + n] },
318
+ baseToken: function() {}
319
+ });
320
+ if (!stream.string && mode.blankLine) { mode.blankLine(state); }
321
+ while (!stream.eol()) {
322
+ var style = mode.token(stream, state);
323
+ callback(stream.current(), style, i, stream.start, state, mode);
324
+ stream.start = stream.pos;
325
+ }
326
+ }
327
+ };
328
+
329
+ });
@@ -0,0 +1,128 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: https://codemirror.net/5/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.defineExtension("annotateScrollbar", function(options) {
15
+ if (typeof options == "string") options = {className: options};
16
+ return new Annotation(this, options);
17
+ });
18
+
19
+ CodeMirror.defineOption("scrollButtonHeight", 0);
20
+
21
+ function Annotation(cm, options) {
22
+ this.cm = cm;
23
+ this.options = options;
24
+ this.buttonHeight = options.scrollButtonHeight || cm.getOption("scrollButtonHeight");
25
+ this.annotations = [];
26
+ this.doRedraw = this.doUpdate = null;
27
+ this.div = cm.getWrapperElement().appendChild(document.createElement("div"));
28
+ this.div.style.cssText = "position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none";
29
+ this.computeScale();
30
+
31
+ function scheduleRedraw(delay) {
32
+ clearTimeout(self.doRedraw);
33
+ self.doRedraw = setTimeout(function() { self.redraw(); }, delay);
34
+ }
35
+
36
+ var self = this;
37
+ cm.on("refresh", this.resizeHandler = function() {
38
+ clearTimeout(self.doUpdate);
39
+ self.doUpdate = setTimeout(function() {
40
+ if (self.computeScale()) scheduleRedraw(20);
41
+ }, 100);
42
+ });
43
+ cm.on("markerAdded", this.resizeHandler);
44
+ cm.on("markerCleared", this.resizeHandler);
45
+ if (options.listenForChanges !== false)
46
+ cm.on("changes", this.changeHandler = function() {
47
+ scheduleRedraw(250);
48
+ });
49
+ }
50
+
51
+ Annotation.prototype.computeScale = function() {
52
+ var cm = this.cm;
53
+ var hScale = (cm.getWrapperElement().clientHeight - cm.display.barHeight - this.buttonHeight * 2) /
54
+ cm.getScrollerElement().scrollHeight
55
+ if (hScale != this.hScale) {
56
+ this.hScale = hScale;
57
+ return true;
58
+ }
59
+ };
60
+
61
+ Annotation.prototype.update = function(annotations) {
62
+ this.annotations = annotations;
63
+ this.redraw();
64
+ };
65
+
66
+ Annotation.prototype.redraw = function(compute) {
67
+ if (compute !== false) this.computeScale();
68
+ var cm = this.cm, hScale = this.hScale;
69
+
70
+ var frag = document.createDocumentFragment(), anns = this.annotations;
71
+
72
+ var wrapping = cm.getOption("lineWrapping");
73
+ var singleLineH = wrapping && cm.defaultTextHeight() * 1.5;
74
+ var curLine = null, curLineObj = null;
75
+
76
+ function getY(pos, top) {
77
+ if (curLine != pos.line) {
78
+ curLine = pos.line
79
+ curLineObj = cm.getLineHandle(pos.line)
80
+ var visual = cm.getLineHandleVisualStart(curLineObj)
81
+ if (visual != curLineObj) {
82
+ curLine = cm.getLineNumber(visual)
83
+ curLineObj = visual
84
+ }
85
+ }
86
+ if ((curLineObj.widgets && curLineObj.widgets.length) ||
87
+ (wrapping && curLineObj.height > singleLineH))
88
+ return cm.charCoords(pos, "local")[top ? "top" : "bottom"];
89
+ var topY = cm.heightAtLine(curLineObj, "local");
90
+ return topY + (top ? 0 : curLineObj.height);
91
+ }
92
+
93
+ var lastLine = cm.lastLine()
94
+ if (cm.display.barWidth) for (var i = 0, nextTop; i < anns.length; i++) {
95
+ var ann = anns[i];
96
+ if (ann.to.line > lastLine) continue;
97
+ var top = nextTop || getY(ann.from, true) * hScale;
98
+ var bottom = getY(ann.to, false) * hScale;
99
+ while (i < anns.length - 1) {
100
+ if (anns[i + 1].to.line > lastLine) break;
101
+ nextTop = getY(anns[i + 1].from, true) * hScale;
102
+ if (nextTop > bottom + .9) break;
103
+ ann = anns[++i];
104
+ bottom = getY(ann.to, false) * hScale;
105
+ }
106
+ if (bottom == top) continue;
107
+ var height = Math.max(bottom - top, 3);
108
+
109
+ var elt = frag.appendChild(document.createElement("div"));
110
+ elt.style.cssText = "position: absolute; right: 0px; width: " + Math.max(cm.display.barWidth - 1, 2) + "px; top: "
111
+ + (top + this.buttonHeight) + "px; height: " + height + "px";
112
+ elt.className = this.options.className;
113
+ if (ann.id) {
114
+ elt.setAttribute("annotation-id", ann.id);
115
+ }
116
+ }
117
+ this.div.textContent = "";
118
+ this.div.appendChild(frag);
119
+ };
120
+
121
+ Annotation.prototype.clear = function() {
122
+ this.cm.off("refresh", this.resizeHandler);
123
+ this.cm.off("markerAdded", this.resizeHandler);
124
+ this.cm.off("markerCleared", this.resizeHandler);
125
+ if (this.changeHandler) this.cm.off("changes", this.changeHandler);
126
+ this.div.parentNode.removeChild(this.div);
127
+ };
128
+ });
@@ -0,0 +1,48 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: https://codemirror.net/5/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
+ });
@@ -0,0 +1,66 @@
1
+ .CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {
2
+ position: absolute;
3
+ background: #ccc;
4
+ -moz-box-sizing: border-box;
5
+ box-sizing: border-box;
6
+ border: 1px solid #bbb;
7
+ border-radius: 2px;
8
+ }
9
+
10
+ .CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical {
11
+ position: absolute;
12
+ z-index: 6;
13
+ background: #eee;
14
+ }
15
+
16
+ .CodeMirror-simplescroll-horizontal {
17
+ bottom: 0; left: 0;
18
+ height: 8px;
19
+ }
20
+ .CodeMirror-simplescroll-horizontal div {
21
+ bottom: 0;
22
+ height: 100%;
23
+ }
24
+
25
+ .CodeMirror-simplescroll-vertical {
26
+ right: 0; top: 0;
27
+ width: 8px;
28
+ }
29
+ .CodeMirror-simplescroll-vertical div {
30
+ right: 0;
31
+ width: 100%;
32
+ }
33
+
34
+
35
+ .CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler {
36
+ display: none;
37
+ }
38
+
39
+ .CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div {
40
+ position: absolute;
41
+ background: #bcd;
42
+ border-radius: 3px;
43
+ }
44
+
45
+ .CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical {
46
+ position: absolute;
47
+ z-index: 6;
48
+ }
49
+
50
+ .CodeMirror-overlayscroll-horizontal {
51
+ bottom: 0; left: 0;
52
+ height: 6px;
53
+ }
54
+ .CodeMirror-overlayscroll-horizontal div {
55
+ bottom: 0;
56
+ height: 100%;
57
+ }
58
+
59
+ .CodeMirror-overlayscroll-vertical {
60
+ right: 0; top: 0;
61
+ width: 6px;
62
+ }
63
+ .CodeMirror-overlayscroll-vertical div {
64
+ right: 0;
65
+ width: 100%;
66
+ }