From f9262f445e99c7da5b73a87ee018ad41b96aa95a Mon Sep 17 00:00:00 2001 From: Adam Jimenez Date: Mon, 12 Dec 2011 13:19:08 +0000 Subject: [PATCH] Different highlighting for specific HTML tags e.g. form tags / table tags --- lib/ace/mode/xml_util.js | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) 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"