79 lines
No EOL
1.7 KiB
JavaScript
79 lines
No EOL
1.7 KiB
JavaScript
ace.provide("ace.mode.XmlHighlightRules");
|
|
|
|
ace.mode.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 : ".+"
|
|
} ]
|
|
};
|
|
};
|
|
|
|
(function() {
|
|
|
|
this.getRules = function() {
|
|
return this.$rules;
|
|
};
|
|
|
|
}).call(ace.mode.XmlHighlightRules.prototype); |