annotate .cms/lib/codemirror/mode/livescript/livescript.js @ 1:1d486627aa1e draft default tip

24.10
author Coffee CMS <info@coffee-cms.ru>
date Sat, 12 Oct 2024 02:51:39 +0000
parents 78edf6b517a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2 // Distributed under an MIT license: https://codemirror.net/5/LICENSE
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4 /**
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5 * Link to the project's GitHub page:
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6 * https://github.com/duralog/CodeMirror
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 */
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 (function(mod) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 if (typeof exports == "object" && typeof module == "object") // CommonJS
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 mod(require("../../lib/codemirror"));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 else if (typeof define == "function" && define.amd) // AMD
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 define(["../../lib/codemirror"], mod);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 else // Plain browser env
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 mod(CodeMirror);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 })(function(CodeMirror) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 "use strict";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 CodeMirror.defineMode('livescript', function(){
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 var tokenBase = function(stream, state) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 var next_rule = state.next || "start";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 if (next_rule) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 state.next = state.next;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 var nr = Rules[next_rule];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 if (nr.splice) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 for (var i$ = 0; i$ < nr.length; ++i$) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 var r = nr[i$];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 if (r.regex && stream.match(r.regex)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 state.next = r.next || state.next;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 return r.token;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 stream.next();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 return 'error';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 if (stream.match(r = Rules[next_rule])) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 if (r.regex && stream.match(r.regex)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 state.next = r.next;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 return r.token;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40 } else {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 stream.next();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 return 'error';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 stream.next();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47 return 'error';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 var external = {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50 startState: function(){
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51 return {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 next: 'start',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53 lastToken: {style: null, indent: 0, content: ""}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 },
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 token: function(stream, state){
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 while (stream.pos == stream.start)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 var style = tokenBase(stream, state);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 state.lastToken = {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60 style: style,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 indent: stream.indentation(),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62 content: stream.current()
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64 return style.replace(/\./g, ' ');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 },
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66 indent: function(state){
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 var indentation = state.lastToken.indent;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68 if (state.lastToken.content.match(indenter)) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 indentation += 2;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71 return indentation;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74 return external;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 var identifier = '(?![\\d\\s])[$\\w\\xAA-\\uFFDC](?:(?!\\s)[$\\w\\xAA-\\uFFDC]|-[A-Za-z])*';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78 var indenter = RegExp('(?:[({[=:]|[-~]>|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*' + identifier + ')?))\\s*$');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79 var keywordend = '(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))';
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 var stringfill = {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81 token: 'string',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 regex: '.+'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84 var Rules = {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 start: [
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86 {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87 token: 'comment.doc',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88 regex: '/\\*',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 next: 'comment'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91 token: 'comment',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92 regex: '#.*'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94 token: 'keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95 regex: '(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)' + keywordend
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
97 token: 'constant.language',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
98 regex: '(?:true|false|yes|no|on|off|null|void|undefined)' + keywordend
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
99 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
100 token: 'invalid.illegal',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
101 regex: '(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)' + keywordend
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
102 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
103 token: 'language.support.class',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
104 regex: '(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)' + keywordend
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
105 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
106 token: 'language.support.function',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
107 regex: '(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)' + keywordend
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
108 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
109 token: 'variable.language',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
110 regex: '(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)' + keywordend
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
111 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
112 token: 'identifier',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
113 regex: identifier + '\\s*:(?![:=])'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
114 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
115 token: 'variable',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
116 regex: identifier
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
117 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
118 token: 'keyword.operator',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
119 regex: '(?:\\.{3}|\\s+\\?)'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
120 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
121 token: 'keyword.variable',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
122 regex: '(?:@+|::|\\.\\.)',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
123 next: 'key'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
124 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
125 token: 'keyword.operator',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
126 regex: '\\.\\s*',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
127 next: 'key'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
128 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
129 token: 'string',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
130 regex: '\\\\\\S[^\\s,;)}\\]]*'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
131 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
132 token: 'string.doc',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
133 regex: '\'\'\'',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
134 next: 'qdoc'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
135 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
136 token: 'string.doc',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
137 regex: '"""',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
138 next: 'qqdoc'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
139 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
140 token: 'string',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
141 regex: '\'',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
142 next: 'qstring'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
143 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
144 token: 'string',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
145 regex: '"',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
146 next: 'qqstring'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
147 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
148 token: 'string',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
149 regex: '`',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
150 next: 'js'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
151 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
152 token: 'string',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
153 regex: '<\\[',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
154 next: 'words'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
155 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
156 token: 'string.regex',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
157 regex: '//',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
158 next: 'heregex'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
159 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
160 token: 'string.regex',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
161 regex: '\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
162 next: 'key'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
163 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
164 token: 'constant.numeric',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
165 regex: '(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
166 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
167 token: 'lparen',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
168 regex: '[({[]'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
169 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
170 token: 'rparen',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
171 regex: '[)}\\]]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
172 next: 'key'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
173 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
174 token: 'keyword.operator',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
175 regex: '\\S+'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
176 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
177 token: 'text',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
178 regex: '\\s+'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
179 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
180 ],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
181 heregex: [
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
182 {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
183 token: 'string.regex',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
184 regex: '.*?//[gimy$?]{0,4}',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
185 next: 'start'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
186 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
187 token: 'string.regex',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
188 regex: '\\s*#{'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
189 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
190 token: 'comment.regex',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
191 regex: '\\s+(?:#.*)?'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
192 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
193 token: 'string.regex',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
194 regex: '\\S+'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
195 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
196 ],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
197 key: [
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
198 {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
199 token: 'keyword.operator',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
200 regex: '[.?@!]+'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
201 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
202 token: 'identifier',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
203 regex: identifier,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
204 next: 'start'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
205 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
206 token: 'text',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
207 regex: '',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
208 next: 'start'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
209 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
210 ],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
211 comment: [
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
212 {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
213 token: 'comment.doc',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
214 regex: '.*?\\*/',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
215 next: 'start'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
216 }, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
217 token: 'comment.doc',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
218 regex: '.+'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
219 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
220 ],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
221 qdoc: [
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
222 {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
223 token: 'string',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
224 regex: ".*?'''",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
225 next: 'key'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
226 }, stringfill
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
227 ],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
228 qqdoc: [
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
229 {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
230 token: 'string',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
231 regex: '.*?"""',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
232 next: 'key'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
233 }, stringfill
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
234 ],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
235 qstring: [
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
236 {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
237 token: 'string',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
238 regex: '[^\\\\\']*(?:\\\\.[^\\\\\']*)*\'',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
239 next: 'key'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
240 }, stringfill
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
241 ],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
242 qqstring: [
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
243 {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
244 token: 'string',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
245 regex: '[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
246 next: 'key'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
247 }, stringfill
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
248 ],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
249 js: [
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
250 {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
251 token: 'string',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
252 regex: '[^\\\\`]*(?:\\\\.[^\\\\`]*)*`',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
253 next: 'key'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
254 }, stringfill
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
255 ],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
256 words: [
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
257 {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
258 token: 'string',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
259 regex: '.*?\\]>',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
260 next: 'key'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
261 }, stringfill
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
262 ]
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
263 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
264 for (var idx in Rules) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
265 var r = Rules[idx];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
266 if (r.splice) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
267 for (var i = 0, len = r.length; i < len; ++i) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
268 var rr = r[i];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
269 if (typeof rr.regex === 'string') {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
270 Rules[idx][i].regex = new RegExp('^' + rr.regex);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
271 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
272 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
273 } else if (typeof rr.regex === 'string') {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
274 Rules[idx].regex = new RegExp('^' + r.regex);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
275 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
276 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
277
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
278 CodeMirror.defineMIME('text/x-livescript', 'livescript');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
279
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
280 });