89 lines
No EOL
2 KiB
JavaScript
89 lines
No EOL
2 KiB
JavaScript
/**
|
|
* Ajax.org Code Editor (ACE)
|
|
*
|
|
* @copyright 2010, Ajax.org Services B.V.
|
|
* @license LGPLv3 <http://www.gnu.org/licenses/lgpl-3.0.txt>
|
|
* @author Fabian Jakobs <fabian AT ajax DOT org>
|
|
*/
|
|
|
|
define(function(require, exports, module) {
|
|
|
|
var oop = require("../lib/oop");
|
|
var TextHighlightRules = require("./text_highlight_rules");
|
|
|
|
var XmlHighlightRules = function() {
|
|
|
|
// regexp must not have capturing parentheses
|
|
// regexps are ordered -> the first match is used
|
|
|
|
this.$rules = {
|
|
start : [ {
|
|
token : "text",
|
|
regex : "<\\!\\[CDATA\\[",
|
|
next : "cdata"
|
|
}, {
|
|
token : "xml_pe",
|
|
regex : "<\\?.*?\\?>"
|
|
}, {
|
|
token : "comment",
|
|
regex : "<\\!--",
|
|
next : "comment"
|
|
}, {
|
|
token : "text", // opening tag
|
|
regex : "<\\/?",
|
|
next : "tag"
|
|
}, {
|
|
token : "text",
|
|
regex : "\\s+"
|
|
}, {
|
|
token : "text",
|
|
regex : "[^<]+"
|
|
} ],
|
|
|
|
tag : [ {
|
|
token : "text",
|
|
regex : ">",
|
|
next : "start"
|
|
}, {
|
|
token : "keyword",
|
|
regex : "[-_a-zA-Z0-9:]+"
|
|
}, {
|
|
token : "text",
|
|
regex : "\\s+"
|
|
}, {
|
|
token : "string",
|
|
regex : '".*?"'
|
|
}, {
|
|
token : "string",
|
|
regex : "'.*?'"
|
|
} ],
|
|
|
|
cdata : [ {
|
|
token : "text",
|
|
regex : "\\]\\]>",
|
|
next : "start"
|
|
}, {
|
|
token : "text",
|
|
regex : "\\s+"
|
|
}, {
|
|
token : "text",
|
|
regex : "(?:[^\\]]|\\](?!\\]>))+"
|
|
} ],
|
|
|
|
comment : [ {
|
|
token : "comment",
|
|
regex : ".*?-->",
|
|
next : "start"
|
|
}, {
|
|
token : "comment",
|
|
regex : ".+"
|
|
} ]
|
|
};
|
|
};
|
|
|
|
/fd/g
|
|
|
|
oop.inherits(XmlHighlightRules, TextHighlightRules);
|
|
|
|
return XmlHighlightRules;
|
|
}); |