PluginProbe
CSS & JavaScript Toolbox / 6.0.9
CSS & JavaScript Toolbox v6.0.9
trunk 0.3 0.8 10 10.1 11 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 11.9.1 12 12.0 12.0.1 12.0.3 12.0.4 12.0.5 12.0.6 12.0.7 6.0 6.0.11 All 60 releases
← All changes | framework/js/ace/mode-javascript.js +1 -800 11.96.0.9 View file →
@@ -1,800 +1 @@
1 -define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
2 -var oop = require("../lib/oop");
3 -var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
4 -var DocCommentHighlightRules = function () {
5 - this.$rules = {
6 - "start": [{
7 - token: "comment.doc.tag",
8 - regex: "@[\\w\\d_]+" // TODO: fix email addresses
9 - },
10 - DocCommentHighlightRules.getTagRule(),
11 - {
12 - defaultToken: "comment.doc",
13 - caseInsensitive: true
14 - }]
15 - };
16 -};
17 -oop.inherits(DocCommentHighlightRules, TextHighlightRules);
18 -DocCommentHighlightRules.getTagRule = function (start) {
19 - return {
20 - token: "comment.doc.tag.storage.type",
21 - regex: "\\b(?:TODO|FIXME|XXX|HACK)\\b"
22 - };
23 -};
24 -DocCommentHighlightRules.getStartRule = function (start) {
25 - return {
26 - token: "comment.doc",
27 - regex: "\\/\\*(?=\\*)",
28 - next: start
29 - };
30 -};
31 -DocCommentHighlightRules.getEndRule = function (start) {
32 - return {
33 - token: "comment.doc",
34 - regex: "\\*\\/",
35 - next: start
36 - };
37 -};
38 -exports.DocCommentHighlightRules = DocCommentHighlightRules;
39 -
40 -});
41 -
42 -define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
43 -var oop = require("../lib/oop");
44 -var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
45 -var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
46 -var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*";
47 -var JavaScriptHighlightRules = function (options) {
48 - var keywordMapper = this.createKeywordMapper({
49 - "variable.language": "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|" + // Constructors
50 - "Namespace|QName|XML|XMLList|" + // E4X
51 - "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" +
52 - "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" +
53 - "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors
54 - "SyntaxError|TypeError|URIError|" +
55 - "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions
56 - "isNaN|parseFloat|parseInt|" +
57 - "JSON|Math|" + // Other
58 - "this|arguments|prototype|window|document",
59 - "keyword": "const|yield|import|get|set|async|await|" +
60 - "break|case|catch|continue|default|delete|do|else|finally|for|function|" +
61 - "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
62 - "__parent__|__count__|escape|unescape|with|__proto__|" +
63 - "class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor",
64 - "storage.type": "const|let|var|function",
65 - "constant.language": "null|Infinity|NaN|undefined",
66 - "support.function": "alert",
67 - "constant.language.boolean": "true|false"
68 - }, "identifier");
69 - var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void";
70 - var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex
71 - "u[0-9a-fA-F]{4}|" + // unicode
72 - "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode
73 - "[0-2][0-7]{0,2}|" + // oct
74 - "3[0-7][0-7]?|" + // oct
75 - "[4-7][0-7]?|" + //oct
76 - ".)";
77 - this.$rules = {
78 - "no_regex": [
79 - DocCommentHighlightRules.getStartRule("doc-start"),
80 - comments("no_regex"),
81 - {
82 - token: "string",
83 - regex: "'(?=.)",
84 - next: "qstring"
85 - }, {
86 - token: "string",
87 - regex: '"(?=.)',
88 - next: "qqstring"
89 - }, {
90 - token: "constant.numeric",
91 - regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
92 - }, {
93 - token: "constant.numeric",
94 - regex: /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
95 - }, {
96 - token: [
97 - "storage.type", "punctuation.operator", "support.function",
98 - "punctuation.operator", "entity.name.function", "text", "keyword.operator"
99 - ],
100 - regex: "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe + ")(\\s*)(=)",
101 - next: "function_arguments"
102 - }, {
103 - token: [
104 - "storage.type", "punctuation.operator", "entity.name.function", "text",
105 - "keyword.operator", "text", "storage.type", "text", "paren.lparen"
106 - ],
107 - regex: "(" + identifierRe + ")(\\.)(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",
108 - next: "function_arguments"
109 - }, {
110 - token: [
111 - "entity.name.function", "text", "keyword.operator", "text", "storage.type",
112 - "text", "paren.lparen"
113 - ],
114 - regex: "(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",
115 - next: "function_arguments"
116 - }, {
117 - token: [
118 - "storage.type", "punctuation.operator", "entity.name.function", "text",
119 - "keyword.operator", "text",
120 - "storage.type", "text", "entity.name.function", "text", "paren.lparen"
121 - ],
122 - regex: "(" + identifierRe + ")(\\.)(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",
123 - next: "function_arguments"
124 - }, {
125 - token: [
126 - "storage.type", "text", "entity.name.function", "text", "paren.lparen"
127 - ],
128 - regex: "(function\\*?)(\\s+)(" + identifierRe + ")(\\s*)(\\()",
129 - next: "function_arguments"
130 - }, {
131 - token: [
132 - "entity.name.function", "text", "punctuation.operator",
133 - "text", "storage.type", "text", "paren.lparen"
134 - ],
135 - regex: "(" + identifierRe + ")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",
136 - next: "function_arguments"
137 - }, {
138 - token: [
139 - "text", "text", "storage.type", "text", "paren.lparen"
140 - ],
141 - regex: "(:)(\\s*)(function\\*?)(\\s*)(\\()",
142 - next: "function_arguments"
143 - }, {
144 - token: "keyword",
145 - regex: "from(?=\\s*('|\"))"
146 - }, {
147 - token: "keyword",
148 - regex: "(?:" + kwBeforeRe + ")\\b",
149 - next: "start"
150 - }, {
151 - token: "support.constant",
152 - regex: /that\b/
153 - }, {
154 - token: ["storage.type", "punctuation.operator", "support.function.firebug"],
155 - regex: /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/
156 - }, {
157 - token: keywordMapper,
158 - regex: identifierRe
159 - }, {
160 - token: "punctuation.operator",
161 - regex: /[.](?![.])/,
162 - next: "property"
163 - }, {
164 - token: "storage.type",
165 - regex: /=>/,
166 - next: "start"
167 - }, {
168 - token: "keyword.operator",
169 - regex: /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
170 - next: "start"
171 - }, {
172 - token: "punctuation.operator",
173 - regex: /[?:,;.]/,
174 - next: "start"
175 - }, {
176 - token: "paren.lparen",
177 - regex: /[\[({]/,
178 - next: "start"
179 - }, {
180 - token: "paren.rparen",
181 - regex: /[\])}]/
182 - }, {
183 - token: "comment",
184 - regex: /^#!.*$/
185 - }
186 - ],
187 - property: [{
188 - token: "text",
189 - regex: "\\s+"
190 - }, {
191 - token: [
192 - "storage.type", "punctuation.operator", "entity.name.function", "text",
193 - "keyword.operator", "text",
194 - "storage.type", "text", "entity.name.function", "text", "paren.lparen"
195 - ],
196 - regex: "(" + identifierRe + ")(\\.)(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",
197 - next: "function_arguments"
198 - }, {
199 - token: "punctuation.operator",
200 - regex: /[.](?![.])/
201 - }, {
202 - token: "support.function",
203 - regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/
204 - }, {
205 - token: "support.function.dom",
206 - regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/
207 - }, {
208 - token: "support.constant",
209 - regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/
210 - }, {
211 - token: "identifier",
212 - regex: identifierRe
213 - }, {
214 - regex: "",
215 - token: "empty",
216 - next: "no_regex"
217 - }
218 - ],
219 - "start": [
220 - DocCommentHighlightRules.getStartRule("doc-start"),
221 - comments("start"),
222 - {
223 - token: "string.regexp",
224 - regex: "\\/",
225 - next: "regex"
226 - }, {
227 - token: "text",
228 - regex: "\\s+|^$",
229 - next: "start"
230 - }, {
231 - token: "empty",
232 - regex: "",
233 - next: "no_regex"
234 - }
235 - ],
236 - "regex": [
237 - {
238 - token: "regexp.keyword.operator",
239 - regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
240 - }, {
241 - token: "string.regexp",
242 - regex: "/[sxngimy]*",
243 - next: "no_regex"
244 - }, {
245 - token: "invalid",
246 - regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/
247 - }, {
248 - token: "constant.language.escape",
249 - regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/
250 - }, {
251 - token: "constant.language.delimiter",
252 - regex: /\|/
253 - }, {
254 - token: "constant.language.escape",
255 - regex: /\[\^?/,
256 - next: "regex_character_class"
257 - }, {
258 - token: "empty",
259 - regex: "$",
260 - next: "no_regex"
261 - }, {
262 - defaultToken: "string.regexp"
263 - }
264 - ],
265 - "regex_character_class": [
266 - {
267 - token: "regexp.charclass.keyword.operator",
268 - regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
269 - }, {
270 - token: "constant.language.escape",
271 - regex: "]",
272 - next: "regex"
273 - }, {
274 - token: "constant.language.escape",
275 - regex: "-"
276 - }, {
277 - token: "empty",
278 - regex: "$",
279 - next: "no_regex"
280 - }, {
281 - defaultToken: "string.regexp.charachterclass"
282 - }
283 - ],
284 - "default_parameter": [
285 - {
286 - token: "string",
287 - regex: "'(?=.)",
288 - push: [
289 - {
290 - token: "string",
291 - regex: "'|$",
292 - next: "pop"
293 - }, {
294 - include: "qstring"
295 - }
296 - ]
297 - }, {
298 - token: "string",
299 - regex: '"(?=.)',
300 - push: [
301 - {
302 - token: "string",
303 - regex: '"|$',
304 - next: "pop"
305 - }, {
306 - include: "qqstring"
307 - }
308 - ]
309 - }, {
310 - token: "constant.language",
311 - regex: "null|Infinity|NaN|undefined"
312 - }, {
313 - token: "constant.numeric",
314 - regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
315 - }, {
316 - token: "constant.numeric",
317 - regex: /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
318 - }, {
319 - token: "punctuation.operator",
320 - regex: ",",
321 - next: "function_arguments"
322 - }, {
323 - token: "text",
324 - regex: "\\s+"
325 - }, {
326 - token: "punctuation.operator",
327 - regex: "$"
328 - }, {
329 - token: "empty",
330 - regex: "",
331 - next: "no_regex"
332 - }
333 - ],
334 - "function_arguments": [
335 - comments("function_arguments"),
336 - {
337 - token: "variable.parameter",
338 - regex: identifierRe
339 - }, {
340 - token: "punctuation.operator",
341 - regex: ","
342 - }, {
343 - token: "text",
344 - regex: "\\s+"
345 - }, {
346 - token: "punctuation.operator",
347 - regex: "$"
348 - }, {
349 - token: "empty",
350 - regex: "",
351 - next: "no_regex"
352 - }
353 - ],
354 - "qqstring": [
355 - {
356 - token: "constant.language.escape",
357 - regex: escapedRe
358 - }, {
359 - token: "string",
360 - regex: "\\\\$",
361 - consumeLineEnd: true
362 - }, {
363 - token: "string",
364 - regex: '"|$',
365 - next: "no_regex"
366 - }, {
367 - defaultToken: "string"
368 - }
369 - ],
370 - "qstring": [
371 - {
372 - token: "constant.language.escape",
373 - regex: escapedRe
374 - }, {
375 - token: "string",
376 - regex: "\\\\$",
377 - consumeLineEnd: true
378 - }, {
379 - token: "string",
380 - regex: "'|$",
381 - next: "no_regex"
382 - }, {
383 - defaultToken: "string"
384 - }
385 - ]
386 - };
387 - if (!options || !options.noES6) {
388 - this.$rules.no_regex.unshift({
389 - regex: "[{}]", onMatch: function (val, state, stack) {
390 - this.next = val == "{" ? this.nextState : "";
391 - if (val == "{" && stack.length) {
392 - stack.unshift("start", state);
393 - }
394 - else if (val == "}" && stack.length) {
395 - stack.shift();
396 - this.next = stack.shift();
397 - if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1)
398 - return "paren.quasi.end";
399 - }
400 - return val == "{" ? "paren.lparen" : "paren.rparen";
401 - },
402 - nextState: "start"
403 - }, {
404 - token: "string.quasi.start",
405 - regex: /`/,
406 - push: [{
407 - token: "constant.language.escape",
408 - regex: escapedRe
409 - }, {
410 - token: "paren.quasi.start",
411 - regex: /\${/,
412 - push: "start"
413 - }, {
414 - token: "string.quasi.end",
415 - regex: /`/,
416 - next: "pop"
417 - }, {
418 - defaultToken: "string.quasi"
419 - }]
420 - }, {
421 - token: ["variable.parameter", "text"],
422 - regex: "(" + identifierRe + ")(\\s*)(?=\\=>)"
423 - }, {
424 - token: "paren.lparen",
425 - regex: "(\\()(?=.+\\s*=>)",
426 - next: "function_arguments"
427 - }, {
428 - token: "variable.language",
429 - regex: "(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"
430 - });
431 - this.$rules["function_arguments"].unshift({
432 - token: "keyword.operator",
433 - regex: "=",
434 - next: "default_parameter"
435 - }, {
436 - token: "keyword.operator",
437 - regex: "\\.{3}"
438 - });
439 - this.$rules["property"].unshift({
440 - token: "support.function",
441 - regex: "(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|"
442 - + "finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"
443 - }, {
444 - token: "constant.language",
445 - regex: "(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"
446 - });
447 - if (!options || options.jsx != false)
448 - JSX.call(this);
449 - }
450 - this.embedRules(DocCommentHighlightRules, "doc-", [DocCommentHighlightRules.getEndRule("no_regex")]);
451 - this.normalizeRules();
452 -};
453 -oop.inherits(JavaScriptHighlightRules, TextHighlightRules);
454 -function JSX() {
455 - var tagRegex = identifierRe.replace("\\d", "\\d\\-");
456 - var jsxTag = {
457 - onMatch: function (val, state, stack) {
458 - var offset = val.charAt(1) == "/" ? 2 : 1;
459 - if (offset == 1) {
460 - if (state != this.nextState)
461 - stack.unshift(this.next, this.nextState, 0);
462 - else
463 - stack.unshift(this.next);
464 - stack[2]++;
465 - }
466 - else if (offset == 2) {
467 - if (state == this.nextState) {
468 - stack[1]--;
469 - if (!stack[1] || stack[1] < 0) {
470 - stack.shift();
471 - stack.shift();
472 - }
473 - }
474 - }
475 - return [{
476 - type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml",
477 - value: val.slice(0, offset)
478 - }, {
479 - type: "meta.tag.tag-name.xml",
480 - value: val.substr(offset)
481 - }];
482 - },
483 - regex: "</?" + tagRegex + "",
484 - next: "jsxAttributes",
485 - nextState: "jsx"
486 - };
487 - this.$rules.start.unshift(jsxTag);
488 - var jsxJsRule = {
489 - regex: "{",
490 - token: "paren.quasi.start",
491 - push: "start"
492 - };
493 - this.$rules.jsx = [
494 - jsxJsRule,
495 - jsxTag,
496 - { include: "reference" },
497 - { defaultToken: "string" }
498 - ];
499 - this.$rules.jsxAttributes = [{
500 - token: "meta.tag.punctuation.tag-close.xml",
501 - regex: "/?>",
502 - onMatch: function (value, currentState, stack) {
503 - if (currentState == stack[0])
504 - stack.shift();
505 - if (value.length == 2) {
506 - if (stack[0] == this.nextState)
507 - stack[1]--;
508 - if (!stack[1] || stack[1] < 0) {
509 - stack.splice(0, 2);
510 - }
511 - }
512 - this.next = stack[0] || "start";
513 - return [{ type: this.token, value: value }];
514 - },
515 - nextState: "jsx"
516 - },
517 - jsxJsRule,
518 - comments("jsxAttributes"),
519 - {
520 - token: "entity.other.attribute-name.xml",
521 - regex: tagRegex
522 - }, {
523 - token: "keyword.operator.attribute-equals.xml",
524 - regex: "="
525 - }, {
526 - token: "text.tag-whitespace.xml",
527 - regex: "\\s+"
528 - }, {
529 - token: "string.attribute-value.xml",
530 - regex: "'",
531 - stateName: "jsx_attr_q",
532 - push: [
533 - { token: "string.attribute-value.xml", regex: "'", next: "pop" },
534 - { include: "reference" },
535 - { defaultToken: "string.attribute-value.xml" }
536 - ]
537 - }, {
538 - token: "string.attribute-value.xml",
539 - regex: '"',
540 - stateName: "jsx_attr_qq",
541 - push: [
542 - { token: "string.attribute-value.xml", regex: '"', next: "pop" },
543 - { include: "reference" },
544 - { defaultToken: "string.attribute-value.xml" }
545 - ]
546 - },
547 - jsxTag
548 - ];
549 - this.$rules.reference = [{
550 - token: "constant.language.escape.reference.xml",
551 - regex: "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
552 - }];
553 -}
554 -function comments(next) {
555 - return [
556 - {
557 - token: "comment",
558 - regex: /\/\*/,
559 - next: [
560 - DocCommentHighlightRules.getTagRule(),
561 - { token: "comment", regex: "\\*\\/", next: next || "pop" },
562 - { defaultToken: "comment", caseInsensitive: true }
563 - ]
564 - }, {
565 - token: "comment",
566 - regex: "\\/\\/",
567 - next: [
568 - DocCommentHighlightRules.getTagRule(),
569 - { token: "comment", regex: "$|^", next: next || "pop" },
570 - { defaultToken: "comment", caseInsensitive: true }
571 - ]
572 - }
573 - ];
574 -}
575 -exports.JavaScriptHighlightRules = JavaScriptHighlightRules;
576 -
577 -});
578 -
579 -define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module){"use strict";
580 -var Range = require("../range").Range;
581 -var MatchingBraceOutdent = function () { };
582 -(function () {
583 - this.checkOutdent = function (line, input) {
584 - if (!/^\s+$/.test(line))
585 - return false;
586 - return /^\s*\}/.test(input);
587 - };
588 - this.autoOutdent = function (doc, row) {
589 - var line = doc.getLine(row);
590 - var match = line.match(/^(\s*\})/);
591 - if (!match)
592 - return 0;
593 - var column = match[1].length;
594 - var openBracePos = doc.findMatchingBracket({ row: row, column: column });
595 - if (!openBracePos || openBracePos.row == row)
596 - return 0;
597 - var indent = this.$getIndent(doc.getLine(openBracePos.row));
598 - doc.replace(new Range(row, 0, row, column - 1), indent);
599 - };
600 - this.$getIndent = function (line) {
601 - return line.match(/^\s*/)[0];
602 - };
603 -}).call(MatchingBraceOutdent.prototype);
604 -exports.MatchingBraceOutdent = MatchingBraceOutdent;
605 -
606 -});
607 -
608 -define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module){"use strict";
609 -var oop = require("../../lib/oop");
610 -var Range = require("../../range").Range;
611 -var BaseFoldMode = require("./fold_mode").FoldMode;
612 -var FoldMode = exports.FoldMode = function (commentRegex) {
613 - if (commentRegex) {
614 - this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start));
615 - this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end));
616 - }
617 -};
618 -oop.inherits(FoldMode, BaseFoldMode);
619 -(function () {
620 - this.foldingStartMarker = /([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/;
621 - this.foldingStopMarker = /^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/;
622 - this.singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/;
623 - this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
624 - this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
625 - this._getFoldWidgetBase = this.getFoldWidget;
626 - this.getFoldWidget = function (session, foldStyle, row) {
627 - var line = session.getLine(row);
628 - if (this.singleLineBlockCommentRe.test(line)) {
629 - if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
630 - return "";
631 - }
632 - var fw = this._getFoldWidgetBase(session, foldStyle, row);
633 - if (!fw && this.startRegionRe.test(line))
634 - return "start"; // lineCommentRegionStart
635 - return fw;
636 - };
637 - this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {
638 - var line = session.getLine(row);
639 - if (this.startRegionRe.test(line))
640 - return this.getCommentRegionBlock(session, line, row);
641 - var match = line.match(this.foldingStartMarker);
642 - if (match) {
643 - var i = match.index;
644 - if (match[1])
645 - return this.openingBracketBlock(session, match[1], row, i);
646 - var range = session.getCommentFoldRange(row, i + match[0].length, 1);
647 - if (range && !range.isMultiLine()) {
648 - if (forceMultiline) {
649 - range = this.getSectionRange(session, row);
650 - }
651 - else if (foldStyle != "all")
652 - range = null;
653 - }
654 - return range;
655 - }
656 - if (foldStyle === "markbegin")
657 - return;
658 - var match = line.match(this.foldingStopMarker);
659 - if (match) {
660 - var i = match.index + match[0].length;
661 - if (match[1])
662 - return this.closingBracketBlock(session, match[1], row, i);
663 - return session.getCommentFoldRange(row, i, -1);
664 - }
665 - };
666 - this.getSectionRange = function (session, row) {
667 - var line = session.getLine(row);
668 - var startIndent = line.search(/\S/);
669 - var startRow = row;
670 - var startColumn = line.length;
671 - row = row + 1;
672 - var endRow = row;
673 - var maxRow = session.getLength();
674 - while (++row < maxRow) {
675 - line = session.getLine(row);
676 - var indent = line.search(/\S/);
677 - if (indent === -1)
678 - continue;
679 - if (startIndent > indent)
680 - break;
681 - var subRange = this.getFoldWidgetRange(session, "all", row);
682 - if (subRange) {
683 - if (subRange.start.row <= startRow) {
684 - break;
685 - }
686 - else if (subRange.isMultiLine()) {
687 - row = subRange.end.row;
688 - }
689 - else if (startIndent == indent) {
690 - break;
691 - }
692 - }
693 - endRow = row;
694 - }
695 - return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
696 - };
697 - this.getCommentRegionBlock = function (session, line, row) {
698 - var startColumn = line.search(/\s*$/);
699 - var maxRow = session.getLength();
700 - var startRow = row;
701 - var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
702 - var depth = 1;
703 - while (++row < maxRow) {
704 - line = session.getLine(row);
705 - var m = re.exec(line);
706 - if (!m)
707 - continue;
708 - if (m[1])
709 - depth--;
710 - else
711 - depth++;
712 - if (!depth)
713 - break;
714 - }
715 - var endRow = row;
716 - if (endRow > startRow) {
717 - return new Range(startRow, startColumn, endRow, line.length);
718 - }
719 - };
720 -}).call(FoldMode.prototype);
721 -
722 -});
723 -
724 -define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module){"use strict";
725 -var oop = require("../lib/oop");
726 -var TextMode = require("./text").Mode;
727 -var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
728 -var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
729 -var WorkerClient = require("../worker/worker_client").WorkerClient;
730 -var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
731 -var CStyleFoldMode = require("./folding/cstyle").FoldMode;
732 -var Mode = function () {
733 - this.HighlightRules = JavaScriptHighlightRules;
734 - this.$outdent = new MatchingBraceOutdent();
735 - this.$behaviour = new CstyleBehaviour();
736 - this.foldingRules = new CStyleFoldMode();
737 -};
738 -oop.inherits(Mode, TextMode);
739 -(function () {
740 - this.lineCommentStart = "//";
741 - this.blockComment = { start: "/*", end: "*/" };
742 - this.$quotes = { '"': '"', "'": "'", "`": "`" };
743 - this.getNextLineIndent = function (state, line, tab) {
744 - var indent = this.$getIndent(line);
745 - var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
746 - var tokens = tokenizedLine.tokens;
747 - var endState = tokenizedLine.state;
748 - if (tokens.length && tokens[tokens.length - 1].type == "comment") {
749 - return indent;
750 - }
751 - if (state == "start" || state == "no_regex") {
752 - var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);
753 - if (match) {
754 - indent += tab;
755 - }
756 - }
757 - else if (state == "doc-start") {
758 - if (endState == "start" || endState == "no_regex") {
759 - return "";
760 - }
761 - var match = line.match(/^\s*(\/?)\*/);
762 - if (match) {
763 - if (match[1]) {
764 - indent += " ";
765 - }
766 - indent += "* ";
767 - }
768 - }
769 - return indent;
770 - };
771 - this.checkOutdent = function (state, line, input) {
772 - return this.$outdent.checkOutdent(line, input);
773 - };
774 - this.autoOutdent = function (state, doc, row) {
775 - this.$outdent.autoOutdent(doc, row);
776 - };
777 - this.createWorker = function (session) {
778 - var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker");
779 - worker.attachToDocument(session.getDocument());
780 - worker.on("annotate", function (results) {
781 - session.setAnnotations(results.data);
782 - });
783 - worker.on("terminate", function () {
784 - session.clearAnnotations();
785 - });
786 - return worker;
787 - };
788 - this.$id = "ace/mode/javascript";
789 - this.snippetFileId = "ace/snippets/javascript";
790 -}).call(Mode.prototype);
791 -exports.Mode = Mode;
792 -
793 -}); (function() {
794 - window.require(["ace/mode/javascript"], function(m) {
795 - if (typeof module == "object" && typeof exports == "object" && module) {
796 - module.exports = m;
797 - }
798 - });
799 - })();
800 -
1 +define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("../worker/worker_client").WorkerClient,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new l,this.foldingRules=new c};r.inherits(h,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="regex_allowed"){var u=t.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||e=="regex_allowed")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("jslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t}}.call(h.prototype),t.Mode=h}),define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),t="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",n="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*\\b",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},i.getStartRule("doc-start"),{token:"comment",regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+n+")(\\.)(prototype)(\\.)("+n+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+n+")(\\.)("+n+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+n+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+n+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"(?:"+t+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:e,regex:n},{token:"keyword.operator",regex:/--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/}],regex_allowed:[i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start"},{token:"invalid",regex:/\{\d+,?(?:\d+)?}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|{\d+,?(?:\d+)?}|{,\d+}|[+*]\?|[()$^+*?]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"start"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"start"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:n},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:"\\*\\/",next:"regex_allowed"},{defaultToken:"comment"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(o,s),t.JavaScriptHighlightRules=o}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc.tag",regex:"\\bTODO\\b"},{defaultToken:"comment.doc"}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;v<c.length;v++){p=c[v],p.type=="string"?d=-1:d<0&&(d=p.value.indexOf(s));if(p.value.length+h>o.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)})