diff --git a/Python/Python.tmLanguage b/Python/Python.tmLanguage
index 458c8fe..dad5a38 100644
--- a/Python/Python.tmLanguage
+++ b/Python/Python.tmLanguage
@@ -42,71 +42,83 @@
punctuation.definition.comment.python
+
match
(#).*$\n?
name
comment.line.number-sign.python
+
match
\b(?i:(0x\h*)L)
name
constant.numeric.integer.long.hexadecimal.python
+
match
\b(?i:(0x\h*))
name
constant.numeric.integer.hexadecimal.python
+
match
\b(?i:(0[0-7]+)L)
name
constant.numeric.integer.long.octal.python
+
match
\b(0[0-7]+)
name
constant.numeric.integer.octal.python
+
match
\b(?i:(((\d+(\.(?=[^a-zA-Z_])\d*)?|(?<=[^0-9a-zA-Z_])\.\d+)(e[\-\+]?\d+)?))J)
name
constant.numeric.complex.python
+
match
\b(?i:(\d+\.\d*(e[\-\+]?\d+)?))(?=[^a-zA-Z_])
name
constant.numeric.float.python
+
match
(?<=[^0-9a-zA-Z_])(?i:(\.\d+(e[\-\+]?\d+)?))
name
constant.numeric.float.python
+
match
\b(?i:(\d+e[\-\+]?\d+))
name
constant.numeric.float.python
+
match
\b(?i:([1-9]+[0-9]*|0)L)
name
constant.numeric.integer.long.decimal.python
+
match
\b([1-9]+[0-9_]*|0)
name
constant.numeric.integer.decimal.python
+
captures
@@ -116,9 +128,11 @@
storage.modifier.global.python
+
match
\b(global)\b
+
captures
@@ -127,15 +141,18 @@
name
keyword.control.import.python
+
2
name
keyword.control.import.from.python
+
match
\b(?:(import)|(from))\b
+
comment
keywords that delimit flow blocks or alter flow from within a block
@@ -144,6 +161,7 @@
name
keyword.control.flow.python
+
comment
keyword operators that evaluate to True or False
@@ -152,6 +170,7 @@
name
keyword.operator.logical.python
+
captures
@@ -161,41 +180,48 @@
keyword.other.python
+
comment
keywords that haven't fit into other groups (yet).
match
\b(as|assert|del|exec|print)\b
+
match
<>
name
invalid.deprecated.operator.python
+
match
<\=|>\=|\=\=|<|>|\!\=
name
keyword.operator.comparison.python
+
match
\+\=|-\=|\*\=|/\=|//\=|%\=|&\=|\|\=|\^\=|>>\=|<<\=|\*\*\=
name
keyword.operator.assignment.augmented.python
+
match
\+|\-|\*|\*\*|/|//|%|<<|>>|&|\||\^|~
name
keyword.operator.arithmetic.python
+
match
\=
name
keyword.operator.assignment.python
+
begin
^\s*(class)\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\s*\:)
@@ -207,6 +233,7 @@
storage.type.class.python
+
contentName
entity.name.type.class.python
end
@@ -219,6 +246,7 @@
punctuation.section.class.begin.python
+
name
meta.class.old-style.python
patterns
@@ -229,6 +257,7 @@
+
begin
^\s*(class)\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\s*\()
@@ -240,6 +269,7 @@
storage.type.class.python
+
end
(\))\s*(?:(\:)|(.*$\n?))
endCaptures
@@ -249,17 +279,20 @@
name
punctuation.definition.inheritance.end.python
+
2
name
punctuation.section.class.begin.python
+
3
name
invalid.illegal.missing-section-begin.python
+
name
meta.class.python
patterns
@@ -279,6 +312,7 @@
+
begin
(\()
@@ -290,6 +324,7 @@
punctuation.definition.inheritance.begin.python
+
contentName
meta.class.inheritance.python
end
@@ -311,6 +346,7 @@
punctuation.separator.inheritance.python
+
patterns
@@ -323,6 +359,7 @@
+
begin
^\s*(class)\s+(?=[a-zA-Z_][a-zA-Z_0-9])
@@ -334,6 +371,7 @@
storage.type.class.python
+
end
(\()|\s*($\n?|#.*$\n?)
endCaptures
@@ -343,12 +381,14 @@
name
punctuation.definition.inheritance.begin.python
+
2
name
invalid.illegal.missing-inheritance.python
+
name
meta.class.python
patterns
@@ -370,6 +410,7 @@
+
begin
^\s*(def)\s+(?=[A-Za-z_][A-Za-z0-9_]*\s*\()
@@ -381,6 +422,7 @@
storage.type.function.python
+
end
(\))\s*(?:(\:)|(.*$\n?))
endCaptures
@@ -390,17 +432,20 @@
name
punctuation.definition.parameters.end.python
+
2
name
punctuation.section.function.begin.python
+
3
name
invalid.illegal.missing-section-begin.python
+
name
meta.function.python
patterns
@@ -420,6 +465,7 @@
+
begin
(\()
@@ -431,6 +477,7 @@
punctuation.definition.parameters.begin.python
+
contentName
meta.function.parameters.python
end
@@ -441,6 +488,7 @@
include
#keyword_arguments
+
captures
@@ -449,12 +497,14 @@
name
variable.parameter.function.python
+
2
name
punctuation.separator.parameters.python
+
match
\b([a-zA-Z_][a-zA-Z_0-9]*)\s*(?:(,)|(?=[\n\)]))
@@ -462,6 +512,7 @@
+
begin
^\s*(def)\s+(?=[A-Za-z_][A-Za-z0-9_]*)
@@ -473,6 +524,7 @@
storage.type.function.python
+
end
(\()|\s*($\n?|#.*$\n?)
endCaptures
@@ -482,12 +534,14 @@
name
punctuation.definition.parameters.begin.python
+
2
name
invalid.illegal.missing-parameters.python
+
name
meta.function.python
patterns
@@ -509,6 +563,7 @@
+
begin
(lambda)(?=\s+)
@@ -520,6 +575,7 @@
storage.type.function.inline.python
+
end
(\:)
endCaptures
@@ -529,17 +585,20 @@
name
punctuation.definition.parameters.end.python
+
2
name
punctuation.section.function.begin.python
+
3
name
invalid.illegal.missing-section-begin.python
+
name
meta.function.inline.python
patterns
@@ -557,6 +616,7 @@
include
#keyword_arguments
+
captures
@@ -565,12 +625,14 @@
name
variable.parameter.function.python
+
2
name
punctuation.separator.parameters.python
+
match
\b([a-zA-Z_][a-zA-Z_0-9]*)\s*(?:(,)|(?=[\n\)\:]))
@@ -578,6 +640,7 @@
+
begin
^\s*(?=@\s*[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*\s*\()
@@ -593,6 +656,7 @@
punctuation.definition.arguments.end.python
+
name
meta.function.decorator.python
patterns
@@ -608,6 +672,7 @@
punctuation.definition.decorator.python
+
contentName
entity.name.function.decorator.python
end
@@ -620,6 +685,7 @@
+
begin
(\()
@@ -631,6 +697,7 @@
punctuation.definition.arguments.begin.python
+
contentName
meta.function.decorator.arguments.python
end
@@ -641,6 +708,7 @@
include
#keyword_arguments
+
include
$self
@@ -649,6 +717,7 @@
+
begin
^\s*(?=@\s*[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*)
@@ -671,6 +740,7 @@
punctuation.definition.decorator.python
+
end
(?=\s|$\n?|#)
patterns
@@ -683,6 +753,7 @@
+
begin
(?<=\)|\])\s*(\()
@@ -694,6 +765,7 @@
punctuation.definition.arguments.begin.python
+
contentName
meta.function-call.arguments.python
end
@@ -706,6 +778,7 @@
punctuation.definition.arguments.end.python
+
name
meta.function-call.python
patterns
@@ -714,12 +787,14 @@
include
#keyword_arguments
+
include
$self
+
begin
(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*\s*\()
@@ -733,6 +808,7 @@
punctuation.definition.arguments.end.python
+
name
meta.function-call.python
patterns
@@ -750,6 +826,7 @@
+
begin
(\()
@@ -761,6 +838,7 @@
punctuation.definition.arguments.begin.python
+
contentName
meta.function-call.arguments.python
end
@@ -771,6 +849,7 @@
include
#keyword_arguments
+
include
$self
@@ -779,6 +858,7 @@
+
begin
(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*\s*\[)
@@ -792,6 +872,7 @@
punctuation.definition.arguments.end.python
+
name
meta.item-access.python
patterns
@@ -809,6 +890,7 @@
+
begin
(\[)
@@ -820,6 +902,7 @@
punctuation.definition.arguments.begin.python
+
contentName
meta.item-access.arguments.python
end
@@ -834,6 +917,7 @@
+
begin
(?<=\)|\])\s*(\[)
@@ -845,6 +929,7 @@
punctuation.definition.arguments.begin.python
+
contentName
meta.item-access.arguments.python
end
@@ -857,6 +942,7 @@
punctuation.definition.arguments.end.python
+
name
meta.item-access.python
patterns
@@ -867,6 +953,7 @@
+
captures
@@ -876,9 +963,11 @@
storage.type.function.python
+
match
\b(def|lambda)\b
+
captures
@@ -888,35 +977,43 @@
storage.type.class.python
+
match
\b(class)\b
+
include
#line_continuation
+
include
#language_variables
+
match
\b(None|True|False|Ellipsis|NotImplemented)\b
name
constant.language.python
+
include
#string_quoted_single
+
include
#string_quoted_double
+
include
#dotted_name
+
begin
(\()
@@ -930,6 +1027,7 @@
+
captures
@@ -938,20 +1036,24 @@
name
punctuation.definition.list.begin.python
+
2
name
meta.empty-list.python
+
3
name
punctuation.definition.list.end.python
+
match
(\[)(\s*(\]))\b
+
begin
(\[)
@@ -963,6 +1065,7 @@
punctuation.definition.list.begin.python
+
end
(\])
endCaptures
@@ -973,6 +1076,7 @@
punctuation.definition.list.end.python
+
name
meta.structure.list.python
patterns
@@ -992,6 +1096,7 @@
punctuation.separator.list.python
+
patterns
@@ -1002,6 +1107,7 @@
+
captures
@@ -1010,22 +1116,26 @@
name
punctuation.definition.tuple.begin.python
+
2
name
meta.empty-tuple.python
+
3
name
punctuation.definition.tuple.end.python
+
match
(\()(\s*(\)))
name
meta.structure.tuple.python
+
captures
@@ -1034,22 +1144,26 @@
name
punctuation.definition.dictionary.begin.python
+
2
name
meta.empty-dictionary.python
+
3
name
punctuation.definition.dictionary.end.python
+
match
(\{)(\s*(\}))
name
meta.structure.dictionary.python
+
begin
(\{)
@@ -1061,6 +1175,7 @@
punctuation.definition.dictionary.begin.python
+
end
(\})
endCaptures
@@ -1071,6 +1186,7 @@
punctuation.definition.dictionary.end.python
+
name
meta.structure.dictionary.python
patterns
@@ -1090,6 +1206,7 @@
punctuation.separator.valuepair.dictionary.python
+
patterns
@@ -1098,6 +1215,7 @@
+
begin
(?<=\:|^)\s*
@@ -1113,6 +1231,7 @@
punctuation.separator.dictionary.python
+
patterns
@@ -1144,6 +1263,7 @@
name
support.type.exception.python
+
builtin_functions
match
@@ -1157,6 +1277,7 @@
name
support.function.builtin.python
+
builtin_types
match
@@ -1168,6 +1289,7 @@
name
support.type.python
+
constant_placeholder
match
@@ -1175,6 +1297,7 @@
name
constant.other.placeholder.python
+
docstrings
patterns
@@ -1194,6 +1317,7 @@
+
begin
^\s*(?=[uU]?[rR]?''')
@@ -1211,6 +1335,7 @@
+
dotted_name
begin
@@ -1230,20 +1355,24 @@
include
#magic_function_names
+
include
#magic_variable_names
+
include
#illegal_names
+
include
#generic_names
+
begin
(?<!\.)(?=[A-Za-z_][A-Za-z0-9_]*)
@@ -1255,30 +1384,37 @@
include
#builtin_functions
+
include
#builtin_types
+
include
#builtin_exceptions
+
include
#illegal_names
+
include
#magic_function_names
+
include
#magic_variable_names
+
include
#language_variables
+
include
#generic_names
@@ -1287,6 +1423,7 @@
+
entity_name_class
patterns
@@ -1295,12 +1432,14 @@
include
#illegal_names
+
include
#generic_names
+
entity_name_function
patterns
@@ -1309,16 +1448,19 @@
include
#magic_function_names
+
include
#illegal_names
+
include
#generic_names
+
escaped_char
captures
@@ -1328,70 +1470,84 @@
name
constant.character.escape.hex.python
+
10
name
constant.character.escape.linefeed.python
+
11
name
constant.character.escape.return.python
+
12
name
constant.character.escape.tab.python
+
13
name
constant.character.escape.vertical-tab.python
+
2
name
constant.character.escape.octal.python
+
3
name
constant.character.escape.newline.python
+
4
name
constant.character.escape.backlash.python
+
5
name
constant.character.escape.double-quote.python
+
6
name
constant.character.escape.single-quote.python
+
7
name
constant.character.escape.bell.python
+
8
name
constant.character.escape.backspace.python
+
9
name
constant.character.escape.formfeed.python
+
match
(\\x[0-9A-F]{2})|(\\[0-7]{3})|(\\\n)|(\\\\)|(\\\")|(\\')|(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)
+
escaped_unicode_char
captures
@@ -1401,20 +1557,24 @@
name
constant.character.escape.unicode.16-bit-hex.python
+
2
name
constant.character.escape.unicode.32-bit-hex.python
+
3
name
constant.character.escape.unicode.name.python
+
match
(\\U[0-9A-Fa-f]{8})|(\\u[0-9A-Fa-f]{4})|(\\N\{[a-zA-Z ]+\})
+
function_name
patterns
@@ -1423,33 +1583,40 @@
include
#magic_function_names
+
include
#magic_variable_names
+
include
#builtin_exceptions
+
include
#builtin_functions
+
include
#builtin_types
+
include
#generic_names
+
generic_names
match
[A-Za-z_][A-Za-z0-9_]*
+
illegal_names
match
@@ -1457,6 +1624,7 @@
name
invalid.illegal.name.python
+
keyword_arguments
begin
@@ -1468,12 +1636,14 @@
name
variable.parameter.function.python
+
2
name
keyword.operator.assignment.python
+
end
\s*(?:(,)|(?=$\n?|[\)\:]))
endCaptures
@@ -1484,6 +1654,7 @@
punctuation.separator.parameters.python
+
patterns
@@ -1492,6 +1663,7 @@
+
language_variables
match
@@ -1499,6 +1671,7 @@
name
variable.language.python
+
line_continuation
captures
@@ -1508,15 +1681,18 @@
name
punctuation.separator.continuation.line.python
+
2
name
invalid.illegal.unexpected-text.python
+
match
(\\)(.*)$\n?
+
magic_function_names
comment
@@ -1536,6 +1712,7 @@
name
support.function.magic.python
+
magic_variable_names
comment
@@ -1545,6 +1722,7 @@
name
support.variable.magic.python
+
regular_expressions
comment
@@ -1559,6 +1737,7 @@
+
string_quoted_double
patterns
@@ -1573,12 +1752,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
single quoted unicode-raw string
end
@@ -1590,12 +1771,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
name
string.quoted.double.block.unicode-raw-regex.python
patterns
@@ -1604,20 +1787,24 @@
include
#constant_placeholder
+
include
#escaped_unicode_char
+
include
#escaped_char
+
include
#regular_expressions
+
begin
([uU]R)(""")
@@ -1628,12 +1815,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
single quoted unicode-raw string without regular expression highlighting
end
@@ -1645,12 +1834,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
name
string.quoted.double.block.unicode-raw.python
patterns
@@ -1659,16 +1850,19 @@
include
#constant_placeholder
+
include
#escaped_unicode_char
+
include
#escaped_char
+
begin
(r|rf|fr)(""")
@@ -1679,12 +1873,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
double quoted raw string
end
@@ -1696,12 +1892,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
name
string.quoted.double.block.raw-regex.python
patterns
@@ -1710,16 +1908,19 @@
include
#constant_placeholder
+
include
#escaped_char
+
include
#regular_expressions
+
begin
(R)(""")
@@ -1730,12 +1931,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
double quoted raw string
end
@@ -1747,12 +1950,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
name
string.quoted.double.block.raw.python
patterns
@@ -1761,12 +1966,14 @@
include
#constant_placeholder
+
include
#escaped_char
+
begin
([uU])(""")
@@ -1777,12 +1984,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
double quoted unicode string
end
@@ -1794,12 +2003,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
name
string.quoted.double.block.unicode.python
patterns
@@ -1808,16 +2019,19 @@
include
#constant_placeholder
+
include
#escaped_unicode_char
+
include
#escaped_char
+
begin
([uU]r)(")
@@ -1828,12 +2042,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
double-quoted raw string
end
@@ -1845,17 +2061,20 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
3
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.double.single-line.unicode-raw-regex.python
patterns
@@ -1864,20 +2083,24 @@
include
#constant_placeholder
+
include
#escaped_unicode_char
+
include
#escaped_char
+
include
#regular_expressions
+
begin
([uU]R)(")
@@ -1888,12 +2111,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
double-quoted raw string
end
@@ -1905,17 +2130,20 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
3
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.double.single-line.unicode-raw.python
patterns
@@ -1924,16 +2152,19 @@
include
#constant_placeholder
+
include
#escaped_unicode_char
+
include
#escaped_char
+
begin
(r|rf|fr)(")
@@ -1944,12 +2175,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
double-quoted raw string
end
@@ -1961,17 +2194,20 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
3
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.double.single-line.raw-regex.python
patterns
@@ -1980,16 +2216,19 @@
include
#constant_placeholder
+
include
#escaped_char
+
include
#regular_expressions
+
begin
(R)(")
@@ -2000,12 +2239,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
double-quoted raw string
end
@@ -2017,17 +2258,20 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
3
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.double.single-line.raw.python
patterns
@@ -2036,12 +2280,14 @@
include
#constant_placeholder
+
include
#escaped_char
+
begin
([uU])(")
@@ -2052,12 +2298,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
double quoted unicode string
end
@@ -2069,17 +2317,20 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
3
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.double.single-line.unicode.python
patterns
@@ -2088,16 +2339,19 @@
include
#constant_placeholder
+
include
#escaped_unicode_char
+
include
#escaped_char
+
begin
(""")(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))
@@ -2109,6 +2363,7 @@
punctuation.definition.string.begin.python
+
comment
double quoted string
end
@@ -2120,12 +2375,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
name
string.quoted.double.block.sql.python
patterns
@@ -2134,16 +2391,19 @@
include
#constant_placeholder
+
include
#escaped_char
+
include
source.sql
+
begin
(")(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))
@@ -2155,6 +2415,7 @@
punctuation.definition.string.begin.python
+
comment
double quoted string
end
@@ -2166,17 +2427,20 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
3
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.double.single-line.sql.python
patterns
@@ -2185,16 +2449,19 @@
include
#constant_placeholder
+
include
#escaped_char
+
include
source.sql
+
begin
(""")
@@ -2206,6 +2473,7 @@
punctuation.definition.string.begin.python
+
comment
double quoted string
end
@@ -2217,12 +2485,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
name
string.quoted.double.block.python
patterns
@@ -2231,12 +2501,14 @@
include
#constant_placeholder
+
include
#escaped_char
+
begin
(")
@@ -2248,6 +2520,7 @@
punctuation.definition.string.begin.python
+
comment
double quoted string
end
@@ -2259,17 +2532,20 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.double.python
+
3
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.double.single-line.python
patterns
@@ -2278,6 +2554,7 @@
include
#constant_placeholder
+
include
#escaped_char
@@ -2286,6 +2563,7 @@
+
string_quoted_single
patterns
@@ -2298,22 +2576,26 @@
name
punctuation.definition.string.begin.python
+
2
name
punctuation.definition.string.end.python
+
3
name
meta.empty-string.single.python
+
match
(?<!')(')(('))(?!')
name
string.quoted.single.single-line.python
+
begin
([uU]r)(''')
@@ -2324,12 +2606,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
single quoted unicode-raw string
end
@@ -2341,12 +2625,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.single.python
+
name
string.quoted.single.block.unicode-raw-regex.python
patterns
@@ -2355,20 +2641,24 @@
include
#constant_placeholder
+
include
#escaped_unicode_char
+
include
#escaped_char
+
include
#regular_expressions
+
begin
([uU]R)(''')
@@ -2379,12 +2669,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
single quoted unicode-raw string
end
@@ -2396,12 +2688,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.single.python
+
name
string.quoted.single.block.unicode-raw.python
patterns
@@ -2410,16 +2704,19 @@
include
#constant_placeholder
+
include
#escaped_unicode_char
+
include
#escaped_char
+
begin
(r|rf|fr)(''')
@@ -2430,12 +2727,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
single quoted raw string
end
@@ -2447,12 +2746,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.single.python
+
name
string.quoted.single.block.raw-regex.python
patterns
@@ -2461,16 +2762,19 @@
include
#constant_placeholder
+
include
#escaped_char
+
include
#regular_expressions
+
begin
(R)(''')
@@ -2481,12 +2785,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
single quoted raw string
end
@@ -2498,12 +2804,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.single.python
+
name
string.quoted.single.block.raw.python
patterns
@@ -2512,12 +2820,14 @@
include
#constant_placeholder
+
include
#escaped_char
+
begin
([uU])(''')
@@ -2528,12 +2838,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
single quoted unicode string
end
@@ -2545,12 +2857,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.single.python
+
name
string.quoted.single.block.unicode.python
patterns
@@ -2559,16 +2873,19 @@
include
#constant_placeholder
+
include
#escaped_unicode_char
+
include
#escaped_char
+
begin
([uU]r)(')
@@ -2579,12 +2896,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
single quoted raw string
end
@@ -2596,12 +2915,14 @@
name
punctuation.definition.string.end.python
+
2
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.single.single-line.unicode-raw-regex.python
patterns
@@ -2610,20 +2931,24 @@
include
#constant_placeholder
+
include
#escaped_unicode_char
+
include
#escaped_char
+
include
#regular_expressions
+
begin
([uU]R)(')
@@ -2634,12 +2959,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
single quoted raw string
end
@@ -2651,12 +2978,14 @@
name
punctuation.definition.string.end.python
+
2
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.single.single-line.unicode-raw.python
patterns
@@ -2665,16 +2994,19 @@
include
#constant_placeholder
+
include
#escaped_unicode_char
+
include
#escaped_char
+
begin
(r|rf|fr)(')
@@ -2685,12 +3017,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
single quoted raw string
end
@@ -2702,12 +3036,14 @@
name
punctuation.definition.string.end.python
+
2
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.single.single-line.raw-regex.python
patterns
@@ -2716,16 +3052,19 @@
include
#constant_placeholder
+
include
#escaped_char
+
include
#regular_expressions
+
begin
(R)(')
@@ -2736,12 +3075,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
single quoted raw string
end
@@ -2753,12 +3094,14 @@
name
punctuation.definition.string.end.python
+
2
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.single.single-line.raw.python
patterns
@@ -2767,12 +3110,14 @@
include
#constant_placeholder
+
include
#escaped_char
+
begin
([uU])(')
@@ -2783,12 +3128,14 @@
name
storage.type.string.python
+
2
name
punctuation.definition.string.begin.python
+
comment
single quoted unicode string
end
@@ -2800,12 +3147,14 @@
name
punctuation.definition.string.end.python
+
2
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.single.single-line.unicode.python
patterns
@@ -2814,16 +3163,19 @@
include
#constant_placeholder
+
include
#escaped_unicode_char
+
include
#escaped_char
+
begin
(''')(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))
@@ -2835,6 +3187,7 @@
punctuation.definition.string.begin.python
+
comment
single quoted string
end
@@ -2846,12 +3199,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.single.python
+
name
string.quoted.single.block.python
patterns
@@ -2860,16 +3215,19 @@
include
#constant_placeholder
+
include
#escaped_char
+
include
source.sql
+
begin
(')(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))
@@ -2881,6 +3239,7 @@
punctuation.definition.string.begin.python
+
comment
single quoted string
end
@@ -2892,12 +3251,14 @@
name
punctuation.definition.string.end.python
+
2
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.single.single-line.python
patterns
@@ -2906,16 +3267,19 @@
include
#constant_placeholder
+
include
#escaped_char
+
include
source.sql
+
begin
(''')
@@ -2927,6 +3291,7 @@
punctuation.definition.string.begin.python
+
comment
single quoted string
end
@@ -2938,12 +3303,14 @@
name
punctuation.definition.string.end.python
+
2
name
meta.empty-string.single.python
+
name
string.quoted.single.block.python
patterns
@@ -2952,12 +3319,14 @@
include
#constant_placeholder
+
include
#escaped_char
+
begin
(')
@@ -2969,6 +3338,7 @@
punctuation.definition.string.begin.python
+
comment
single quoted string
end
@@ -2980,12 +3350,14 @@
name
punctuation.definition.string.end.python
+
2
name
invalid.illegal.unclosed-string.python
+
name
string.quoted.single.single-line.python
patterns
@@ -2994,6 +3366,7 @@
include
#constant_placeholder
+
include
#escaped_char
@@ -3002,6 +3375,7 @@
+
strings
patterns
@@ -3010,6 +3384,7 @@
include
#string_quoted_double
+
include
#string_quoted_single
@@ -3017,6 +3392,7 @@
+
scopeName
source.python
uuid