| @@ -1,800 +1,7 @@ | ||
| 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) { | |
| 1 | +ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.\-\'\" ]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},s.getTagRule(),{defaultToken:"comment.doc.body",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:/\/\*\*(?!\/)/,next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=s}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"</?(?:"+e+"|(?=>))",next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var n={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[n,t,{include:"reference"},{defaultToken:"string.xml"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t={"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|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|async|await|break|case|catch|continue|default|delete|do|else|finally|for|if|in|of|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|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},n=this.createKeywordMapper(t,"identifier"),r="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",s="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)",u="(function)(\\s*)(\\*?)",l={token:["identifier","text","paren.lparen"],regex:"(\\b(?!"+Object.values(t).join("|")+"\\b)"+o+")(\\s*)(\\()"};this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),l,{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)"+u+"(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","storage.type","text","text","entity.name.function","text","paren.lparen"],regex:"(function)(?:(?:(\\s*)(\\*)(\\s*))|(\\s+))("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)"+u+"(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)"+u+"(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+r+")\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|debug|time|trace|timeEnd|assert)\b/},{token:n,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:"keyword.operator",regex:/=/},{token:["storage.type","text","storage.type","text","paren.lparen"],regex:u+"(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","storage.type","text","text","entity.name.function","text","paren.lparen"],regex:"(function)(?:(?:(\\s*)(\\*)(\\s*))|(\\s+))(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:"prototype"},{token:"support.function",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(?=\()/},{token:"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|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"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:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.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:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[f("function_arguments"),{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+o+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=[^\\(]+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";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){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator"],function(e,t,n){"use strict";function o(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,u=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var u=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:u+a+u,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==u&&(o(p,"attribute-value")||o(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(o(p,"tag-whitespace")||o(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(o(p,"attribute-equals")&&(d||c==">")||o(p,"decl-attribute-equals")&&(d||c=="?"))return{text:u+u,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}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var u=n.getSelectionRange().start,a=new s(r,u.row,u.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(o(f,"tag-name")||o(f,"tag-whitespace")||o(f,"attribute-name")||o(f,"attribute-equals")||o(f,"attribute-value")))return;if(o(f,"reference.attribute-value"))return;if(o(f,"attribute-value")){var l=a.getCurrentTokenColumn()+f.value.length;if(u.column<l)return;if(u.column==l){var c=a.stepForward();if(c&&o(c,"attribute-value"))return;a.stepBackward()}}if(/^\s*>/.test(r.getLine(u.row).slice(u.column)))return;while(!o(f,"tag-name")){f=a.stepBackward();if(f.value=="<"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(o(a.stepBackward(),"end-tag-open"))return;var d=f.value;h==u.row&&(d=d.substring(0,u.column-p));if(this.voidElements&&this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:"></"+d+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var u=n.getCursorPosition(),a=r.getLine(u.row),f=new s(r,u.row,u.column),l=f.getCurrentToken();if(o(l,"")&&l.type.indexOf("tag-close")!==-1){if(l.value=="/>")return;while(l&&l.type.indexOf("tag-name")===-1)l=f.stepBackward();if(!l)return;var c=l.value,h=f.getCurrentTokenRow();l=f.stepBackward();if(!l||l.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[c]||!this.voidElements){var p=r.getTokenAt(u.row,u.column+1),a=r.getLine(h),d=this.$getIndent(a),v=d+r.getTabString();return p&&p.value==="</"?{text:"\n"+v+"\n"+d,selection:[1,v.length,1,v.length]}:{text:"\n"+v}}}}})};r.inherits(u,i),t.XmlBehaviour=u}),ace.define("ace/mode/behaviour/javascript",["require","exports","module","ace/lib/oop","ace/token_iterator","ace/mode/behaviour/cstyle","ace/mode/behaviour/xml"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../token_iterator").TokenIterator,s=e("../behaviour/cstyle").CstyleBehaviour,o=e("../behaviour/xml").XmlBehaviour,u=function(){var e=(new o({closeCurlyBraces:!0})).getBehaviours();this.addBehaviours(e),this.inherit(s),this.add("autoclosing-fragment","insertion",function(e,t,n,r,s){if(s==">"){var o=n.getSelectionRange().start,u=new i(r,o.row,o.column),a=u.getCurrentToken()||u.stepBackward();if(!a)return;if(a.value=="<")return{text:"></>",selection:[1,1]}}})};r.inherits(u,s),t.JavaScriptBehaviour=u}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";function a(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e,t){s.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(o,s);var u=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new u;for(var i=0;i<n.length;i++){var s=n[i];if(a(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=a(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value;if(s.value===""){s=n[++i];if(!s)return null;r.tagName=s.value}r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(a(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(a(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r-1)continue;if(a(u,"end-tag-open")){u=i[o+1],a(u,"tag-name")&&u.value===""&&(u=i[o+2]);if(u&&u.value==n)return!0}}return!1},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var s=e.getMatchingTags({row:n,column:0});if(s)return new i(s.openTag.end.row,s.openTag.end.column,s.closeTag.start.row,s.closeTag.start.column)}}).call(o.prototype)}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/folding/javascript",["require","exports","module","ace/lib/oop","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./xml").FoldMode,s=e("./cstyle").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end))),this.xmlFoldMode=new i};r.inherits(o,s),function(){this.getFoldWidgetRangeBase=this.getFoldWidgetRange,this.getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=this.getFoldWidgetBase(e,t,n);return r?r:this.xmlFoldMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n,r){var i=this.getFoldWidgetRangeBase(e,t,n,r);return i?i:this.xmlFoldMode.getFoldWidgetRange(e,t,n)}}.call(o.prototype)}),ace.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/javascript","ace/mode/folding/javascript"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/javascript").JavaScriptBehaviour,f=e("./folding/javascript").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start")if(o=="start"||o=="no_regex")return"";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 u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(l.prototype),t.Mode=l}); (function() { | |
| 2 | + ace.require(["ace/mode/javascript"], function(m) { | |
| 795 | 3 | if (typeof module == "object" && typeof exports == "object" && module) { |
| 796 | 4 | module.exports = m; |
| 797 | 5 | } |
| 798 | 6 | }); |
| 799 | 7 | })(); |
| 800 | - | |