@liascript/editor
Version:
An extended Markdown interpreter for the creation of interactive online courses.
2 lines (1 loc) • 6.44 kB
JavaScript
ace.define("ace/mode/clue_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var i=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:["keyword.control.directive.clue","text","text"],regex:/(@version)( )(.+?(?=\n))/},{token:["keyword.control.macro.clue","text","text"],regex:/(@macro)( )([A-Za-z_][0-9A-Za-z_]*)/},{token:["keyword.control.import.clue","text","string"],regex:/(@import)( )(".*")/},{token:"meta.preprocessor.macro.invocation.clue",regex:/\$[A-Za-z_][0-9A-Za-z_]*!/},{token:"keyword.control.directive.clue",regex:/@(?:(?:else_)?(?:ifos|iflua|ifdef|ifndef|ifcmp|ifos|iflua|ifdef|ifcmp|if)|else|define|macro|error|print)/},{token:"constant.numeric.integer.hexadecimal.clue",regex:/\b0[xX][0-9A-Fa-f]+(?![pPeE.0-9])\b/},{token:"constant.numeric.float.hexadecimal.clue",regex:/\b0[xX][0-9A-Fa-f]+(?:\.[0-9A-Fa-f]+)?(?:[eE]-?\d*)?(?:[pP][-+]\d+)?\b/},{token:"constant.numeric.integer.clue",regex:/\b\d+(?![pPeE.0-9])/},{token:"constant.numeric.float.clue",regex:/\b\d+(?:\.\d+)?(?:[eE]-?\d*)?/},{token:"punctuation.definition.string.multilined.begin.clue",regex:/'/,push:[{token:"punctuation.definition.string.multilined.end.clue",regex:/'/,next:"pop"},{include:"#escaped_char"},{defaultToken:"string.quoted.single.clue"}]},{token:"punctuation.definition.string.multilined.begin.clue",regex:/"/,push:[{token:"punctuation.definition.string.multilined.end.clue",regex:/"/,next:"pop"},{include:"#escaped_char"},{defaultToken:"string.quoted.double.clue"}]},{token:"punctuation.definition.string.multilined.begin.clue",regex:/`/,push:[{token:"punctuation.definition.string.multilined.end.clue",regex:/`/,next:"pop"},{include:"#escaped_char"},{defaultToken:"string.multiline.clue"}]},{token:"comment.line.double-dash.clue",regex:/\/\/.*/},{token:"punctuation.definition.comment.begin.clue",regex:/\/\*/,push:[{token:"punctuation.definition.comment.end.clue",regex:/\*\//,next:"pop"},{include:"#escaped_char"},{defaultToken:"comment.block.clue"}]},{token:"keyword.control.clue",regex:/\b(?:if|elseif|else|for|of|in|with|while|meta|until|fn|method|return|loop|enum|goto|continue|break|try|catch|match|default|macro)\b/},{token:"keyword.scope.clue",regex:/\b(?:local|global|static)\b/},{token:"constant.language.clue",regex:/\b(?:false|nil|true|_G|_VERSION|math\.(?:pi|huge))\b/},{token:"constant.language.ellipsis.clue",regex:/\.{3}(?!\.)/},{token:"keyword.operator.property.clue",regex:/\.|::/,next:"property_identifier"},{token:"keyword.operator.clue",regex:/\/_|\&|\||\!|\~|\?|\$|@|\+|-|%|#|\*|\/|\^|==?|<=?|>=?|\.{2}|\?\?=?|(?:&&|\|\|)=?/},{token:"variable.language.self.clue",regex:/\bself\b/},{token:"support.function.any-method.clue",regex:/\b[a-zA-Z_][a-zA-Z0-9_]*\b(?=\(\s*)/},{token:"variable.other.clue",regex:/[A-Za-z_][0-9A-Za-z_]*/}],"#escaped_char":[{token:"constant.character.escape.clue",regex:/\\[abfnrtvz\\"'$]/},{token:"constant.character.escape.byte.clue",regex:/\\\d{1,3}/},{token:"constant.character.escape.byte.clue",regex:/\\x[0-9A-Fa-f][0-9A-Fa-f]/},{token:"constant.character.escape.unicode.clue",regex:/\\u\{[0-9A-Fa-f]+\}/},{token:"invalid.illegal.character.escape.clue",regex:/\\./}],property_identifier:[{token:"variable.other.property.clue",regex:/[A-Za-z_][0-9A-Za-z_]*/,next:"start"},{token:"",regex:"",next:"start"}]},this.normalizeRules()};r.metaData={name:"Clue",scopeName:"source.clue"},i.inherits(r,o),t.ClueHighlightRules=r})),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 i=e("../../lib/oop"),o=e("../../range").Range,r=e("./fold_mode").FoldMode,l=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)))};i.inherits(l,r),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 i=e.getLine(n);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var o=this._getFoldWidgetBase(e,t,n);return!o&&this.startRegionRe.test(i)?"start":o},this.getFoldWidgetRange=function(e,t,n,i){var o,r=e.getLine(n);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,n);if(o=r.match(this.foldingStartMarker)){var l=o.index;if(o[1])return this.openingBracketBlock(e,o[1],n,l);var a=e.getCommentFoldRange(n,l+o[0].length,1);return a&&!a.isMultiLine()&&(i?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}if("markbegin"!==t&&(o=r.match(this.foldingStopMarker))){l=o.index+o[0].length;return o[1]?this.closingBracketBlock(e,o[1],n,l):e.getCommentFoldRange(n,l,-1)}},this.getSectionRange=function(e,t){for(var n=e.getLine(t),i=n.search(/\S/),r=t,l=n.length,a=t+=1,c=e.getLength();++t<c;){var s=(n=e.getLine(t)).search(/\S/);if(-1!==s){if(i>s)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=r)break;if(u.isMultiLine())t=u.end.row;else if(i==s)break}a=t}}return new o(r,l,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var i=t.search(/\s*$/),r=e.getLength(),l=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,c=1;++n<r;){t=e.getLine(n);var s=a.exec(t);if(s&&(s[1]?c--:c++,!c))break}if(n>l)return new o(l,i,n,t.length)}}.call(l.prototype)})),ace.define("ace/mode/clue",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/clue_highlight_rules","ace/mode/folding/cstyle"],(function(e,t,n){"use strict";var i=e("../lib/oop"),o=e("./text").Mode,r=e("./clue_highlight_rules").ClueHighlightRules,l=e("./folding/cstyle").FoldMode,a=function(){this.HighlightRules=r,this.foldingRules=new l,this.$behaviour=this.$defaultBehaviour};i.inherits(a,o),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.$id="ace/mode/clue"}.call(a.prototype),t.Mode=a})),ace.require(["ace/mode/clue"],(function(e){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=e)}));