fix python string highlighting

This commit is contained in:
nightwing 2013-05-04 16:03:27 +04:00
commit 2adc4c7c96

View file

@ -84,30 +84,28 @@ var PythonHighlightRules = function() {
var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + exponent + ")"; var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + exponent + ")";
var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")";
var stringEscape = "\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";
this.$rules = { this.$rules = {
"start" : [ { "start" : [ {
token : "comment", token : "comment",
regex : "#.*$" regex : "#.*$"
}, {
token : "string", // """ string
regex : strPre + '"{3}(?:[^\\\\]|\\\\.)*?"{3}'
}, { }, {
token : "string", // multi line """ string start token : "string", // multi line """ string start
regex : strPre + '"{3}.*$', regex : strPre + '"{3}',
next : "qqstring" next : "qqstring3"
}, { }, {
token : "string", // " string token : "string", // " string
regex : strPre + '"(?:[^\\\\]|\\\\.)*?"' regex : strPre + '"(?=.)',
}, { next : "qqstring"
token : "string", // ''' string
regex : strPre + "'{3}(?:[^\\\\]|\\\\.)*?'{3}"
}, { }, {
token : "string", // multi line ''' string start token : "string", // multi line ''' string start
regex : strPre + "'{3}.*$", regex : strPre + "'{3}",
next : "qstring" next : "qstring3"
}, { }, {
token : "string", // ' string token : "string", // ' string
regex : strPre + "'(?:[^\\\\]|\\\\.)*?'" regex : strPre + "'(?=.)",
next : "qstring"
}, { }, {
token : "constant.numeric", // imaginary token : "constant.numeric", // imaginary
regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b" regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b"
@ -136,22 +134,54 @@ var PythonHighlightRules = function() {
token : "text", token : "text",
regex : "\\s+" regex : "\\s+"
} ], } ],
"qqstring" : [ { "qqstring3" : [ {
token : "constant.language.escape",
regex : stringEscape
}, {
token : "string", // multi line """ string end token : "string", // multi line """ string end
regex : '(?:[^\\\\]|\\\\.)*?"{3}', regex : '"{3}',
next : "start" next : "start"
}, { }, {
token : "string", defaultToken : "string"
regex : '.+'
} ], } ],
"qstring" : [ { "qstring3" : [ {
token : "constant.language.escape",
regex : stringEscape
}, {
token : "string", // multi line ''' string end token : "string", // multi line ''' string end
regex : "(?:[^\\\\]|\\\\.)*?'{3}", regex : "'{3}",
next : "start" next : "start"
}, {
defaultToken : "string"
} ],
"qqstring" : [{
token : "constant.language.escape",
regex : stringEscape
}, { }, {
token : "string", token : "string",
regex : '.+' regex : "\\\\$",
} ] next : "qqstring"
}, {
token : "string",
regex : '"|$',
next : "start"
}, {
defaultToken: "string"
}],
"qstring" : [{
token : "constant.language.escape",
regex : stringEscape
}, {
token : "string",
regex : "\\\\$",
next : "qstring"
}, {
token : "string",
regex : "'|$",
next : "start"
}, {
defaultToken: "string"
}]
}; };
}; };