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,142 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: https://codemirror.net/5/LICENSE
3
+
4
+ /*
5
+ DTD mode
6
+ Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>
7
+ Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues
8
+ GitHub: @peterkroon
9
+ */
10
+
11
+ (function(mod) {
12
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
13
+ mod(require("../../lib/codemirror"));
14
+ else if (typeof define == "function" && define.amd) // AMD
15
+ define(["../../lib/codemirror"], mod);
16
+ else // Plain browser env
17
+ mod(CodeMirror);
18
+ })(function(CodeMirror) {
19
+ "use strict";
20
+
21
+ CodeMirror.defineMode("dtd", function(config) {
22
+ var indentUnit = config.indentUnit, type;
23
+ function ret(style, tp) {type = tp; return style;}
24
+
25
+ function tokenBase(stream, state) {
26
+ var ch = stream.next();
27
+
28
+ if (ch == "<" && stream.eat("!") ) {
29
+ if (stream.eatWhile(/[\-]/)) {
30
+ state.tokenize = tokenSGMLComment;
31
+ return tokenSGMLComment(stream, state);
32
+ } else if (stream.eatWhile(/[\w]/)) return ret("keyword", "doindent");
33
+ } else if (ch == "<" && stream.eat("?")) { //xml declaration
34
+ state.tokenize = inBlock("meta", "?>");
35
+ return ret("meta", ch);
36
+ } else if (ch == "#" && stream.eatWhile(/[\w]/)) return ret("atom", "tag");
37
+ else if (ch == "|") return ret("keyword", "separator");
38
+ else if (ch.match(/[\(\)\[\]\-\.,\+\?>]/)) return ret(null, ch);//if(ch === ">") return ret(null, "endtag"); else
39
+ else if (ch.match(/[\[\]]/)) return ret("rule", ch);
40
+ else if (ch == "\"" || ch == "'") {
41
+ state.tokenize = tokenString(ch);
42
+ return state.tokenize(stream, state);
43
+ } else if (stream.eatWhile(/[a-zA-Z\?\+\d]/)) {
44
+ var sc = stream.current();
45
+ if( sc.substr(sc.length-1,sc.length).match(/\?|\+/) !== null )stream.backUp(1);
46
+ return ret("tag", "tag");
47
+ } else if (ch == "%" || ch == "*" ) return ret("number", "number");
48
+ else {
49
+ stream.eatWhile(/[\w\\\-_%.{,]/);
50
+ return ret(null, null);
51
+ }
52
+ }
53
+
54
+ function tokenSGMLComment(stream, state) {
55
+ var dashes = 0, ch;
56
+ while ((ch = stream.next()) != null) {
57
+ if (dashes >= 2 && ch == ">") {
58
+ state.tokenize = tokenBase;
59
+ break;
60
+ }
61
+ dashes = (ch == "-") ? dashes + 1 : 0;
62
+ }
63
+ return ret("comment", "comment");
64
+ }
65
+
66
+ function tokenString(quote) {
67
+ return function(stream, state) {
68
+ var escaped = false, ch;
69
+ while ((ch = stream.next()) != null) {
70
+ if (ch == quote && !escaped) {
71
+ state.tokenize = tokenBase;
72
+ break;
73
+ }
74
+ escaped = !escaped && ch == "\\";
75
+ }
76
+ return ret("string", "tag");
77
+ };
78
+ }
79
+
80
+ function inBlock(style, terminator) {
81
+ return function(stream, state) {
82
+ while (!stream.eol()) {
83
+ if (stream.match(terminator)) {
84
+ state.tokenize = tokenBase;
85
+ break;
86
+ }
87
+ stream.next();
88
+ }
89
+ return style;
90
+ };
91
+ }
92
+
93
+ return {
94
+ startState: function(base) {
95
+ return {tokenize: tokenBase,
96
+ baseIndent: base || 0,
97
+ stack: []};
98
+ },
99
+
100
+ token: function(stream, state) {
101
+ if (stream.eatSpace()) return null;
102
+ var style = state.tokenize(stream, state);
103
+
104
+ var context = state.stack[state.stack.length-1];
105
+ if (stream.current() == "[" || type === "doindent" || type == "[") state.stack.push("rule");
106
+ else if (type === "endtag") state.stack[state.stack.length-1] = "endtag";
107
+ else if (stream.current() == "]" || type == "]" || (type == ">" && context == "rule")) state.stack.pop();
108
+ else if (type == "[") state.stack.push("[");
109
+ return style;
110
+ },
111
+
112
+ indent: function(state, textAfter) {
113
+ var n = state.stack.length;
114
+
115
+ if( textAfter.charAt(0) === ']' )n--;
116
+ else if(textAfter.substr(textAfter.length-1, textAfter.length) === ">"){
117
+ if(textAfter.substr(0,1) === "<") {}
118
+ else if( type == "doindent" && textAfter.length > 1 ) {}
119
+ else if( type == "doindent")n--;
120
+ else if( type == ">" && textAfter.length > 1) {}
121
+ else if( type == "tag" && textAfter !== ">") {}
122
+ else if( type == "tag" && state.stack[state.stack.length-1] == "rule")n--;
123
+ else if( type == "tag")n++;
124
+ else if( textAfter === ">" && state.stack[state.stack.length-1] == "rule" && type === ">")n--;
125
+ else if( textAfter === ">" && state.stack[state.stack.length-1] == "rule") {}
126
+ else if( textAfter.substr(0,1) !== "<" && textAfter.substr(0,1) === ">" )n=n-1;
127
+ else if( textAfter === ">") {}
128
+ else n=n-1;
129
+ //over rule them all
130
+ if(type == null || type == "]")n--;
131
+ }
132
+
133
+ return state.baseIndent + n * indentUnit;
134
+ },
135
+
136
+ electricChars: "]>"
137
+ };
138
+ });
139
+
140
+ CodeMirror.defineMIME("application/xml-dtd", "dtd");
141
+
142
+ });
@@ -0,0 +1,352 @@
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
+ function forEach(arr, f) {
15
+ for (var i = 0; i < arr.length; i++) f(arr[i], i)
16
+ }
17
+ function some(arr, f) {
18
+ for (var i = 0; i < arr.length; i++) if (f(arr[i], i)) return true
19
+ return false
20
+ }
21
+
22
+ CodeMirror.defineMode("dylan", function(_config) {
23
+ // Words
24
+ var words = {
25
+ // Words that introduce unnamed definitions like "define interface"
26
+ unnamedDefinition: ["interface"],
27
+
28
+ // Words that introduce simple named definitions like "define library"
29
+ namedDefinition: ["module", "library", "macro",
30
+ "C-struct", "C-union",
31
+ "C-function", "C-callable-wrapper"
32
+ ],
33
+
34
+ // Words that introduce type definitions like "define class".
35
+ // These are also parameterized like "define method" and are
36
+ // appended to otherParameterizedDefinitionWords
37
+ typeParameterizedDefinition: ["class", "C-subtype", "C-mapped-subtype"],
38
+
39
+ // Words that introduce trickier definitions like "define method".
40
+ // These require special definitions to be added to startExpressions
41
+ otherParameterizedDefinition: ["method", "function",
42
+ "C-variable", "C-address"
43
+ ],
44
+
45
+ // Words that introduce module constant definitions.
46
+ // These must also be simple definitions and are
47
+ // appended to otherSimpleDefinitionWords
48
+ constantSimpleDefinition: ["constant"],
49
+
50
+ // Words that introduce module variable definitions.
51
+ // These must also be simple definitions and are
52
+ // appended to otherSimpleDefinitionWords
53
+ variableSimpleDefinition: ["variable"],
54
+
55
+ // Other words that introduce simple definitions
56
+ // (without implicit bodies).
57
+ otherSimpleDefinition: ["generic", "domain",
58
+ "C-pointer-type",
59
+ "table"
60
+ ],
61
+
62
+ // Words that begin statements with implicit bodies.
63
+ statement: ["if", "block", "begin", "method", "case",
64
+ "for", "select", "when", "unless", "until",
65
+ "while", "iterate", "profiling", "dynamic-bind"
66
+ ],
67
+
68
+ // Patterns that act as separators in compound statements.
69
+ // This may include any general pattern that must be indented
70
+ // specially.
71
+ separator: ["finally", "exception", "cleanup", "else",
72
+ "elseif", "afterwards"
73
+ ],
74
+
75
+ // Keywords that do not require special indentation handling,
76
+ // but which should be highlighted
77
+ other: ["above", "below", "by", "from", "handler", "in",
78
+ "instance", "let", "local", "otherwise", "slot",
79
+ "subclass", "then", "to", "keyed-by", "virtual"
80
+ ],
81
+
82
+ // Condition signaling function calls
83
+ signalingCalls: ["signal", "error", "cerror",
84
+ "break", "check-type", "abort"
85
+ ]
86
+ };
87
+
88
+ words["otherDefinition"] =
89
+ words["unnamedDefinition"]
90
+ .concat(words["namedDefinition"])
91
+ .concat(words["otherParameterizedDefinition"]);
92
+
93
+ words["definition"] =
94
+ words["typeParameterizedDefinition"]
95
+ .concat(words["otherDefinition"]);
96
+
97
+ words["parameterizedDefinition"] =
98
+ words["typeParameterizedDefinition"]
99
+ .concat(words["otherParameterizedDefinition"]);
100
+
101
+ words["simpleDefinition"] =
102
+ words["constantSimpleDefinition"]
103
+ .concat(words["variableSimpleDefinition"])
104
+ .concat(words["otherSimpleDefinition"]);
105
+
106
+ words["keyword"] =
107
+ words["statement"]
108
+ .concat(words["separator"])
109
+ .concat(words["other"]);
110
+
111
+ // Patterns
112
+ var symbolPattern = "[-_a-zA-Z?!*@<>$%]+";
113
+ var symbol = new RegExp("^" + symbolPattern);
114
+ var patterns = {
115
+ // Symbols with special syntax
116
+ symbolKeyword: symbolPattern + ":",
117
+ symbolClass: "<" + symbolPattern + ">",
118
+ symbolGlobal: "\\*" + symbolPattern + "\\*",
119
+ symbolConstant: "\\$" + symbolPattern
120
+ };
121
+ var patternStyles = {
122
+ symbolKeyword: "atom",
123
+ symbolClass: "tag",
124
+ symbolGlobal: "variable-2",
125
+ symbolConstant: "variable-3"
126
+ };
127
+
128
+ // Compile all patterns to regular expressions
129
+ for (var patternName in patterns)
130
+ if (patterns.hasOwnProperty(patternName))
131
+ patterns[patternName] = new RegExp("^" + patterns[patternName]);
132
+
133
+ // Names beginning "with-" and "without-" are commonly
134
+ // used as statement macro
135
+ patterns["keyword"] = [/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];
136
+
137
+ var styles = {};
138
+ styles["keyword"] = "keyword";
139
+ styles["definition"] = "def";
140
+ styles["simpleDefinition"] = "def";
141
+ styles["signalingCalls"] = "builtin";
142
+
143
+ // protected words lookup table
144
+ var wordLookup = {};
145
+ var styleLookup = {};
146
+
147
+ forEach([
148
+ "keyword",
149
+ "definition",
150
+ "simpleDefinition",
151
+ "signalingCalls"
152
+ ], function(type) {
153
+ forEach(words[type], function(word) {
154
+ wordLookup[word] = type;
155
+ styleLookup[word] = styles[type];
156
+ });
157
+ });
158
+
159
+
160
+ function chain(stream, state, f) {
161
+ state.tokenize = f;
162
+ return f(stream, state);
163
+ }
164
+
165
+ function tokenBase(stream, state) {
166
+ // String
167
+ var ch = stream.peek();
168
+ if (ch == "'" || ch == '"') {
169
+ stream.next();
170
+ return chain(stream, state, tokenString(ch, "string"));
171
+ }
172
+ // Comment
173
+ else if (ch == "/") {
174
+ stream.next();
175
+ if (stream.eat("*")) {
176
+ return chain(stream, state, tokenComment);
177
+ } else if (stream.eat("/")) {
178
+ stream.skipToEnd();
179
+ return "comment";
180
+ }
181
+ stream.backUp(1);
182
+ }
183
+ // Decimal
184
+ else if (/[+\-\d\.]/.test(ch)) {
185
+ if (stream.match(/^[+-]?[0-9]*\.[0-9]*([esdx][+-]?[0-9]+)?/i) ||
186
+ stream.match(/^[+-]?[0-9]+([esdx][+-]?[0-9]+)/i) ||
187
+ stream.match(/^[+-]?\d+/)) {
188
+ return "number";
189
+ }
190
+ }
191
+ // Hash
192
+ else if (ch == "#") {
193
+ stream.next();
194
+ // Symbol with string syntax
195
+ ch = stream.peek();
196
+ if (ch == '"') {
197
+ stream.next();
198
+ return chain(stream, state, tokenString('"', "string"));
199
+ }
200
+ // Binary number
201
+ else if (ch == "b") {
202
+ stream.next();
203
+ stream.eatWhile(/[01]/);
204
+ return "number";
205
+ }
206
+ // Hex number
207
+ else if (ch == "x") {
208
+ stream.next();
209
+ stream.eatWhile(/[\da-f]/i);
210
+ return "number";
211
+ }
212
+ // Octal number
213
+ else if (ch == "o") {
214
+ stream.next();
215
+ stream.eatWhile(/[0-7]/);
216
+ return "number";
217
+ }
218
+ // Token concatenation in macros
219
+ else if (ch == '#') {
220
+ stream.next();
221
+ return "punctuation";
222
+ }
223
+ // Sequence literals
224
+ else if ((ch == '[') || (ch == '(')) {
225
+ stream.next();
226
+ return "bracket";
227
+ // Hash symbol
228
+ } else if (stream.match(/f|t|all-keys|include|key|next|rest/i)) {
229
+ return "atom";
230
+ } else {
231
+ stream.eatWhile(/[-a-zA-Z]/);
232
+ return "error";
233
+ }
234
+ } else if (ch == "~") {
235
+ stream.next();
236
+ ch = stream.peek();
237
+ if (ch == "=") {
238
+ stream.next();
239
+ ch = stream.peek();
240
+ if (ch == "=") {
241
+ stream.next();
242
+ return "operator";
243
+ }
244
+ return "operator";
245
+ }
246
+ return "operator";
247
+ } else if (ch == ":") {
248
+ stream.next();
249
+ ch = stream.peek();
250
+ if (ch == "=") {
251
+ stream.next();
252
+ return "operator";
253
+ } else if (ch == ":") {
254
+ stream.next();
255
+ return "punctuation";
256
+ }
257
+ } else if ("[](){}".indexOf(ch) != -1) {
258
+ stream.next();
259
+ return "bracket";
260
+ } else if (".,".indexOf(ch) != -1) {
261
+ stream.next();
262
+ return "punctuation";
263
+ } else if (stream.match("end")) {
264
+ return "keyword";
265
+ }
266
+ for (var name in patterns) {
267
+ if (patterns.hasOwnProperty(name)) {
268
+ var pattern = patterns[name];
269
+ if ((pattern instanceof Array && some(pattern, function(p) {
270
+ return stream.match(p);
271
+ })) || stream.match(pattern))
272
+ return patternStyles[name];
273
+ }
274
+ }
275
+ if (/[+\-*\/^=<>&|]/.test(ch)) {
276
+ stream.next();
277
+ return "operator";
278
+ }
279
+ if (stream.match("define")) {
280
+ return "def";
281
+ } else {
282
+ stream.eatWhile(/[\w\-]/);
283
+ // Keyword
284
+ if (wordLookup.hasOwnProperty(stream.current())) {
285
+ return styleLookup[stream.current()];
286
+ } else if (stream.current().match(symbol)) {
287
+ return "variable";
288
+ } else {
289
+ stream.next();
290
+ return "variable-2";
291
+ }
292
+ }
293
+ }
294
+
295
+ function tokenComment(stream, state) {
296
+ var maybeEnd = false, maybeNested = false, nestedCount = 0, ch;
297
+ while ((ch = stream.next())) {
298
+ if (ch == "/" && maybeEnd) {
299
+ if (nestedCount > 0) {
300
+ nestedCount--;
301
+ } else {
302
+ state.tokenize = tokenBase;
303
+ break;
304
+ }
305
+ } else if (ch == "*" && maybeNested) {
306
+ nestedCount++;
307
+ }
308
+ maybeEnd = (ch == "*");
309
+ maybeNested = (ch == "/");
310
+ }
311
+ return "comment";
312
+ }
313
+
314
+ function tokenString(quote, style) {
315
+ return function(stream, state) {
316
+ var escaped = false, next, end = false;
317
+ while ((next = stream.next()) != null) {
318
+ if (next == quote && !escaped) {
319
+ end = true;
320
+ break;
321
+ }
322
+ escaped = !escaped && next == "\\";
323
+ }
324
+ if (end || !escaped) {
325
+ state.tokenize = tokenBase;
326
+ }
327
+ return style;
328
+ };
329
+ }
330
+
331
+ // Interface
332
+ return {
333
+ startState: function() {
334
+ return {
335
+ tokenize: tokenBase,
336
+ currentIndent: 0
337
+ };
338
+ },
339
+ token: function(stream, state) {
340
+ if (stream.eatSpace())
341
+ return null;
342
+ var style = state.tokenize(stream, state);
343
+ return style;
344
+ },
345
+ blockCommentStart: "/*",
346
+ blockCommentEnd: "*/"
347
+ };
348
+ });
349
+
350
+ CodeMirror.defineMIME("text/x-dylan", "dylan");
351
+
352
+ });
@@ -0,0 +1,195 @@
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.defineMode("ebnf", function (config) {
15
+ var commentType = {slash: 0, parenthesis: 1};
16
+ var stateType = {comment: 0, _string: 1, characterClass: 2};
17
+ var bracesMode = null;
18
+
19
+ if (config.bracesMode)
20
+ bracesMode = CodeMirror.getMode(config, config.bracesMode);
21
+
22
+ return {
23
+ startState: function () {
24
+ return {
25
+ stringType: null,
26
+ commentType: null,
27
+ braced: 0,
28
+ lhs: true,
29
+ localState: null,
30
+ stack: [],
31
+ inDefinition: false
32
+ };
33
+ },
34
+ token: function (stream, state) {
35
+ if (!stream) return;
36
+
37
+ //check for state changes
38
+ if (state.stack.length === 0) {
39
+ //strings
40
+ if ((stream.peek() == '"') || (stream.peek() == "'")) {
41
+ state.stringType = stream.peek();
42
+ stream.next(); // Skip quote
43
+ state.stack.unshift(stateType._string);
44
+ } else if (stream.match('/*')) { //comments starting with /*
45
+ state.stack.unshift(stateType.comment);
46
+ state.commentType = commentType.slash;
47
+ } else if (stream.match('(*')) { //comments starting with (*
48
+ state.stack.unshift(stateType.comment);
49
+ state.commentType = commentType.parenthesis;
50
+ }
51
+ }
52
+
53
+ //return state
54
+ //stack has
55
+ switch (state.stack[0]) {
56
+ case stateType._string:
57
+ while (state.stack[0] === stateType._string && !stream.eol()) {
58
+ if (stream.peek() === state.stringType) {
59
+ stream.next(); // Skip quote
60
+ state.stack.shift(); // Clear flag
61
+ } else if (stream.peek() === "\\") {
62
+ stream.next();
63
+ stream.next();
64
+ } else {
65
+ stream.match(/^.[^\\\"\']*/);
66
+ }
67
+ }
68
+ return state.lhs ? "property string" : "string"; // Token style
69
+
70
+ case stateType.comment:
71
+ while (state.stack[0] === stateType.comment && !stream.eol()) {
72
+ if (state.commentType === commentType.slash && stream.match('*/')) {
73
+ state.stack.shift(); // Clear flag
74
+ state.commentType = null;
75
+ } else if (state.commentType === commentType.parenthesis && stream.match('*)')) {
76
+ state.stack.shift(); // Clear flag
77
+ state.commentType = null;
78
+ } else {
79
+ stream.match(/^.[^\*]*/);
80
+ }
81
+ }
82
+ return "comment";
83
+
84
+ case stateType.characterClass:
85
+ while (state.stack[0] === stateType.characterClass && !stream.eol()) {
86
+ if (!(stream.match(/^[^\]\\]+/) || stream.match('.'))) {
87
+ state.stack.shift();
88
+ }
89
+ }
90
+ return "operator";
91
+ }
92
+
93
+ var peek = stream.peek();
94
+
95
+ if (bracesMode !== null && (state.braced || peek === "{")) {
96
+ if (state.localState === null)
97
+ state.localState = CodeMirror.startState(bracesMode);
98
+
99
+ var token = bracesMode.token(stream, state.localState),
100
+ text = stream.current();
101
+
102
+ if (!token) {
103
+ for (var i = 0; i < text.length; i++) {
104
+ if (text[i] === "{") {
105
+ if (state.braced === 0) {
106
+ token = "matchingbracket";
107
+ }
108
+ state.braced++;
109
+ } else if (text[i] === "}") {
110
+ state.braced--;
111
+ if (state.braced === 0) {
112
+ token = "matchingbracket";
113
+ }
114
+ }
115
+ }
116
+ }
117
+ return token;
118
+ }
119
+
120
+ //no stack
121
+ switch (peek) {
122
+ case "[":
123
+ stream.next();
124
+ state.stack.unshift(stateType.characterClass);
125
+ return "bracket";
126
+ case ":":
127
+ case "|":
128
+ case ";":
129
+ stream.next();
130
+ return "operator";
131
+ case "%":
132
+ if (stream.match("%%")) {
133
+ return "header";
134
+ } else if (stream.match(/[%][A-Za-z]+/)) {
135
+ return "keyword";
136
+ } else if (stream.match(/[%][}]/)) {
137
+ return "matchingbracket";
138
+ }
139
+ break;
140
+ case "/":
141
+ if (stream.match(/[\/][A-Za-z]+/)) {
142
+ return "keyword";
143
+ }
144
+ case "\\":
145
+ if (stream.match(/[\][a-z]+/)) {
146
+ return "string-2";
147
+ }
148
+ case ".":
149
+ if (stream.match(".")) {
150
+ return "atom";
151
+ }
152
+ case "*":
153
+ case "-":
154
+ case "+":
155
+ case "^":
156
+ if (stream.match(peek)) {
157
+ return "atom";
158
+ }
159
+ case "$":
160
+ if (stream.match("$$")) {
161
+ return "builtin";
162
+ } else if (stream.match(/[$][0-9]+/)) {
163
+ return "variable-3";
164
+ }
165
+ case "<":
166
+ if (stream.match(/<<[a-zA-Z_]+>>/)) {
167
+ return "builtin";
168
+ }
169
+ }
170
+
171
+ if (stream.match('//')) {
172
+ stream.skipToEnd();
173
+ return "comment";
174
+ } else if (stream.match('return')) {
175
+ return "operator";
176
+ } else if (stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)) {
177
+ if (stream.match(/(?=[\(.])/)) {
178
+ return "variable";
179
+ } else if (stream.match(/(?=[\s\n]*[:=])/)) {
180
+ return "def";
181
+ }
182
+ return "variable-2";
183
+ } else if (["[", "]", "(", ")"].indexOf(stream.peek()) != -1) {
184
+ stream.next();
185
+ return "bracket";
186
+ } else if (!stream.eatSpace()) {
187
+ stream.next();
188
+ }
189
+ return null;
190
+ }
191
+ };
192
+ });
193
+
194
+ CodeMirror.defineMIME("text/x-ebnf", "ebnf");
195
+ });