Added LuaPage mode/highlighter to Ace.

Added LuaPage mode and example doc to kitchen sink demo.
This commit is contained in:
Choonster 2012-06-15 03:38:50 +10:00 • committed by nightwing
commit 561a426516
4 changed files with 132 additions and 0 deletions

22
lib/ace/mode/luapage.js Normal file
View file

@ -0,0 +1,22 @@
define(function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var HtmlMode = require("./html").Mode;
var LuaMode = require("./lua").Mode;
var Tokenizer = require("../tokenizer").Tokenizer;
var LuaPageHighlightRules = require("./luapage_highlight_rules").LuaPageHighlightRules;
var Mode = function() {
var highlighter = new LuaPageHighlightRules();
this.$tokenizer = new Tokenizer(new LuaPageHighlightRules().getRules());
this.$embeds = highlighter.getEmbeds();
this.createModeDelegates({
"lua-": LuaMode
});
};
oop.inherits(Mode, HtmlMode);
exports.Mode = Mode;
});

View file

@ -0,0 +1,40 @@
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() {
this.$rules = new HtmlHighlightRules().getRules();
for (var i in this.$rules){ // Thanks to Harutyun Amirjanyan for this fix.
this.$rules[i].unshift({
token: "keyword",
regex: "<\\%\\=?",
next: "lua-start"
}, {
token: "keyword",
regex: "<\\?lua\\=?",
next: "lua-start"
});
}
this.embedRules(LuaHighlightRules, "lua-", [
{
token: "keyword",
regex: "\\%>",
next: "start"
},
{
token: "keyword",
regex: "\\?>",
next: "start"
}
]);
};
oop.inherits(LuaPageHighlightRules, HtmlHighlightRules);
exports.LuaPageHighlightRules = LuaPageHighlightRules;
});