diff --git a/lib/ace/mode/xml_util.js b/lib/ace/mode/xml_util.js index aa0756c4..2bd1bc8e 100644 --- a/lib/ace/mode/xml_util.js +++ b/lib/ace/mode/xml_util.js @@ -36,6 +36,15 @@ * ***** END LICENSE BLOCK ***** */ define(function(require, exports, module) { + var lang = require("../lib/lang"); + + var formTags = lang.arrayToMap( + ("button|form|input|label|select|textarea").split("|") + ); + + var tableTags = lang.arrayToMap( + ("table|tbody|td|tfoot|th|tr").split("|") + ); function string(state) { return [{ @@ -75,7 +84,31 @@ exports.tag = function(states, name, nextState) { token : "text", regex : "\\s+" }, { - token : "meta.tag", + //token : "meta.tag", + + token : function(value) { + if ( value==='a' ) { + return "meta.tag.anchor"; + } + else if ( value==='img' ) { + return "meta.tag.image"; + } + else if ( value==='script' ) { + return "meta.tag.script"; + } + else if ( value==='style' ) { + return "meta.tag.style"; + } + else if (formTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.form"; + } + else if (tableTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.table"; + } + else { + return "meta.tag"; + } + }, merge : true, regex : "[-_a-zA-Z0-9:]+", next : name + "embed-attribute-list"