UNPKG

9.36 kBJavaScriptView Raw
1ace.define("ace/mode/lua_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),TextHighlightRules=require("./text_highlight_rules").TextHighlightRules,LuaHighlightRules=function(){var keywordMapper=this.createKeywordMapper({keyword:"break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not","support.function":"string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running|__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber","keyword.deprecated":"setn|foreach|foreachi|gcinfo|log10|maxn","constant.library":"string|package|os|io|math|debug|table|coroutine","constant.language":"true|false|nil|_G|_VERSION","variable.language":"self"},"identifier");this.$rules={start:[{stateName:"bracketedComment",onMatch:function(value,currentState,stack){return stack.unshift(this.next,value.length-2,currentState),"comment"},regex:/\-\-\[=*\[/,next:[{onMatch:function(value,currentState,stack){return value.length==stack[1]?(stack.shift(),stack.shift(),this.next=stack.shift()):this.next="","comment"},regex:/\]=*\]/,next:"start"},{defaultToken:"comment"}]},{token:"comment",regex:"\\-\\-.*$"},{stateName:"bracketedString",onMatch:function(value,currentState,stack){return stack.unshift(this.next,value.length,currentState),"string.start"},regex:/\[=*\[/,next:[{onMatch:function(value,currentState,stack){return value.length==stack[1]?(stack.shift(),stack.shift(),this.next=stack.shift()):this.next="","string.end"},regex:/\]=*\]/,next:"start"},{defaultToken:"string"}]},{token:"string",regex:'"(?:[^\\\\]|\\\\.)*?"'},{token:"string",regex:"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:"(?:(?:(?:(?:\\d+)?(?:\\.\\d+))|(?:(?:\\d+)\\.)))"},{token:"constant.numeric",regex:"(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[xX][\\dA-Fa-f]+))\\b"},{token:keywordMapper,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\."},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+|\\w+"}]},this.normalizeRules()};oop.inherits(LuaHighlightRules,TextHighlightRules),exports.LuaHighlightRules=LuaHighlightRules})),ace.define("ace/mode/folding/lua",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"],(function(require,exports,module){"use strict";var oop=require("../../lib/oop"),BaseFoldMode=require("./fold_mode").FoldMode,Range=require("../../range").Range,TokenIterator=require("../../token_iterator").TokenIterator,FoldMode=exports.FoldMode=function(){};oop.inherits(FoldMode,BaseFoldMode),function(){this.foldingStartMarker=/\b(function|then|do|repeat)\b|{\s*$|(\[=*\[)/,this.foldingStopMarker=/\bend\b|^\s*}|\]=*\]/,this.getFoldWidget=function(session,foldStyle,row){var line=session.getLine(row),isStart=this.foldingStartMarker.test(line),isEnd=this.foldingStopMarker.test(line);if(isStart&&!isEnd){var match;if("then"==(match=line.match(this.foldingStartMarker))[1]&&/\belseif\b/.test(line))return;if(match[1]){if("keyword"===session.getTokenAt(row,match.index+1).type)return"start"}else{if(!match[2])return"start";if("bracketedComment"==(type=session.bgTokenizer.getState(row)||"")[0]||"bracketedString"==type[0])return"start"}}if("markbeginend"!=foldStyle||!isEnd||isStart&&isEnd)return"";if("end"===(match=line.match(this.foldingStopMarker))[0]){if("keyword"===session.getTokenAt(row,match.index+1).type)return"end"}else{if("]"!==match[0][0])return"end";var type;if("bracketedComment"==(type=session.bgTokenizer.getState(row-1)||"")[0]||"bracketedString"==type[0])return"end"}},this.getFoldWidgetRange=function(session,foldStyle,row){var match,line=session.doc.getLine(row);return(match=this.foldingStartMarker.exec(line))?match[1]?this.luaBlock(session,row,match.index+1):match[2]?session.getCommentFoldRange(row,match.index+1):this.openingBracketBlock(session,"{",row,match.index):(match=this.foldingStopMarker.exec(line))?"end"===match[0]&&"keyword"===session.getTokenAt(row,match.index+1).type?this.luaBlock(session,row,match.index+1):"]"===match[0][0]?session.getCommentFoldRange(row,match.index+1):this.closingBracketBlock(session,"}",row,match.index+match[0].length):void 0},this.luaBlock=function(session,row,column,tokenRange){var stream=new TokenIterator(session,row,column),indentKeywords={function:1,do:1,then:1,elseif:-1,end:-1,repeat:1,until:-1},token=stream.getCurrentToken();if(token&&"keyword"==token.type){var val=token.value,stack=[val],dir=indentKeywords[val];if(dir){var startColumn=-1===dir?stream.getCurrentTokenColumn():session.getLine(row).length,startRow=row;for(stream.step=-1===dir?stream.stepBackward:stream.stepForward;token=stream.step();)if("keyword"===token.type){var level=dir*indentKeywords[token.value];if(level>0)stack.unshift(token.value);else if(level<=0){if(stack.shift(),!stack.length&&"elseif"!=token.value)break;0===level&&stack.unshift(token.value)}}if(!token)return null;if(tokenRange)return stream.getCurrentTokenRange();row=stream.getCurrentTokenRow();return-1===dir?new Range(row,session.getLine(row).length,startRow,startColumn):new Range(startRow,startColumn,row,stream.getCurrentTokenColumn())}}}}.call(FoldMode.prototype)})),ace.define("ace/mode/lua",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lua_highlight_rules","ace/mode/folding/lua","ace/range","ace/worker/worker_client"],(function(require,exports,module){"use strict";var oop=require("../lib/oop"),TextMode=require("./text").Mode,LuaHighlightRules=require("./lua_highlight_rules").LuaHighlightRules,LuaFoldMode=require("./folding/lua").FoldMode,Range=require("../range").Range,WorkerClient=require("../worker/worker_client").WorkerClient,Mode=function(){this.HighlightRules=LuaHighlightRules,this.foldingRules=new LuaFoldMode,this.$behaviour=this.$defaultBehaviour};oop.inherits(Mode,TextMode),function(){this.lineCommentStart="--",this.blockComment={start:"--[",end:"]--"};var indentKeywords={function:1,then:1,do:1,else:1,elseif:1,repeat:1,end:-1,until:-1},outdentKeywords=["else","elseif","end","until"];this.getNextLineIndent=function(state,line,tab){var indent=this.$getIndent(line),level=0,tokens=this.getTokenizer().getLineTokens(line,state).tokens;return"start"==state&&(level=function(tokens){for(var level=0,i=0;i<tokens.length;i++){var token=tokens[i];"keyword"==token.type?token.value in indentKeywords&&(level+=indentKeywords[token.value]):"paren.lparen"==token.type?level+=token.value.length:"paren.rparen"==token.type&&(level-=token.value.length)}return level<0?-1:level>0?1:0}(tokens)),level>0?indent+tab:level<0&&indent.substr(indent.length-tab.length)==tab&&!this.checkOutdent(state,line,"\n")?indent.substr(0,indent.length-tab.length):indent},this.checkOutdent=function(state,line,input){if("\n"!=input&&"\r"!=input&&"\r\n"!=input)return!1;if(line.match(/^\s*[\)\}\]]$/))return!0;var tokens=this.getTokenizer().getLineTokens(line.trim(),state).tokens;return!(!tokens||!tokens.length)&&("keyword"==tokens[0].type&&-1!=outdentKeywords.indexOf(tokens[0].value))},this.getMatching=function(session,row,column){if(null==row){var pos=session.selection.lead;column=pos.column,row=pos.row}var startToken=session.getTokenAt(row,column);if(startToken&&startToken.value in indentKeywords)return this.foldingRules.luaBlock(session,row,column,!0)},this.autoOutdent=function(state,session,row){var column=session.getLine(row).match(/^\s*/)[0].length;if(column&&row){var startRange=this.getMatching(session,row,column+1);if(startRange&&startRange.start.row!=row){var indent=this.$getIndent(session.getLine(startRange.start.row));indent.length!=column&&(session.replace(new Range(row,0,row,column),indent),session.outdentRows(new Range(row+1,0,row+1,0)))}}},this.createWorker=function(session){var worker=new WorkerClient(["ace"],"ace/mode/lua_worker","Worker");return worker.attachToDocument(session.getDocument()),worker.on("annotate",(function(e){session.setAnnotations(e.data)})),worker.on("terminate",(function(){session.clearAnnotations()})),worker},this.$id="ace/mode/lua",this.snippetFileId="ace/snippets/lua"}.call(Mode.prototype),exports.Mode=Mode})),ace.require(["ace/mode/lua"],(function(m){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=m)}));
\No newline at end of file