Highlighter support for JS globals.
This commit is contained in:
parent
4f482437d7
commit
61237fea68
1 changed files with 23 additions and 2 deletions
|
|
@ -46,12 +46,33 @@ var TextHighlightRules = require("ace/mode/text_highlight_rules").TextHighlightR
|
||||||
|
|
||||||
var JavaScriptHighlightRules = function() {
|
var JavaScriptHighlightRules = function() {
|
||||||
|
|
||||||
|
// see: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects
|
||||||
|
var globals = lang.arrayToMap(
|
||||||
|
// Constructors
|
||||||
|
("Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" +
|
||||||
|
// E4X
|
||||||
|
"Namespace|QName|XML|XMLList|" +
|
||||||
|
"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" +
|
||||||
|
"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" +
|
||||||
|
// Errors
|
||||||
|
"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" +
|
||||||
|
"SyntaxError|TypeError|URIError|" +
|
||||||
|
// Non-constructor functions
|
||||||
|
"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" +
|
||||||
|
"isNaN|parseFloat|parseInt|" +
|
||||||
|
// Other
|
||||||
|
"JSON|Math|" +
|
||||||
|
// Pseudo
|
||||||
|
"this|arguments|prototype|window|document"
|
||||||
|
).split("|")
|
||||||
|
);
|
||||||
|
|
||||||
var keywords = lang.arrayToMap(
|
var keywords = lang.arrayToMap(
|
||||||
("break|case|catch|continue|default|delete|do|else|finally|for|function|" +
|
("break|case|catch|continue|default|delete|do|else|finally|for|function|" +
|
||||||
"if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|" +
|
"if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|" +
|
||||||
"const|yield|import|get|set").split("|")
|
"const|yield|import|get|set").split("|")
|
||||||
);
|
);
|
||||||
|
|
||||||
// keywords which can be followed by regular expressions
|
// keywords which can be followed by regular expressions
|
||||||
var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield";
|
var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield";
|
||||||
|
|
||||||
|
|
@ -120,7 +141,7 @@ var JavaScriptHighlightRules = function() {
|
||||||
next : "regex_allowed"
|
next : "regex_allowed"
|
||||||
}, {
|
}, {
|
||||||
token : function(value) {
|
token : function(value) {
|
||||||
if (value == "this")
|
if (globals.hasOwnProperty(value))
|
||||||
return "variable.language";
|
return "variable.language";
|
||||||
else if (keywords.hasOwnProperty(value))
|
else if (keywords.hasOwnProperty(value))
|
||||||
return "keyword";
|
return "keyword";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue