From 8e48f77a133120a315d28c8675f0368294727062 Mon Sep 17 00:00:00 2001 From: nightwing Date: Sun, 9 Aug 2015 14:40:51 +0400 Subject: [PATCH] fix jade mode --- node_modules/ace/lib/ace/mode/_test/tokens_jade.json | 8 ++++---- node_modules/ace/lib/ace/mode/jade_highlight_rules.js | 11 ++++++----- node_modules/ace/lib/ace/tokenizer.js | 5 +++++ 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/node_modules/ace/lib/ace/mode/_test/tokens_jade.json b/node_modules/ace/lib/ace/mode/_test/tokens_jade.json index 5bf45968..f868beed 100644 --- a/node_modules/ace/lib/ace/mode/_test/tokens_jade.json +++ b/node_modules/ace/lib/ace/mode/_test/tokens_jade.json @@ -95,7 +95,7 @@ ["meta.tag.any.jade"," test"], ["punctuation","("], ["entity.other.attribute-name.jade","id"], - ["text","="], + ["punctuation","="], ["string","\"tag\""], ["punctuation",")"] ],[ @@ -103,15 +103,15 @@ ["meta.tag.any.jade"," header"], ["punctuation","("], ["entity.other.attribute-name.jade","id"], - ["text","="], + ["punctuation","="], ["string","\"tag\""], ["text",", "], ["entity.other.attribute-name.jade","blah"], - ["text","="], + ["punctuation","="], ["string","\"foo\""], ["text",", "], ["entity.other.attribute-name.jade","meh"], - ["text","="], + ["punctuation","="], ["string","\"aads\""], ["punctuation",")"] ],[ diff --git a/node_modules/ace/lib/ace/mode/jade_highlight_rules.js b/node_modules/ace/lib/ace/mode/jade_highlight_rules.js index c46c0be7..a4357666 100644 --- a/node_modules/ace/lib/ace/mode/jade_highlight_rules.js +++ b/node_modules/ace/lib/ace/mode/jade_highlight_rules.js @@ -230,13 +230,9 @@ var JadeHighlightRules = function() { regex : '"(?=.)', next : "qqstring" }, - { - token: "entity.other.attribute-name.jade", - regex: "\\b[a-zA-Z\\-:]+" - }, { token: ["entity.other.attribute-name.jade", "punctuation"], - regex: "\\b([a-zA-Z:\\.-]+)(=)", + regex: "([a-zA-Z:\\.-]+)(=)?", next: "attribute_strings" }, { @@ -255,6 +251,11 @@ var JadeHighlightRules = function() { token : "string", regex : '"(?=.)', next : "qqstring" + }, + { + token : "string", + regex : '(?=\\S)', + next : "tag_attributes" } ], "qqstring" : [ diff --git a/node_modules/ace/lib/ace/tokenizer.js b/node_modules/ace/lib/ace/tokenizer.js index 72490fbb..642af68e 100644 --- a/node_modules/ace/lib/ace/tokenizer.js +++ b/node_modules/ace/lib/ace/tokenizer.js @@ -213,6 +213,11 @@ var Tokenizer = function(rules) { if (lastCapture.end != null && /^\)*$/.test(src.substr(lastCapture.end))) src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end); } + + // this is needed for regexps that can match in multiple ways + if (src.charAt(0) != "^") src = "^" + src; + if (src.charAt(src.length - 1) != "$") src += "$"; + return new RegExp(src, (flag||"").replace("g", "")); };