From 5b08bf8e1e3e1f7ce5fc6e59ed5bce7b1cbb0106 Mon Sep 17 00:00:00 2001 From: nightwing Date: Sun, 4 Dec 2011 20:33:54 +0400 Subject: [PATCH] fix js regex highlighting adds coloring for escaped entities \s and fixes highlighting regexps like /[]/g --- lib/ace/mode/javascript_highlight_rules.js | 55 ++++++++++++++++++++-- 1 file changed, 51 insertions(+), 4 deletions(-) diff --git a/lib/ace/mode/javascript_highlight_rules.js b/lib/ace/mode/javascript_highlight_rules.js index 2ce21425..554df3df 100644 --- a/lib/ace/mode/javascript_highlight_rules.js +++ b/lib/ace/mode/javascript_highlight_rules.js @@ -205,10 +205,9 @@ var JavaScriptHighlightRules = function() { regex : "\\/\\/.*$" }, { token: "string.regexp", - regex: "\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])" - + "|(?:\\\\/|[^\\]/]))*" - + "[/]\\w*", - next: "start" + regex: "\\/", + next: "regex", + merge: true }, { token : "text", regex : "\\s+" @@ -220,6 +219,54 @@ var JavaScriptHighlightRules = function() { next: "start" } ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)", + next: "regex" + }, { + // flag + token: "string.regexp", + regex: "/\\w*", + next: "start", + merge: true + }, { + token: "string.regexp", + regex: "[^\\\\/\\[]+", + next: "regex", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "\\[", + next: "regex_character_class", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "regex_character_class": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)", + next: "regex_character_class" + }, { + token: "string.regexp.charachterclass", + regex: "]", + next: "regex", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "[^\\\\\\]]+", + next: "regex_character_class", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], "comment_regex_allowed" : [ { token : "comment", // closing comment