diff --git a/lib/ace/mode/sh_highlight_rules.js b/lib/ace/mode/sh_highlight_rules.js index 2cf14fbb..ec82c74f 100644 --- a/lib/ace/mode/sh_highlight_rules.js +++ b/lib/ace/mode/sh_highlight_rules.js @@ -58,11 +58,6 @@ var ShHighlightRules = function() { ).split('|') ); - var builtinVariables = lang.arrayToMap( - // TODO - ('$?|$$|$!|$SHLVL').split('|') - ); - var integer = "(?:(?:[1-9]\\d*)|(?:0))"; // var integer = "(?:" + decimalInteger + ")"; @@ -74,9 +69,10 @@ var ShHighlightRules = function() { var fileDescriptor = "(?:&" + intPart + ")"; var variableName = "[a-zA-Z][a-zA-Z0-9_]*"; - var variable = "(?:(?:\\$" + variableName + ")|(?:" + variableName + "=))"; + var builtinVariable = "(?:\\$(?:SHLVL|\\$|\\!|\\?))"; + this.$rules = { "start" : [ { token : "comment", @@ -84,6 +80,9 @@ var ShHighlightRules = function() { }, { token : "string", // " string regex : '"(?:[^\\\\]|\\\\.)*?"' + }, { + token : "variable.language", + regex : builtinVariable }, { token : "variable", regex : variable @@ -105,8 +104,6 @@ var ShHighlightRules = function() { return "keyword"; else if (languageConstructs.hasOwnProperty(value)) return "constant.language"; - else if (builtinVariables.hasOwnProperty(value)) - return "support.function"; else if (value == "debugger") return "invalid.deprecated"; else