fix python string highlighting
This commit is contained in:
parent
4eff803f31
commit
2adc4c7c96
1 changed files with 50 additions and 20 deletions
|
|
@ -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"
|
||||||
|
}]
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue