Refinement

Includes proper MUSH substitution/register highlighting
This commit is contained in:
h3rb 2013-03-04 09:46:23 -05:00 • committed by nightwing
commit 00c5b8cecc

View file

@ -10,6 +10,7 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var MushCodeRules = function() { var MushCodeRules = function() {
var keywords = ( var keywords = (
"@if|"+ "@if|"+
"@ifelse|"+ "@ifelse|"+
@ -22,6 +23,9 @@ var MushCodeRules = function() {
"@touch|"+ "@touch|"+
"@ataste|"+ "@ataste|"+
"@osound|"+ "@osound|"+
"@ahear|"+
"@aahear|"+
"@amhear|"+
"@otouch|"+ "@otouch|"+
"@otaste|"+ "@otaste|"+
"@drop|"+ "@drop|"+
@ -285,6 +289,7 @@ var MushCodeRules = function() {
"encrypt|"+ "encrypt|"+
"escape|"+ "escape|"+
"if|"+ "if|"+
"ifelse|"+
"lcstr|"+ "lcstr|"+
"left|"+ "left|"+
"lit|"+ "lit|"+
@ -398,7 +403,7 @@ var MushCodeRules = function() {
"@@|"+ "@@|"+
"bakerdays|"+ "bakerdays|"+
"bodybuild|"+ "bodybuild|"+
"box|"+ "box|"+
"capall|"+ "capall|"+
"catalog|"+ "catalog|"+
"children|"+ "children|"+
@ -485,14 +490,11 @@ var MushCodeRules = function() {
"piechartlabel|"+ "piechartlabel|"+
"createmaze|"+ "createmaze|"+
"drawmaze|"+ "drawmaze|"+
"drawwireframe" "drawwireframe"
); );
//var futureReserved = "";
var keywordMapper = this.createKeywordMapper({ var keywordMapper = this.createKeywordMapper({
"invalid.deprecated": "debugger", "invalid.deprecated": "debugger",
"support.function": builtinFunctions, "support.function": builtinFunctions,
//"invalid.illegal": futureReserved,
"constant.language": builtinConstants, "constant.language": builtinConstants,
"keyword": keywords "keyword": keywords
}, "identifier"); }, "identifier");
@ -513,30 +515,24 @@ var MushCodeRules = function() {
var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")";
this.$rules = { this.$rules = {
"start" : [ { "start" : [
token : "comment", {
regex : ";.*$" token : "variable", // mush substitution register
}, { regex : "%[0-9]{1}"
token : "string", // """ string },
regex : strPre + '"{3}(?:[^\\\\]|\\\\.)*?"{3}' {
}, { token : "variable", // mush substitution register
token : "string", // multi line """ string start regex : "%q[0-9A-Za-z]{1}"
regex : strPre + '"{3}.*$', },
next : "qqstring" {
}, { token : "variable", // mush special character register
token : "string", // " string regex : "%[a-zA-Z]{1}"
regex : strPre + '"(?:[^\\\\]|\\\\.)*?"' },
}, { {
token : "string", // ''' string token: "variable.language",
regex : strPre + "'{3}(?:[^\\\\]|\\\\.)*?'{3}" regex: "%[a-z0-9-_]+"
}, { },
token : "string", // multi line ''' string start {
regex : strPre + "'{3}.*$",
next : "qstring"
}, {
token : "string", // ' string
regex : strPre + "'(?:[^\\\\]|\\\\.)*?'"
}, {
token : "constant.numeric", // imaginary token : "constant.numeric", // imaginary
regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b" regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b"
}, { }, {
@ -553,7 +549,7 @@ var MushCodeRules = function() {
regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
}, { }, {
token : "keyword.operator", token : "keyword.operator",
regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|=" regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|#|%|<<|>>|\\||\\^|~|<|>|<=|=>|==|!=|<>|="
}, { }, {
token : "paren.lparen", token : "paren.lparen",
regex : "[\\[\\(\\{]" regex : "[\\[\\(\\{]"
@ -564,22 +560,6 @@ var MushCodeRules = function() {
token : "text", token : "text",
regex : "\\s+" regex : "\\s+"
} ], } ],
"qqstring" : [ {
token : "string", // multi line """ string end
regex : '(?:[^\\\\]|\\\\.)*?"{3}',
next : "start"
}, {
token : "string",
regex : '.+'
} ],
"qstring" : [ {
token : "string", // multi line ''' string end
regex : "(?:[^\\\\]|\\\\.)*?'{3}",
next : "start"
}, {
token : "string",
regex : '.+'
} ]
}; };
}; };