From 0918c7f1c01c3f4e6a5a3f634ef88818ed541bb1 Mon Sep 17 00:00:00 2001 From: nightwing Date: Fri, 24 Aug 2012 12:08:06 +0400 Subject: [PATCH] cleanup highlight_rules --- lib/ace/lib/lang.js | 8 ++++++++ lib/ace/mode/html_highlight_rules.js | 5 +++-- lib/ace/mode/json_highlight_rules.js | 2 +- lib/ace/mode/xml_util.js | 11 +++++------ 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/lib/ace/lib/lang.js b/lib/ace/lib/lang.js index 3b862bdb..769bfdda 100644 --- a/lib/ace/lib/lang.js +++ b/lib/ace/lib/lang.js @@ -101,6 +101,14 @@ exports.arrayToMap = function(arr) { }; +exports.createMap = function(props) { + var map = Object.create(null); + for (var i in props) { + map[i] = props[i]; + } + return map; +}; + /* * splice out of 'array' anything that === 'value' */ diff --git a/lib/ace/mode/html_highlight_rules.js b/lib/ace/mode/html_highlight_rules.js index 4f51df77..96ec0149 100644 --- a/lib/ace/mode/html_highlight_rules.js +++ b/lib/ace/mode/html_highlight_rules.js @@ -39,12 +39,13 @@ define(function(require, exports, module) { "use strict"; var oop = require("../lib/oop"); +var lang = require("../lib/lang"); var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; var xmlUtil = require("./xml_util"); var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; -var tagMap = { +var tagMap = lang.createMap({ a : 'anchor', button : 'form', form : 'form', @@ -61,7 +62,7 @@ var tagMap = { tfoot : 'table', th : 'table', tr : 'table' -}; +}); var HtmlHighlightRules = function() { diff --git a/lib/ace/mode/json_highlight_rules.js b/lib/ace/mode/json_highlight_rules.js index 5a039869..e2ba3be8 100644 --- a/lib/ace/mode/json_highlight_rules.js +++ b/lib/ace/mode/json_highlight_rules.js @@ -84,7 +84,7 @@ var JsonHighlightRules = function() { "string" : [ { token : "constant.language.escape", - regex : /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/ + regex : /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/ }, { token : "string", regex : '[^"\\\\]+', diff --git a/lib/ace/mode/xml_util.js b/lib/ace/mode/xml_util.js index 6aaaeb94..994f5b2d 100644 --- a/lib/ace/mode/xml_util.js +++ b/lib/ace/mode/xml_util.js @@ -78,13 +78,12 @@ exports.tag = function(states, name, nextState, tagMap) { }, { //token : "meta.tag", - token : function(value) { - if (tagMap && tagMap[value]) { - return "meta.tag.tag-name" + '.' + tagMap[value]; - } else { + token : !tagMap ? "meta.tag.tag-name" : function(value) { + if (tagMap[value]) + return "meta.tag.tag-name." + tagMap[value]; + else return "meta.tag.tag-name"; - } - }, + }, merge : true, regex : "[-_a-zA-Z0-9:]+", next : name + "_embed_attribute_list"