| @@ -1,6 +1,798 @@ | ||
| 1 | -ace.define("ace/mode/doc_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",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};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.DocCommentHighlightRules=s}),ace.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){"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"}],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("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t=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|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|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","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?: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]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{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:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\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:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\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:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,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:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{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|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:"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"}],function_arguments:[{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{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:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),(!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/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/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(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/cstyle").CstyleBehaviour,f=e("./folding/cstyle").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.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"";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 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) { | |
| 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) { | |
| 3 | 795 | if (typeof module == "object" && typeof exports == "object" && module) { |
| 4 | 796 | module.exports = m; |
| 5 | 797 | } |
| 6 | 798 | }); |