sublime/Python/Python.tmLanguage
Ethan Dalool 02cbad8603 Move decimal back below float. Turns out order is important.
My order broke the coloring of floats because it was coloring
the whole and decimal separately.
2020-09-28 20:16:41 -07:00

3387 lines
73 KiB
Text

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>bundleUUID</key>
<string>E3BADC20-6B0E-11D9-9DC9-000D93589AF6</string>
<key>comment</key>
<string>
todo:
list comprehension / generator comprehension scope.
</string>
<key>fileTypes</key>
<array>
<string>py</string>
<string>rpy</string>
<string>pyw</string>
<string>cpy</string>
<string>SConstruct</string>
<string>Sconstruct</string>
<string>sconstruct</string>
<string>SConscript</string>
</array>
<key>firstLineMatch</key>
<string>^#!/.*\bpython[0-9.-]*\b</string>
<key>foldingStartMarker</key>
<string>^\s*(def|class)\s+([.a-zA-Z0-9_ &lt;]+)\s*(\((.*)\))?\s*:|\{\s*$|\(\s*$|\[\s*$|^\s*"""(?=.)(?!.*""")</string>
<key>foldingStopMarker</key>
<string>^\s*$|^\s*\}|^\s*\]|^\s*\)|^\s*"""\s*$</string>
<key>keyEquivalent</key>
<string>^~P</string>
<key>name</key>
<string>Python</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.python</string>
</dict>
</dict>
<key>match</key>
<string>(#).*$\n?</string>
<key>name</key>
<string>comment.line.number-sign.python</string>
</dict>
<dict>
<key>match</key>
<string>\b(0[Bb][01]+)</string>
<key>name</key>
<string>constant.numeric.integer.binary.python</string>
</dict>
<dict>
<key>match</key>
<string>\b(0[Xx]\h*)</string>
<key>name</key>
<string>constant.numeric.integer.hexadecimal.python</string>
</dict>
<dict>
<key>match</key>
<string>\b(0[Oo][0-7]+)</string>
<key>name</key>
<string>constant.numeric.integer.octal.python</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:(((\d+(\.(?=[^a-zA-Z_])\d*)?|(?&lt;=[^0-9a-zA-Z_])\.\d+)(e[\-\+]?\d+)?))J)</string>
<key>name</key>
<string>constant.numeric.complex.python</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:(\d+\.\d*(e[\-\+]?\d+)?))(?=[^a-zA-Z_])</string>
<key>name</key>
<string>constant.numeric.float.python</string>
</dict>
<dict>
<key>match</key>
<string>(?&lt;=[^0-9a-zA-Z_])(?i:(\.\d+(e[\-\+]?\d+)?))</string>
<key>name</key>
<string>constant.numeric.float.python</string>
</dict>
<dict>
<key>match</key>
<string>\b(?i:(\d+e[\-\+]?\d+))</string>
<key>name</key>
<string>constant.numeric.float.python</string>
</dict>
<dict>
<key>match</key>
<string>\b([1-9]+[0-9_]*|0)</string>
<key>name</key>
<string>constant.numeric.integer.decimal.python</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.modifier.global.python</string>
</dict>
</dict>
<key>match</key>
<string>\b(global)\b</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.import.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.import.from.python</string>
</dict>
</dict>
<key>match</key>
<string>\b(?:(import)|(from))\b</string>
</dict>
<dict>
<key>comment</key>
<string>keywords that delimit flow blocks or alter flow from within a block</string>
<key>match</key>
<string>\b(elif|else|except|finally|for|if|try|while|with|break|continue|pass|raise|return|yield)\b</string>
<key>name</key>
<string>keyword.control.flow.python</string>
</dict>
<dict>
<key>comment</key>
<string>keyword operators that evaluate to True or False</string>
<key>match</key>
<string>\b(and|in|is|not|or)\b</string>
<key>name</key>
<string>keyword.operator.logical.python</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.other.python</string>
</dict>
</dict>
<key>comment</key>
<string>keywords that haven't fit into other groups (yet).</string>
<key>match</key>
<string>\b(as|assert|del|exec|print)\b</string>
</dict>
<dict>
<key>match</key>
<string>&lt;&gt;</string>
<key>name</key>
<string>invalid.deprecated.operator.python</string>
</dict>
<dict>
<key>match</key>
<string>&lt;\=|&gt;\=|\=\=|&lt;|&gt;|\!\=</string>
<key>name</key>
<string>keyword.operator.comparison.python</string>
</dict>
<dict>
<key>match</key>
<string>\+\=|-\=|\*\=|/\=|//\=|%\=|&amp;\=|\|\=|\^\=|&gt;&gt;\=|&lt;&lt;\=|\*\*\=</string>
<key>name</key>
<string>keyword.operator.assignment.augmented.python</string>
</dict>
<dict>
<key>match</key>
<string>\+|\-|\*|\*\*|/|//|%|&lt;&lt;|&gt;&gt;|&amp;|\||\^|~</string>
<key>name</key>
<string>keyword.operator.arithmetic.python</string>
</dict>
<dict>
<key>match</key>
<string>\=</string>
<key>name</key>
<string>keyword.operator.assignment.python</string>
</dict>
<dict>
<key>begin</key>
<string>^\s*(class)\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\s*\:)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.class.python</string>
</dict>
</dict>
<key>contentName</key>
<string>entity.name.type.class.python</string>
<key>end</key>
<string>\s*(:)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.class.begin.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.class.old-style.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#entity_name_class</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^\s*(class)\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\s*\()</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.class.python</string>
</dict>
</dict>
<key>end</key>
<string>(\))\s*(?:(\:)|(.*$\n?))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.inheritance.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.section.class.begin.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>invalid.illegal.missing-section-begin.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.class.python</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=[A-Za-z_][A-Za-z0-9_]*)</string>
<key>contentName</key>
<string>entity.name.type.class.python</string>
<key>end</key>
<string>(?![A-Za-z0-9_])</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#entity_name_class</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(\()</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.inheritance.begin.python</string>
</dict>
</dict>
<key>contentName</key>
<string>meta.class.inheritance.python</string>
<key>end</key>
<string>(?=\)|:)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?&lt;=\(|,)\s*</string>
<key>contentName</key>
<string>entity.other.inherited-class.python</string>
<key>end</key>
<string>\s*(?:(,)|(?=\)))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.separator.inheritance.python</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^\s*(class)\s+(?=[a-zA-Z_][a-zA-Z_0-9])</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.class.python</string>
</dict>
</dict>
<key>end</key>
<string>(\()|\s*($\n?|#.*$\n?)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.inheritance.begin.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>invalid.illegal.missing-inheritance.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.class.python</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=[A-Za-z_][A-Za-z0-9_]*)</string>
<key>contentName</key>
<string>entity.name.type.class.python</string>
<key>end</key>
<string>(?![A-Za-z0-9_])</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#entity_name_function</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^\s*(def)\s+(?=[A-Za-z_][A-Za-z0-9_]*\s*\()</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.function.python</string>
</dict>
</dict>
<key>end</key>
<string>(\))\s*(?:(\:)|(.*$\n?))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.section.function.begin.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>invalid.illegal.missing-section-begin.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.python</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=[A-Za-z_][A-Za-z0-9_]*)</string>
<key>contentName</key>
<string>entity.name.function.python</string>
<key>end</key>
<string>(?![A-Za-z0-9_])</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#entity_name_function</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(\()</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.begin.python</string>
</dict>
</dict>
<key>contentName</key>
<string>meta.function.parameters.python</string>
<key>end</key>
<string>(?=\)\s*\:)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#keyword_arguments</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.parameter.function.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.separator.parameters.python</string>
</dict>
</dict>
<key>match</key>
<string>\b([a-zA-Z_][a-zA-Z_0-9]*)\s*(?:(,)|(?=[\n\)]))</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^\s*(def)\s+(?=[A-Za-z_][A-Za-z0-9_]*)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.function.python</string>
</dict>
</dict>
<key>end</key>
<string>(\()|\s*($\n?|#.*$\n?)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.begin.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>invalid.illegal.missing-parameters.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.python</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=[A-Za-z_][A-Za-z0-9_]*)</string>
<key>contentName</key>
<string>entity.name.function.python</string>
<key>end</key>
<string>(?![A-Za-z0-9_])</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#entity_name_function</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(lambda)(?=\s+)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.function.inline.python</string>
</dict>
</dict>
<key>end</key>
<string>(\:)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.section.function.begin.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>invalid.illegal.missing-section-begin.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.inline.python</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\s+</string>
<key>contentName</key>
<string>meta.function.inline.parameters.python</string>
<key>end</key>
<string>(?=\:)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#keyword_arguments</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.parameter.function.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.separator.parameters.python</string>
</dict>
</dict>
<key>match</key>
<string>\b([a-zA-Z_][a-zA-Z_0-9]*)\s*(?:(,)|(?=[\n\)\:]))</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^\s*(?=@\s*[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*\s*\()</string>
<key>comment</key>
<string>a decorator may be a function call which returns a decorator.</string>
<key>end</key>
<string>(\))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.decorator.python</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=(@)\s*[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*\s*\()</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.decorator.python</string>
</dict>
</dict>
<key>contentName</key>
<string>entity.name.function.decorator.python</string>
<key>end</key>
<string>(?=\s*\()</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#dotted_name</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(\()</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.python</string>
</dict>
</dict>
<key>contentName</key>
<string>meta.function.decorator.arguments.python</string>
<key>end</key>
<string>(?=\))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#keyword_arguments</string>
</dict>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^\s*(?=@\s*[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*)</string>
<key>contentName</key>
<string>entity.name.function.decorator.python</string>
<key>end</key>
<string>(?=\s|$\n?|#)</string>
<key>name</key>
<string>meta.function.decorator.python</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=(@)\s*[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)*)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.decorator.python</string>
</dict>
</dict>
<key>end</key>
<string>(?=\s|$\n?|#)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#dotted_name</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;=\)|\])\s*(\()</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.python</string>
</dict>
</dict>
<key>contentName</key>
<string>meta.function-call.arguments.python</string>
<key>end</key>
<string>(\))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.function-call.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#keyword_arguments</string>
</dict>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*\s*\()</string>
<key>end</key>
<string>(\))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.function-call.python</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*\s*\()</string>
<key>end</key>
<string>(?=\s*\()</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#dotted_name</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(\()</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.python</string>
</dict>
</dict>
<key>contentName</key>
<string>meta.function-call.arguments.python</string>
<key>end</key>
<string>(?=\))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#keyword_arguments</string>
</dict>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*\s*\[)</string>
<key>end</key>
<string>(\])</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.item-access.python</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*\s*\[)</string>
<key>end</key>
<string>(?=\s*\[)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#dotted_name</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(\[)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.python</string>
</dict>
</dict>
<key>contentName</key>
<string>meta.item-access.arguments.python</string>
<key>end</key>
<string>(?=\])</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;=\)|\])\s*(\[)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.begin.python</string>
</dict>
</dict>
<key>contentName</key>
<string>meta.item-access.arguments.python</string>
<key>end</key>
<string>(\])</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.arguments.end.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.item-access.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.function.python</string>
</dict>
</dict>
<key>match</key>
<string>\b(def|lambda)\b</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.class.python</string>
</dict>
</dict>
<key>match</key>
<string>\b(class)\b</string>
</dict>
<dict>
<key>include</key>
<string>#line_continuation</string>
</dict>
<dict>
<key>include</key>
<string>#language_variables</string>
</dict>
<dict>
<key>match</key>
<string>\b(None|True|False|Ellipsis|NotImplemented)\b</string>
<key>name</key>
<string>constant.language.python</string>
</dict>
<dict>
<key>include</key>
<string>#string_quoted_single</string>
</dict>
<dict>
<key>include</key>
<string>#string_quoted_double</string>
</dict>
<dict>
<key>include</key>
<string>#dotted_name</string>
</dict>
<dict>
<key>begin</key>
<string>(\()</string>
<key>end</key>
<string>(\))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.list.begin.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-list.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.list.end.python</string>
</dict>
</dict>
<key>match</key>
<string>(\[)(\s*(\]))\b</string>
</dict>
<dict>
<key>begin</key>
<string>(\[)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.list.begin.python</string>
</dict>
</dict>
<key>end</key>
<string>(\])</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.list.end.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.structure.list.python</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?&lt;=\[|\,)\s*(?![\],])</string>
<key>contentName</key>
<string>meta.structure.list.item.python</string>
<key>end</key>
<string>\s*(?:(,)|(?=\]))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.separator.list.python</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.tuple.begin.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-tuple.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.tuple.end.python</string>
</dict>
</dict>
<key>match</key>
<string>(\()(\s*(\)))</string>
<key>name</key>
<string>meta.structure.tuple.python</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.dictionary.begin.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-dictionary.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.dictionary.end.python</string>
</dict>
</dict>
<key>match</key>
<string>(\{)(\s*(\}))</string>
<key>name</key>
<string>meta.structure.dictionary.python</string>
</dict>
<dict>
<key>begin</key>
<string>(\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.dictionary.begin.python</string>
</dict>
</dict>
<key>end</key>
<string>(\})</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.dictionary.end.python</string>
</dict>
</dict>
<key>name</key>
<string>meta.structure.dictionary.python</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?&lt;=\{|\,|^)\s*(?![\},])</string>
<key>contentName</key>
<string>meta.structure.dictionary.key.python</string>
<key>end</key>
<string>\s*(?:(?=\})|(\:))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.separator.valuepair.dictionary.python</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;=\:|^)\s*</string>
<key>contentName</key>
<string>meta.structure.dictionary.value.python</string>
<key>end</key>
<string>\s*(?:(?=\})|(,))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.separator.dictionary.python</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>repository</key>
<dict>
<key>builtin_exceptions</key>
<dict>
<key>match</key>
<string>(?x)\b(
(
Arithmetic|Assertion|Attribute|Buffer|EOF|Environment|FloatingPoint|IO|
Import|Indentation|Index|Key|Lookup|Memory|Name|NotImplemented|OS|Overflow|
Reference|Runtime|Standard|Syntax|System|Tab|Type|UnboundLocal|
Unicode(Encode|Decode|Translate)?|
Value|VMS|Windows|ZeroDivision
)Error|
((Pending)?Deprecation|Runtime|Syntax|User|Future|Import|Unicode|Bytes)?Warning|
(Base)?Exception|
SystemExit|StopIteration|NotImplemented|KeyboardInterrupt|GeneratorExit
)\b</string>
<key>name</key>
<string>support.type.exception.python</string>
</dict>
<key>builtin_functions</key>
<dict>
<key>match</key>
<string>(?x)\b(
__import__|all|abs|any|apply|callable|chr|cmp|coerce|compile|delattr|dir|
divmod|eval|execfile|filter|getattr|globals|hasattr|hash|hex|
input|intern|isinstance|issubclass|iter|len|locals|map|max|min|oct|
ord|pow|range|raw_input|reduce|reload|repr|round|setattr|sorted|
sum|unichr|vars|zip
)\b</string>
<key>name</key>
<string>support.function.builtin.python</string>
</dict>
<key>builtin_types</key>
<dict>
<key>match</key>
<string>(?x)\b(
basestring|bool|buffer|bytes|classmethod|complex|dict|enumerate|
float|frozenset|int|list|long|object|open|property|reversed|set|
slice|staticmethod|str|super|tuple|type|unicode|xrange
)\b</string>
<key>name</key>
<string>support.type.python</string>
</dict>
<key>constant_placeholder</key>
<dict>
<key>match</key>
<string>(?i:%(\([a-z_]+\))?#?0?\-?\+?([0-9]*|\*)(\.([0-9]*|\*))?[hL]?[a-z%])</string>
<key>name</key>
<string>constant.other.placeholder.python</string>
</dict>
<key>docstrings</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>^\s*(?=[uU]?[rR]?""")</string>
<key>end</key>
<string>(?&lt;=""")</string>
<key>name</key>
<string>comment.block.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string_quoted_double</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^\s*(?=[uU]?[rR]?''')</string>
<key>end</key>
<string>(?&lt;=''')</string>
<key>name</key>
<string>comment.block.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string_quoted_single</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>dotted_name</key>
<dict>
<key>begin</key>
<string>(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*)</string>
<key>end</key>
<string>(?![A-Za-z0-9_\.])</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(\.)(?=[A-Za-z_][A-Za-z0-9_]*)</string>
<key>end</key>
<string>(?![A-Za-z0-9_])</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#magic_function_names</string>
</dict>
<dict>
<key>include</key>
<string>#magic_variable_names</string>
</dict>
<dict>
<key>include</key>
<string>#illegal_names</string>
</dict>
<dict>
<key>include</key>
<string>#generic_names</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;!\.)(?=[A-Za-z_][A-Za-z0-9_]*)</string>
<key>end</key>
<string>(?![A-Za-z0-9_])</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#builtin_functions</string>
</dict>
<dict>
<key>include</key>
<string>#builtin_types</string>
</dict>
<dict>
<key>include</key>
<string>#builtin_exceptions</string>
</dict>
<dict>
<key>include</key>
<string>#illegal_names</string>
</dict>
<dict>
<key>include</key>
<string>#magic_function_names</string>
</dict>
<dict>
<key>include</key>
<string>#magic_variable_names</string>
</dict>
<dict>
<key>include</key>
<string>#language_variables</string>
</dict>
<dict>
<key>include</key>
<string>#generic_names</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>entity_name_class</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#illegal_names</string>
</dict>
<dict>
<key>include</key>
<string>#generic_names</string>
</dict>
</array>
</dict>
<key>entity_name_function</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#magic_function_names</string>
</dict>
<dict>
<key>include</key>
<string>#illegal_names</string>
</dict>
<dict>
<key>include</key>
<string>#generic_names</string>
</dict>
</array>
</dict>
<key>escaped_char</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.character.escape.hex.python</string>
</dict>
<key>10</key>
<dict>
<key>name</key>
<string>constant.character.escape.linefeed.python</string>
</dict>
<key>11</key>
<dict>
<key>name</key>
<string>constant.character.escape.return.python</string>
</dict>
<key>12</key>
<dict>
<key>name</key>
<string>constant.character.escape.tab.python</string>
</dict>
<key>13</key>
<dict>
<key>name</key>
<string>constant.character.escape.vertical-tab.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>constant.character.escape.octal.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>constant.character.escape.newline.python</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>constant.character.escape.backlash.python</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>constant.character.escape.double-quote.python</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>constant.character.escape.single-quote.python</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>constant.character.escape.bell.python</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>constant.character.escape.backspace.python</string>
</dict>
<key>9</key>
<dict>
<key>name</key>
<string>constant.character.escape.formfeed.python</string>
</dict>
</dict>
<key>match</key>
<string>(\\x[0-9A-F]{2})|(\\[0-7]{3})|(\\\n)|(\\\\)|(\\\")|(\\')|(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)</string>
</dict>
<key>escaped_unicode_char</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.character.escape.unicode.16-bit-hex.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>constant.character.escape.unicode.32-bit-hex.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>constant.character.escape.unicode.name.python</string>
</dict>
</dict>
<key>match</key>
<string>(\\U[0-9A-Fa-f]{8})|(\\u[0-9A-Fa-f]{4})|(\\N\{[a-zA-Z ]+\})</string>
</dict>
<key>function_name</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#magic_function_names</string>
</dict>
<dict>
<key>include</key>
<string>#magic_variable_names</string>
</dict>
<dict>
<key>include</key>
<string>#builtin_exceptions</string>
</dict>
<dict>
<key>include</key>
<string>#builtin_functions</string>
</dict>
<dict>
<key>include</key>
<string>#builtin_types</string>
</dict>
<dict>
<key>include</key>
<string>#generic_names</string>
</dict>
</array>
</dict>
<key>generic_names</key>
<dict>
<key>match</key>
<string>[A-Za-z_][A-Za-z0-9_]*</string>
</dict>
<key>illegal_names</key>
<dict>
<key>match</key>
<string>\b(and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield)\b</string>
<key>name</key>
<string>invalid.illegal.name.python</string>
</dict>
<key>keyword_arguments</key>
<dict>
<key>begin</key>
<string>\b([a-zA-Z_][a-zA-Z_0-9]*)\s*(=)(?!=)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.parameter.function.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.operator.assignment.python</string>
</dict>
</dict>
<key>end</key>
<string>\s*(?:(,)|(?=$\n?|[\)\:]))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.separator.parameters.python</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<key>language_variables</key>
<dict>
<key>match</key>
<string>\b(self|cls)\b</string>
<key>name</key>
<string>variable.language.python</string>
</dict>
<key>line_continuation</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.separator.continuation.line.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>invalid.illegal.unexpected-text.python</string>
</dict>
</dict>
<key>match</key>
<string>(\\)(.*)$\n?</string>
</dict>
<key>magic_function_names</key>
<dict>
<key>comment</key>
<string>these methods have magic interpretation by python and are generally called indirectly through syntactic constructs</string>
<key>match</key>
<string>(?x)\b(__(?:
abs|add|and|call|cmp|coerce|complex|contains|del|delattr|
delete|delitem|delslice|div|divmod|enter|eq|exit|float|
floordiv|ge|get|getattr|getattribute|getitem|getslice|gt|
hash|hex|iadd|iand|idiv|ifloordiv|ilshift|imod|imul|init|
int|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|
long|lshift|lt|mod|mul|ne|neg|new|nonzero|oct|or|pos|pow|
radd|rand|rdiv|rdivmod|repr|rfloordiv|rlshift|rmod|rmul|ror|
rpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|
setslice|str|sub|truediv|unicode|xor
)__)\b</string>
<key>name</key>
<string>support.function.magic.python</string>
</dict>
<key>magic_variable_names</key>
<dict>
<key>comment</key>
<string>magic variables which a class/module may have.</string>
<key>match</key>
<string>\b__(all|bases|class|debug|dict|doc|file|members|metaclass|methods|name|slots|weakref)__\b</string>
<key>name</key>
<string>support.variable.magic.python</string>
</dict>
<key>regular_expressions</key>
<dict>
<key>comment</key>
<string>Changed disabled to 1 to turn off syntax highlighting in “r” strings.</string>
<key>disabled</key>
<integer>0</integer>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.regexp.python</string>
</dict>
</array>
</dict>
<key>string_quoted_double</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>([uUf]r)(""")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted unicode-raw string</string>
<key>end</key>
<string>((?&lt;=""")(")""|""")</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.block.unicode-raw-regex.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#regular_expressions</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([uU]R)(""")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted unicode-raw string without regular expression highlighting</string>
<key>end</key>
<string>((?&lt;=""")(")""|""")</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.block.unicode-raw.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(r|rf|fr)(""")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>double quoted raw string</string>
<key>end</key>
<string>((?&lt;=""")(")""|""")</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.block.raw-regex.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#regular_expressions</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(R)(""")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>double quoted raw string</string>
<key>end</key>
<string>((?&lt;=""")(")""|""")</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.block.raw.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([uU])(""")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>double quoted unicode string</string>
<key>end</key>
<string>((?&lt;=""")(")""|""")</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.block.unicode.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([uU]r)(")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>double-quoted raw string</string>
<key>end</key>
<string>((?&lt;=")(")|")|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.single-line.unicode-raw-regex.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#regular_expressions</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([uU]R)(")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>double-quoted raw string</string>
<key>end</key>
<string>((?&lt;=")(")|")|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.single-line.unicode-raw.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(r|rf|fr)(")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>double-quoted raw string</string>
<key>end</key>
<string>((?&lt;=")(")|")|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.single-line.raw-regex.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#regular_expressions</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(R)(")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>double-quoted raw string</string>
<key>end</key>
<string>((?&lt;=")(")|")|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.single-line.raw.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([uU])(")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>double quoted unicode string</string>
<key>end</key>
<string>((?&lt;=")(")|")|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.single-line.unicode.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(""")(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>double quoted string</string>
<key>end</key>
<string>((?&lt;=""")(")""|""")</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.block.sql.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>source.sql</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(")(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>double quoted string</string>
<key>end</key>
<string>((?&lt;=")(")|")|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.single-line.sql.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>source.sql</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(""")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>double quoted string</string>
<key>end</key>
<string>((?&lt;=""")(")""|""")</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.block.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>double quoted string</string>
<key>end</key>
<string>((?&lt;=")(")|")|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.double.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.single-line.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>string_quoted_single</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>meta.empty-string.single.python</string>
</dict>
</dict>
<key>match</key>
<string>(?&lt;!')(')(('))(?!')</string>
<key>name</key>
<string>string.quoted.single.single-line.python</string>
</dict>
<dict>
<key>begin</key>
<string>([uU]r)(''')</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted unicode-raw string</string>
<key>end</key>
<string>((?&lt;=''')(')''|''')</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.single.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.block.unicode-raw-regex.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#regular_expressions</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([uU]R)(''')</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted unicode-raw string</string>
<key>end</key>
<string>((?&lt;=''')(')''|''')</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.single.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.block.unicode-raw.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(r|rf|fr)(''')</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted raw string</string>
<key>end</key>
<string>((?&lt;=''')(')''|''')</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.single.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.block.raw-regex.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#regular_expressions</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(R)(''')</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted raw string</string>
<key>end</key>
<string>((?&lt;=''')(')''|''')</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.single.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.block.raw.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([uU])(''')</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted unicode string</string>
<key>end</key>
<string>((?&lt;=''')(')''|''')</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.single.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.block.unicode.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([uU]r)(')</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted raw string</string>
<key>end</key>
<string>(')|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.single-line.unicode-raw-regex.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#regular_expressions</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([uU]R)(')</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted raw string</string>
<key>end</key>
<string>(')|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.single-line.unicode-raw.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(r|rf|fr)(')</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted raw string</string>
<key>end</key>
<string>(')|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.single-line.raw-regex.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#regular_expressions</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(R)(')</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted raw string</string>
<key>end</key>
<string>(')|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.single-line.raw.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([uU])(')</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.string.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted unicode string</string>
<key>end</key>
<string>(')|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.single-line.unicode.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(''')(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted string</string>
<key>end</key>
<string>((?&lt;=''')(')''|''')</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.single.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.block.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>source.sql</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(')(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted string</string>
<key>end</key>
<string>(')|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.single-line.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>source.sql</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(''')</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted string</string>
<key>end</key>
<string>((?&lt;=''')(')''|''')</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.empty-string.single.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.block.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(')</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.python</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted string</string>
<key>end</key>
<string>(')|(\n)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.python</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>invalid.illegal.unclosed-string.python</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.single-line.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#constant_placeholder</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>strings</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string_quoted_double</string>
</dict>
<dict>
<key>include</key>
<string>#string_quoted_single</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.python</string>
<key>uuid</key>
<string>F23DB5B2-7D08-11D9-A709-000D93B6E43C</string>
</dict>
</plist>