From 3d6b93b9466c8eb652e37d2b0fb18864299308b4 Mon Sep 17 00:00:00 2001 From: nightwing Date: Tue, 2 Sep 2014 15:12:15 +0400 Subject: [PATCH] update tests --- lib/ace/mode/_test/tokens_javascript.json | 2 +- lib/ace/mode/javascript_highlight_rules.js | 83 +++++++++++----------- lib/ace/mode/sjs_highlight_rules.js | 6 +- lib/ace/mode/text_highlight_rules.js | 3 +- 4 files changed, 47 insertions(+), 47 deletions(-) diff --git a/lib/ace/mode/_test/tokens_javascript.json b/lib/ace/mode/_test/tokens_javascript.json index 42e9bf5e..1be3f605 100644 --- a/lib/ace/mode/_test/tokens_javascript.json +++ b/lib/ace/mode/_test/tokens_javascript.json @@ -379,7 +379,7 @@ ["constant.numeric","1."], ["text","00"], ["identifier","E"], - ["text","^"], + ["keyword.operator","^"], ["constant.numeric","1"], ["punctuation.operator",","], ["text"," "], diff --git a/lib/ace/mode/javascript_highlight_rules.js b/lib/ace/mode/javascript_highlight_rules.js index 252a4f3b..e81a2dce 100644 --- a/lib/ace/mode/javascript_highlight_rules.js +++ b/lib/ace/mode/javascript_highlight_rules.js @@ -35,7 +35,7 @@ var oop = require("../lib/oop"); var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; -var JavaScriptHighlightRules = function() { +var JavaScriptHighlightRules = function(options) { // see: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects var keywordMapper = this.createKeywordMapper({ "variable.language": @@ -187,45 +187,12 @@ var JavaScriptHighlightRules = function() { regex : identifierRe }, { token : "keyword.operator", - regex : /--|\+\+|[!$%&*+\-~]|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=/, + regex : /--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/, next : "start" }, { token : "punctuation.operator", - regex : /\?|\:|\,|\;|\./, + regex : /[?:,;.]/, next : "start" - }, { - regex: "[{}]", onMatch: function(val, state, stack) { - console.log(val, state, stack) - this.next = ""; - if (val == "{" && stack.length) { - stack.unshift("start", state); - return "paren"; - } - if (val == "}" && stack.length) { - stack.shift(); - this.next = stack.shift(); - if (this.next.indexOf("string") != -1) - return "paren.quasi.end"; - } - return "paren"; - } - }, { - token : "string.quasi.start", - regex : /`/, - push : [{ - token : "constant.language.escape", - regex : escapedRe - }, { - token : "paren.quasi.start", - regex : /\${/, - push : "start" - }, { - token : "string.quasi.end", - regex : /`/, - next : "pop" - }, { - defaultToken: "string.quasi" - }] }, { token : "paren.lparen", regex : /[\[({]/, @@ -233,10 +200,6 @@ var JavaScriptHighlightRules = function() { }, { token : "paren.rparen", regex : /[\])}]/ - }, { - token : "keyword.operator", - regex : /\/=?/, - next : "start" }, { token: "comment", regex: /^#!.*$/ @@ -387,7 +350,45 @@ var JavaScriptHighlightRules = function() { } ] }; - + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + return "paren"; + } + if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + } + this.embedRules(DocCommentHighlightRules, "doc-", [ DocCommentHighlightRules.getEndRule("no_regex") ]); diff --git a/lib/ace/mode/sjs_highlight_rules.js b/lib/ace/mode/sjs_highlight_rules.js index f51787b2..e8ced77b 100644 --- a/lib/ace/mode/sjs_highlight_rules.js +++ b/lib/ace/mode/sjs_highlight_rules.js @@ -36,7 +36,7 @@ var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScrip var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; var SJSHighlightRules = function() { - var parent = new JavaScriptHighlightRules(); + var parent = new JavaScriptHighlightRules({noES6: true}); var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex "u[0-9a-fA-F]{4}|" + // unicode "[0-2][0-7]{0,2}|" + // oct @@ -177,10 +177,10 @@ var SJSHighlightRules = function() { // for use within interpreted contexts // without interfering with context nesting var embeddableRules = []; - for (var i=0; i