2014-06-18 23:27:05 +02:00
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/range" , "ace/worker/worker_client" , "ace/mode/behaviour/cstyle" , "ace/mode/folding/cstyle" ] , function ( e , t , n ) { var r = e ( "../lib/oop" ) , i = e ( "./text" ) . Mode , s = e ( "./javascript_highlight_rules" ) . JavaScriptHighlightRules , o = e ( "./matching_brace_outdent" ) . MatchingBraceOutdent , u = e ( "../range" ) . Range , a = e ( "../worker/worker_client" ) . WorkerClient , f = e ( "./behaviour/cstyle" ) . CstyleBehaviour , l = e ( "./folding/cstyle" ) . FoldMode , c = function ( ) { this . HighlightRules = s , this . $outdent = new o , this . $behaviour = new f , this . foldingRules = new l } ; r . inherits ( c , i ) , function ( ) { this . lineCommentStart = "//" , this . blockComment = { start : "/*" , end : "*/" } , 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 a ( [ "ace" ] , "ace/mode/javascript_worker" , "JavaScriptWorker" ) ; return t . attachToDocument ( e . getDocument ( ) ) , t . on ( "jslint" , function ( t ) { e . setAnnotations ( t . data ) } ) , t . on ( "terminate" , function ( ) { e . clearAnnotations ( ) } ) , t } , this . $id = "ace/mode/javascript" } . call ( c . prototype ) , t . Mode = c } ) , 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 ) { var r = e ( "../lib/oop" ) , i = e ( "./doc_comment_highlight_rules" ) . DocCommentHighlightRules , s = e ( "./text_highlight_rules" ) . TextHighlightRules , o = function ( ) { var e = this . createKeywordMapper ( { "variable.language" : "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document" , keyword : "const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static" , "storage.type" : "const|let|var|function" , "constant.language" : "null|Infinity|NaN|undefined" , "support.function" : "alert" , "constant.language.boolean" : "true|false" } , "identifier" ) , t = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void" , n = "[a-zA-Z\\$_\xa1-\uffff][a-zA-Z\\d\\$_\xa1-\uffff]*\\b" , r = "\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)" ; this . $rules = { no _regex : [ { token : "comment" , regex : "\\/\\/" , next : "line_comment" } , i . getStartRule ( "doc-start" ) , { token : "comment" , regex : /\/\*/ , next : "comment" } , { token : "string" , regex : "'(?=.)" , next : "qstring" } , { token : "string" , regex : '"(?=.)' , next : "qqstring" } , { token : "constant.numeric" , regex : /0[xX][0-9a-fA-F]+\b/ } , { token : "constant.numeric" , regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ } , { token : [ "storage.type" , "punctuation.operator" , "support.function" , "punctuation.operator" , "entity.name.function" , "text" , "keyword.operator" ] , regex : "(" + n + ")(\\.)(prototype)(\\.)(" + n + ")(\\s*)(=)" , next : "function_arguments" } , { token : [ "storage.type" , "punctuation.operator" , "entity.name.function" , "text" , "keyword.operator" , "text" , "storage.type" , "text" , "paren.lparen" ] , regex : "(" + n + ")(\\.)(" + n + ")(\\s*)(=)(\\s*)(function)(\\s*)(\\()" , next : "function_arguments" } , { token : [ "entity.name.function" , "text" , "keyword.operator" , "text" , " stor