overleaf/services/web/public/js/ace/mode/luapage_highlight_rules.js

49 lines
1.3 KiB
JavaScript
Raw Normal View History

2014-02-12 05:23:40 -05:00
// LuaPage implements the LuaPage markup as described by the Kepler Project's CGILua
// documentation: http://keplerproject.github.com/cgilua/manual.html#templates
define(function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules;
var LuaPageHighlightRules = function() {
HtmlHighlightRules.call(this);
var startRules = [
{
token: "keyword",
regex: "<\\%\\=?",
push: "lua-start"
}, {
token: "keyword",
regex: "<\\?lua\\=?",
push: "lua-start"
}
];
var endRules = [
{
token: "keyword",
regex: "\\%>",
next: "pop"
}, {
token: "keyword",
regex: "\\?>",
next: "pop"
}
];
this.embedRules(LuaHighlightRules, "lua-", endRules, ["start"]);
for (var key in this.$rules)
this.$rules[key].unshift.apply(this.$rules[key], startRules);
this.normalizeRules();
};
oop.inherits(LuaPageHighlightRules, HtmlHighlightRules);
exports.LuaPageHighlightRules = LuaPageHighlightRules;
});