| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 | ace.define("ace/mode/tex_highlight_rules",[], function(require, exports, module) {"use strict";var oop = require("../lib/oop");var lang = require("../lib/lang");var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;var TexHighlightRules = function(textClass) {    if (!textClass)        textClass = "text";    this.$rules = {        "start" : [            {                token : "comment",                regex : "%.*$"            }, {                token : textClass, // non-command                regex : "\\\\[$&%#\\{\\}]"            }, {                token : "keyword", // command                regex : "\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b",               next : "nospell"            }, {                token : "keyword", // command                regex : "\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])"            }, {               token : "paren.keyword.operator",                regex : "[[({]"            }, {               token : "paren.keyword.operator",                regex : "[\\])}]"            }, {                token : textClass,                regex : "\\s+"            }        ],        "nospell" : [           {               token : "comment",               regex : "%.*$",               next : "start"           }, {               token : "nospell." + textClass, // non-command               regex : "\\\\[$&%#\\{\\}]"           }, {               token : "keyword", // command               regex : "\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b"           }, {               token : "keyword", // command               regex : "\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])",               next : "start"           }, {               token : "paren.keyword.operator",               regex : "[[({]"           }, {               token : "paren.keyword.operator",               regex : "[\\])]"           }, {               token : "paren.keyword.operator",               regex : "}",               next : "start"           }, {               token : "nospell." + textClass,               regex : "\\s+"           }, {               token : "nospell." + textClass,               regex : "\\w+"           }        ]    };};oop.inherits(TexHighlightRules, TextHighlightRules);exports.TexHighlightRules = TexHighlightRules;});ace.define("ace/mode/r_highlight_rules",[], function(require, exports, module){   var oop = require("../lib/oop");   var lang = require("../lib/lang");   var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;   var TexHighlightRules = require("./tex_highlight_rules").TexHighlightRules;   var RHighlightRules = function()   {      var keywords = lang.arrayToMap(            ("function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass")                  .split("|")            );      var buildinConstants = lang.arrayToMap(            ("NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|" +             "NA_complex_").split("|")            );      this.$rules = {         "start" : [            {               token : "comment.sectionhead",               regex : "#+(?!').*(?:----|====|####)\\s*$"            },            {               token : "comment",               regex : "#+'",               next : "rd-start"            },            {               token : "comment",               regex : "#.*$"            },            {               token : "string", // multi line string start               regex : '["]',               next : "qqstring"            },            {               token : "string", // multi line string start               regex : "[']",               next : "qstring"            },            {               token : "constant.numeric", // hex               regex : "0[xX][0-9a-fA-F]+[Li]?\\b"            },            {               token : "constant.numeric", // explicit integer               regex : "\\d+L\\b"            },            {               token : "constant.numeric", // number               regex : "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b"            },            {               token : "constant.numeric", // number with leading decimal               regex : "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b"            },            {               token : "constant.language.boolean",               regex : "(?:TRUE|FALSE|T|F)\\b"            },            {               token : "identifier",               regex : "`.*?`"            },            {               onMatch : function(value) {                  if (keywords[value])                     return "keyword";                  else if (buildinConstants[value])                     return "constant.language";                  else if (value == '...' || value.match(/^\.\.\d+$/))                     return "variable.language";                  else                     return "identifier";               },               regex : "[a-zA-Z.][a-zA-Z0-9._]*\\b"            },            {               token : "keyword.operator",               regex : "%%|>=|<=|==|!=|\\->|<\\-|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||~|\\$|:"            },            {               token : "keyword.operator", // infix operators               regex : "%.*?%"            },            {               token : "paren.keyword.operator",               regex : "[[({]"            },            {               token : "paren.keyword.operator",               regex : "[\\])}]"            },            {               token : "text",               regex : "\\s+"            }         ],         "qqstring" : [            {               token : "string",               regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"',               next : "start"            },            {               token : "string",               regex : '.+'            }         ],         "qstring" : [            {               token : "string",               regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'",               next : "start"            },            {               token : "string",               regex : '.+'            }         ]      };      var rdRules = new TexHighlightRules("comment").getRules();      for (var i = 0; i < rdRules["start"].length; i++) {         rdRules["start"][i].token += ".virtual-comment";      }      this.addRules(rdRules, "rd-");      this.$rules["rd-start"].unshift({          token: "text",          regex: "^",          next: "start"      });      this.$rules["rd-start"].unshift({         token : "keyword",         regex : "@(?!@)[^ ]*"      });      this.$rules["rd-start"].unshift({         token : "comment",         regex : "@@"      });      this.$rules["rd-start"].push({         token : "comment",         regex : "[^%\\\\[({\\])}]+"      });   };   oop.inherits(RHighlightRules, TextHighlightRules);   exports.RHighlightRules = RHighlightRules;});ace.define("ace/mode/matching_brace_outdent",[], function(require, exports, module) {"use strict";var Range = require("../range").Range;var MatchingBraceOutdent = function() {};(function() {    this.checkOutdent = function(line, input) {        if (! /^\s+$/.test(line))            return false;        return /^\s*\}/.test(input);    };    this.autoOutdent = function(doc, row) {        var line = doc.getLine(row);        var match = line.match(/^(\s*\})/);        if (!match) return 0;        var column = match[1].length;        var openBracePos = doc.findMatchingBracket({row: row, column: column});        if (!openBracePos || openBracePos.row == row) return 0;        var indent = this.$getIndent(doc.getLine(openBracePos.row));        doc.replace(new Range(row, 0, row, column-1), indent);    };    this.$getIndent = function(line) {        return line.match(/^\s*/)[0];    };}).call(MatchingBraceOutdent.prototype);exports.MatchingBraceOutdent = MatchingBraceOutdent;});ace.define("ace/mode/r",[], function(require, exports, module) {   "use strict";   var unicode = require("../unicode");   var Range = require("../range").Range;   var oop = require("../lib/oop");   var TextMode = require("./text").Mode;   var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;   var RHighlightRules = require("./r_highlight_rules").RHighlightRules;   var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;   var Mode = function(){      this.HighlightRules = RHighlightRules;      this.$outdent = new MatchingBraceOutdent();      this.$behaviour = this.$defaultBehaviour;   };   oop.inherits(Mode, TextMode);   (function() {      this.lineCommentStart = "#";      this.tokenRe = new RegExp("^[" + unicode.wordChars + "._]+", "g");      this.nonTokenRe = new RegExp("^(?:[^" + unicode.wordChars + "._]|\s])+", "g");       this.$id = "ace/mode/r";   }).call(Mode.prototype);   exports.Mode = Mode;});                (function() {                    ace.require(["ace/mode/r"], function(m) {                        if (typeof module == "object" && typeof exports == "object" && module) {                            module.exports = m;                        }                    });                })();            
 |