mirror of
https://github.com/kristoferssolo/solorice.git
synced 2025-10-21 20:10:34 +00:00
8604 lines
244 KiB
Plaintext
8604 lines
244 KiB
Plaintext
<!-- AUTOGENERATED FROM grammars/src/MagicPython.syntax.yaml -->
|
|
<?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>name</key>
|
|
<string>MagicPython</string>
|
|
<key>scopeName</key>
|
|
<string>source.python</string>
|
|
<key>fileTypes</key>
|
|
<array>
|
|
<string>py</string>
|
|
<string>py3</string>
|
|
<string>rpy</string>
|
|
<string>pyw</string>
|
|
<string>cpy</string>
|
|
<string>pyi</string>
|
|
<string>SConstruct</string>
|
|
<string>Sconstruct</string>
|
|
<string>sconstruct</string>
|
|
<string>SConscript</string>
|
|
<string>gyp</string>
|
|
<string>gypi</string>
|
|
<string>wsgi</string>
|
|
<string>kv</string>
|
|
<string>Snakefile</string>
|
|
<string>tac</string>
|
|
</array>
|
|
<key>first_line_match</key>
|
|
<string>^#![ \t]*/.*\bpython[\d\.]*\b</string>
|
|
<key>firstLineMatch</key>
|
|
<string>^#![ \t]*/.*\bpython[\d\.]*\b</string>
|
|
<key>uuid</key>
|
|
<string>742deb57-6e38-4192-bed6-410746efd85d</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#statement</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression</string>
|
|
</dict>
|
|
</array>
|
|
<key>repository</key>
|
|
<dict>
|
|
<key>impossible</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.</string>
|
|
<key>match</key>
|
|
<string>$.^</string>
|
|
</dict>
|
|
<key>statement</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#import</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#class-declaration</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#function-declaration</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#statement-keyword</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#assignment-operator</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#decorator</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#docstring-statement</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#semicolon</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>semicolon</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.deprecated.semicolon.python</string>
|
|
<key>match</key>
|
|
<string>\;$</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>comments</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.line.number-sign.python</string>
|
|
<key>contentName</key>
|
|
<string>meta.typehint.comment.python</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(?:
|
|
\# \s* (type:)
|
|
\s*+ (?# we want `\s*+` which is possessive quantifier since
|
|
we do not actually want to backtrack when matching
|
|
whitespace here)
|
|
(?! $ | \#)
|
|
)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(?:$|(?=\#))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.typehint.comment.python</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.typehint.directive.notation.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.typehint.ignore.notation.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\G ignore
|
|
(?= \s* (?: $ | \#))
|
|
</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.typehint.type.notation.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(?<!\.)\b(
|
|
bool | bytes | float | int | object | str
|
|
| List | Dict | Iterable | Sequence | Set
|
|
| FrozenSet | Callable | Union | Tuple
|
|
| Any | None
|
|
)\b
|
|
</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.typehint.punctuation.notation.python</string>
|
|
<key>match</key>
|
|
<string>([\[\]\(\),\.\=\*]|(->))</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.typehint.variable.notation.python</string>
|
|
<key>match</key>
|
|
<string>([[:alpha:]_]\w*)</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-base</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>docstring-statement</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>^(?=\s*[rR]?(\'\'\'|\"\"\"|\'|\"))</string>
|
|
<key>comment</key>
|
|
<string>the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring</string>
|
|
<key>end</key>
|
|
<string>((?<=\1)|^)(?!\s*[rR]?(\'\'\'|\"\"\"|\'|\"))</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#docstring</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>docstring</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.docstring.multi.python</string>
|
|
<key>begin</key>
|
|
<string>(\'\'\'|\"\"\")</string>
|
|
<key>end</key>
|
|
<string>(\1)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#docstring-prompt</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#codetags</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#docstring-guts-unicode</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.docstring.raw.multi.python</string>
|
|
<key>begin</key>
|
|
<string>([rR])(\'\'\'|\"\"\")</string>
|
|
<key>end</key>
|
|
<string>(\2)</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>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-consume-escape</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#docstring-prompt</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#codetags</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.docstring.single.python</string>
|
|
<key>begin</key>
|
|
<string>(\'|\")</string>
|
|
<key>end</key>
|
|
<string>(\1)|(\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#codetags</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#docstring-guts-unicode</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.docstring.raw.single.python</string>
|
|
<key>begin</key>
|
|
<string>([rR])(\'|\")</string>
|
|
<key>end</key>
|
|
<string>(\2)|(\n)</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>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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-consume-escape</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#codetags</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>docstring-guts-unicode</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escape-sequence-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escape-sequence</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-line-continuation</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>docstring-prompt</key>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(?:
|
|
(?:^|\G) \s* (?# '\G' is necessary for ST)
|
|
((?:>>>|\.\.\.) \s) (?=\s*\S)
|
|
)
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.flow.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>statement-keyword</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.function.python</string>
|
|
<key>match</key>
|
|
<string>\b((async\s+)?\s*def)\b</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.flow.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b(?<!\.)(
|
|
as | async | continue | del | assert | break | finally | for
|
|
| from | elif | else | if | except | pass | raise
|
|
| return | try | while | with
|
|
)\b
|
|
</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.modifier.declaration.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b(?<!\.)(
|
|
global | nonlocal
|
|
)\b
|
|
</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.class.python</string>
|
|
<key>match</key>
|
|
<string>\b(?<!\.)(class)\b</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>expression-bare</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>valid Python expressions w/o comments and line continuation</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#backticks</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-anno</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#literal</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#lambda</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-operator</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#operator</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#curly-braces</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#item-access</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#list</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#round-braces</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#function-call</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>#builtin-exceptions</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#magic-names</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#special-names</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-names</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#special-variables</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#ellipsis</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#punctuation</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#line-continuation</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>expression-base</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>valid Python expressions with comments and line continuation</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression-bare</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#line-continuation</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>expression</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>All valid Python expressions</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression-base</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#member-access</string>
|
|
</dict>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>Tokenize identifiers to help linters</string>
|
|
<key>match</key>
|
|
<string>(?x) \b ([[:alpha:]_]\w*) \b</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>member-access</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\.)\s*(?!\.)</string>
|
|
<key>end</key>
|
|
<string>(?x)
|
|
# stop when you've just read non-whitespace followed by non-word
|
|
# i.e. when finished reading an identifier or function call
|
|
(?<=\S)(?=\W) |
|
|
# stop when seeing the start of something that's not a word,
|
|
# i.e. when seeing a non-identifier
|
|
(^|(?<=\s))(?=[^\\\w\s]) |
|
|
$
|
|
</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.period.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#function-call</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#member-access-base</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>member-access-base</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#magic-names</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-names</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-object-name</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#special-names</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#line-continuation</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#item-access</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>special-names</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.other.caps.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b
|
|
# we want to see "enough", meaning 2 or more upper-case
|
|
# letters in the beginning of the constant
|
|
#
|
|
# for more details refer to:
|
|
# https://github.com/MagicStack/MagicPython/issues/42
|
|
(
|
|
_* [[:upper:]] [_\d]* [[:upper:]]
|
|
)
|
|
[[:upper:]\d]* (_\w*)?
|
|
\b
|
|
</string>
|
|
</dict>
|
|
<key>curly-braces</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\{</string>
|
|
<key>end</key>
|
|
<string>\}</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.dict.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.dict.end.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.dict.python</string>
|
|
<key>match</key>
|
|
<string>:</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>list</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\[</string>
|
|
<key>end</key>
|
|
<string>\]</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.list.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.list.end.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>round-braces</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(</string>
|
|
<key>end</key>
|
|
<string>\)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.end.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>line-continuation</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(\\)\s*(\S.*$\n?)</string>
|
|
<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.line.continuation.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\\)\s*$\n?</string>
|
|
<key>end</key>
|
|
<string>(?x)
|
|
(?=^\s*$)
|
|
|
|
|
(?! (\s* [rR]? (\'\'\'|\"\"\"|\'|\"))
|
|
|
|
|
(\G $) (?# '\G' is necessary for ST)
|
|
)
|
|
</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.continuation.line.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>assignment-operator</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.assignment.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
<<= | >>= | //= | \*\*=
|
|
| \+= | -= | /= | @=
|
|
| \*= | %= | ~= | \^= | &= | \|=
|
|
| =(?!=)
|
|
</string>
|
|
</dict>
|
|
<key>operator</key>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b(?<!\.)
|
|
(?:
|
|
(and | or | not | in | is) (?# 1)
|
|
|
|
|
(for | if | else | await | (?:yield(?:\s+from)?)) (?# 2)
|
|
)
|
|
(?!\s*:)\b
|
|
|
|
| (<< | >> | & | \| | \^ | ~) (?# 3)
|
|
|
|
| (\*\* | \* | \+ | - | % | // | / | @) (?# 4)
|
|
|
|
| (!= | == | >= | <= | < | >) (?# 5)
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.logical.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.flow.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.bitwise.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.arithmetic.python</string>
|
|
</dict>
|
|
<key>5</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.comparison.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>punctuation</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.colon.python</string>
|
|
<key>match</key>
|
|
<string>:</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.element.python</string>
|
|
<key>match</key>
|
|
<string>,</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>literal</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.language.python</string>
|
|
<key>match</key>
|
|
<string>\b(True|False|None|NotImplemented|Ellipsis)\b</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#number</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>number</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.numeric.python</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#number-float</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#number-dec</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#number-hex</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#number-oct</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#number-bin</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#number-long</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.name.python</string>
|
|
<key>match</key>
|
|
<string>\b[0-9]+\w+</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>number-float</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.numeric.float.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(?<! \w)(?:
|
|
(?:
|
|
\.[0-9](?: _?[0-9] )*
|
|
|
|
|
[0-9](?: _?[0-9] )* \. [0-9](?: _?[0-9] )*
|
|
|
|
|
[0-9](?: _?[0-9] )* \.
|
|
) (?: [eE][+-]?[0-9](?: _?[0-9] )* )?
|
|
|
|
|
[0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* )
|
|
)([jJ])?\b
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.imaginary.number.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>number-dec</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.numeric.dec.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(?<![\w\.])(?:
|
|
[1-9](?: _?[0-9] )*
|
|
|
|
|
0+
|
|
|
|
|
[0-9](?: _?[0-9] )* ([jJ])
|
|
|
|
|
0 ([0-9]+)(?![eE\.])
|
|
)\b
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.imaginary.number.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.dec.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.dec.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>number-hex</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.numeric.hex.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(?<![\w\.])
|
|
(0[xX]) (_?[0-9a-fA-F])+
|
|
\b
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.number.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>number-oct</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.numeric.oct.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(?<![\w\.])
|
|
(0[oO]) (_?[0-7])+
|
|
\b
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.number.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>number-bin</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.numeric.bin.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(?<![\w\.])
|
|
(0[bB]) (_?[01])+
|
|
\b
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.number.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>number-long</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.numeric.bin.python</string>
|
|
<key>comment</key>
|
|
<string>this is to support python2 syntax for long ints</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(?<![\w\.])
|
|
([1-9][0-9]* | 0) ([lL])
|
|
\b
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.number.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>regexp</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-single-three-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-double-three-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-single-one-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-double-one-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fregexp-single-three-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fregexp-double-three-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fregexp-single-one-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fregexp-double-one-line</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-quoted-multi-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-quoted-single-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-bin-quoted-multi-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-bin-quoted-single-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-raw-quoted-multi-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-raw-quoted-single-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-raw-bin-quoted-multi-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-raw-bin-quoted-single-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-fnorm-quoted-multi-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-fnorm-quoted-single-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-normf-quoted-multi-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-normf-quoted-single-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-raw-quoted-multi-line</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-raw-quoted-single-line</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-unicode-guts</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escape-sequence-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-entity</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-brace-formatting</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-consume-escape</key>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\\['"\n\\]</string>
|
|
</dict>
|
|
<key>string-raw-guts</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-consume-escape</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-formatting</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-brace-formatting</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-raw-bin-guts</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-consume-escape</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-formatting</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-entity</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escape-sequence</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-line-continuation</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-formatting</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-guts</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escape-sequence-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escape-sequence</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-line-continuation</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-formatting</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-raw-guts</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-consume-escape</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-formatting</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-illegal-single-brace</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>it is illegal to have a multiline brace inside a single-line string</string>
|
|
<key>begin</key>
|
|
<string>(\{)(?=[^\n}]*$\n?)</string>
|
|
<key>end</key>
|
|
<string>(\})|(?=\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.format.placeholder.other.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.format.placeholder.other.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-terminator-single</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#f-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-illegal-multi-brace</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#impossible</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>f-expression</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>All valid Python expressions, except comments and line cont</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression-bare</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#member-access</string>
|
|
</dict>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>Tokenize identifiers to help linters</string>
|
|
<key>match</key>
|
|
<string>(?x) \b ([[:alpha:]_]\w*) \b</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>escape-sequence-unicode</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.escape.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\\ (
|
|
u[0-9A-Fa-f]{4}
|
|
| U[0-9A-Fa-f]{8}
|
|
| N\{[\w\s]+?\}
|
|
)
|
|
</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>escape-sequence</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.escape.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\\ (
|
|
x[0-9A-Fa-f]{2}
|
|
| [0-7]{1,3}
|
|
| [\\"'abfnrtv]
|
|
)
|
|
</string>
|
|
</dict>
|
|
<key>string-line-continuation</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.language.python</string>
|
|
<key>match</key>
|
|
<string>\\$</string>
|
|
</dict>
|
|
<key>string-formatting</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.format.percent.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(
|
|
% (\([\w\s]*\))?
|
|
[-+#0 ]*
|
|
(\d+|\*)? (\.(\d+|\*))?
|
|
([hlL])?
|
|
[diouxXeEfFgGcrsab%]
|
|
)
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.format.placeholder.other.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>string-brace-formatting</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.format.brace.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(
|
|
{{ | }}
|
|
| (?:
|
|
{
|
|
\w* (\.[[:alpha:]_]\w* | \[[^\]'"]+\])*
|
|
(![rsa])?
|
|
( : \w? [<>=^]? [-+ ]? \#?
|
|
\d* ,? (\.\d+)? [bcdeEfFgGnosxX%]? )?
|
|
})
|
|
)
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.format.placeholder.other.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.format.brace.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(
|
|
{
|
|
\w* (\.[[:alpha:]_]\w* | \[[^\]'"]+\])*
|
|
(![rsa])?
|
|
(:)
|
|
[^'"{}\n]* (?:
|
|
\{ [^'"}\n]*? \} [^'"{}\n]*
|
|
)*
|
|
}
|
|
)
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.format.placeholder.other.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-formatting</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-formatting-braces</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-formatting-singe-brace</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-formatting-singe-brace</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.brace.python</string>
|
|
<key>match</key>
|
|
<string>(}(?!}))</string>
|
|
</dict>
|
|
<key>import</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>Import statements
|
|
</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\s* \b(from) \s*(\.+)\s* (import\b)?
|
|
</string>
|
|
<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>punctuation.separator.period.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.import.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.import.python</string>
|
|
<key>match</key>
|
|
<string>\b(?<!\.)import\b</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>class-declaration</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.class.python</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
\s*(class)\s+
|
|
(?=
|
|
[[:alpha:]_]\w* \s* (:|\()
|
|
)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(:)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.class.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.section.class.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#class-name</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#class-inheritance</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>class-name</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-object-name</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#builtin-possible-callables</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.type.class.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b ([[:alpha:]_]\w*) \b
|
|
</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>class-inheritance</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.class.inheritance.python</string>
|
|
<key>begin</key>
|
|
<string>(\()</string>
|
|
<key>end</key>
|
|
<string>(\))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.inheritance.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.inheritance.end.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.unpacking.arguments.python</string>
|
|
<key>match</key>
|
|
<string>(\*\*|\*)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.inheritance.python</string>
|
|
<key>match</key>
|
|
<string>,</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.assignment.python</string>
|
|
<key>match</key>
|
|
<string>=(?!=)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.type.metaclass.python</string>
|
|
<key>match</key>
|
|
<string>\bmetaclass\b</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-names</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#class-kwarg</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#call-wrapper-inheritance</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression-base</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#member-access-class</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#inheritance-identifier</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>class-kwarg</key>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b ([[:alpha:]_]\w*) \s*(=)(?!=)
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.other.inherited-class.python variable.parameter.class.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.assignment.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>inheritance-identifier</key>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b ([[:alpha:]_]\w*) \b
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.other.inherited-class.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>member-access-class</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\.)\s*(?!\.)</string>
|
|
<key>end</key>
|
|
<string>(?<=\S)(?=\W)|$</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.period.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#call-wrapper-inheritance</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#member-access-base</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#inheritance-identifier</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>lambda</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>((?<=\.)lambda|lambda(?=\s*[\.=]))</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.flow.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\b(lambda)\s*?(?=[,\n]|$)</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.function.lambda.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.lambda-function.python</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
\b (lambda) \b
|
|
</string>
|
|
<key>end</key>
|
|
<string>(:)|(\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.function.lambda.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.section.function.lambda.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>meta.function.lambda.parameters.python</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.unpacking.parameter.python</string>
|
|
<key>match</key>
|
|
<string>(\*\*|\*)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#lambda-nested-incomplete</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-names</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>([[:alpha:]_]\w*)\s*(?:(,)|(?=:|$))</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.parameter.function.language.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.parameters.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#backticks</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-anno</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#lambda-parameter-with-default</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#line-continuation</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-operator</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>lambda-incomplete</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.function.lambda.python</string>
|
|
<key>match</key>
|
|
<string>\blambda(?=\s*[,)])</string>
|
|
</dict>
|
|
<key>lambda-nested-incomplete</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.function.lambda.python</string>
|
|
<key>match</key>
|
|
<string>\blambda(?=\s*[:,)])</string>
|
|
</dict>
|
|
<key>lambda-parameter-with-default</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
\b
|
|
([[:alpha:]_]\w*) \s* (=)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(,)|(?=:|$)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.parameter.function.language.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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>#expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>function-declaration</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.function.python</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
\s*
|
|
(?:\b(async) \s+)? \b(def)\s+
|
|
(?=
|
|
[[:alpha:]_][[:word:]]* \s* \(
|
|
)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(:|(?=[#'"\n]))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.function.async.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.function.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.section.function.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#function-def-name</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#parameters</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#line-continuation</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#return-annotation</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>function-def-name</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-object-name</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#builtin-possible-callables</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.function.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b ([[:alpha:]_]\w*) \b
|
|
</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>parameters</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.function.parameters.python</string>
|
|
<key>begin</key>
|
|
<string>(\()</string>
|
|
<key>end</key>
|
|
<string>(\))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.parameters.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.parameters.end.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.unpacking.parameter.python</string>
|
|
<key>match</key>
|
|
<string>(\*\*|\*)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#lambda-incomplete</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-names</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-object-name</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#parameter-special</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
([[:alpha:]_]\w*)
|
|
\s* (?: (,) | (?=[)#\n=]))
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.parameter.function.language.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.parameters.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#loose-default</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#annotated-parameter</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>parameter-special</key>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b ((self)|(cls)) \b \s*(?:(,)|(?=\)))
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.parameter.function.language.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.parameter.function.language.special.self.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.parameter.function.language.special.cls.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.parameters.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>loose-default</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(=)</string>
|
|
<key>end</key>
|
|
<string>(,)|(?=\))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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>#expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>annotated-parameter</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
\b
|
|
([[:alpha:]_]\w*) \s* (:)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(,)|(?=\))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.parameter.function.language.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.annotation.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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>#expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.assignment.python</string>
|
|
<key>match</key>
|
|
<string>=(?!=)</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>return-annotation</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(->)</string>
|
|
<key>end</key>
|
|
<string>(?=:)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.annotation.result.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>item-access</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.item-access.python</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
\b(?=
|
|
[[:alpha:]_]\w* \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>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#item-name</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#item-index</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>item-name</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#special-variables</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#builtin-functions</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#special-names</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b ([[:alpha:]_]\w*) \b
|
|
</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>item-index</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\[)</string>
|
|
<key>end</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>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.slice.python</string>
|
|
<key>match</key>
|
|
<string>:</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>decorator</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.function.decorator.python</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
^\s*
|
|
((@)) \s* (?=[[:alpha:]_]\w*)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(?x)
|
|
( \) )
|
|
# trailing whitespace and comments are legal
|
|
(?: (.*?) (?=\s*(?:\#|$)) )
|
|
| (?=\n|\#)
|
|
</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.function.decorator.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.decorator.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.arguments.end.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.decorator.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#decorator-name</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#function-arguments</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>decorator-name</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#builtin-callables</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-object-name</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.function.decorator.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
([[:alpha:]_]\w*) | (\.)
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.period.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#line-continuation</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.decorator.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\s* ([^([:alpha:]\s_\.#\\] .*?) (?=\#|$)
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.decorator.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>call-wrapper-inheritance</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>same as a function call, but in inheritance context</string>
|
|
<key>name</key>
|
|
<string>meta.function-call.python</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
\b(?=
|
|
([[:alpha:]_]\w*) \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>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#inheritance-name</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#function-arguments</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>inheritance-name</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#lambda-incomplete</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#builtin-possible-callables</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#inheritance-identifier</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>function-call</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.function-call.python</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
\b(?=
|
|
([[:alpha:]_]\w*) \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>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#special-variables</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#function-name</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#function-arguments</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>function-name</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#builtin-possible-callables</string>
|
|
</dict>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>Some color schemas support meta.function-call.generic scope</string>
|
|
<key>name</key>
|
|
<string>meta.function-call.generic.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b ([[:alpha:]_]\w*) \b
|
|
</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>function-arguments</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()</string>
|
|
<key>end</key>
|
|
<string>(?=\))(?!\)\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>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.arguments.python</string>
|
|
<key>match</key>
|
|
<string>(,)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(?:(?<=[,(])|^) \s* (\*{1,2})
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.unpacking.arguments.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#lambda-incomplete</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-names</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\b([[:alpha:]_]\w*)\s*(=)(?!=)</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.parameter.function-call.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.assignment.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.assignment.python</string>
|
|
<key>match</key>
|
|
<string>=(?!=)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\s*(\))\s*(\()</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.arguments.end.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.arguments.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>builtin-callables</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-names</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#illegal-object-name</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>
|
|
</array>
|
|
</dict>
|
|
<key>builtin-possible-callables</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#builtin-callables</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#magic-names</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>builtin-exceptions</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.type.exception.python</string>
|
|
<key>match</key>
|
|
<string>(?x) (?<!\.) \b(
|
|
(
|
|
Arithmetic | Assertion | Attribute | Buffer | BlockingIO
|
|
| BrokenPipe | ChildProcess
|
|
| (Connection (Aborted | Refused | Reset)?)
|
|
| EOF | Environment | FileExists | FileNotFound
|
|
| FloatingPoint | IO | Import | Indentation | Index | Interrupted
|
|
| IsADirectory | NotADirectory | Permission | ProcessLookup
|
|
| Timeout
|
|
| Key | Lookup | Memory | Name | NotImplemented | OS | Overflow
|
|
| Reference | Runtime | Recursion | Syntax | System
|
|
| Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)?
|
|
| Value | Windows | ZeroDivision | ModuleNotFound
|
|
) Error
|
|
|
|
|
((Pending)?Deprecation | Runtime | Syntax | User | Future | Import
|
|
| Unicode | Bytes | Resource
|
|
)? Warning
|
|
|
|
|
SystemExit | Stop(Async)?Iteration
|
|
| KeyboardInterrupt
|
|
| GeneratorExit | (Base)?Exception
|
|
)\b
|
|
</string>
|
|
</dict>
|
|
<key>builtin-functions</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.function.builtin.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(?<!\.) \b(
|
|
__import__ | abs | all | any | ascii | bin | breakpoint | callable
|
|
| chr | compile | copyright | credits | delattr | dir | divmod
|
|
| enumerate | eval | exec | exit | filter | format | getattr
|
|
| globals | hasattr | hash | help | hex | id | input
|
|
| isinstance | issubclass | iter | len | license | locals | map
|
|
| max | memoryview | min | next | oct | open | ord | pow | print
|
|
| quit | range | reload | repr | reversed | round
|
|
| setattr | sorted | sum | vars | zip
|
|
)\b
|
|
</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.legacy.builtin.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(?<!\.) \b(
|
|
file | reduce | intern | raw_input | unicode | cmp | basestring
|
|
| execfile | long | xrange
|
|
)\b
|
|
</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>builtin-types</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.type.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(?<!\.) \b(
|
|
bool | bytearray | bytes | classmethod | complex | dict
|
|
| float | frozenset | int | list | object | property
|
|
| set | slice | staticmethod | str | tuple | type
|
|
|
|
(?# Although 'super' is not a type, it's related to types,
|
|
and is special enough to be highlighted differently from
|
|
other built-ins)
|
|
| super
|
|
)\b
|
|
</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 | aenter | aexit | aiter | and | anext | await
|
|
| bool | call | ceil | cmp | coerce | complex | contains
|
|
| copy | deepcopy | del | delattr | delete | delitem
|
|
| delslice | dir | div | divmod | enter | eq | exit | float
|
|
| floor | floordiv | format | ge | get | getattr
|
|
| getattribute | getinitargs | getitem | getnewargs
|
|
| getslice | getstate | gt | hash | hex | iadd | iand | idiv
|
|
| ifloordiv | ilshift | imod | imul | index | init
|
|
| instancecheck | int | invert | ior | ipow | irshift | isub
|
|
| iter | itruediv | ixor | le | len | long | lshift | lt
|
|
| missing | mod | mul | ne | neg | new | next | nonzero | oct | or
|
|
| pos | pow | radd | rand | rdiv | rdivmod | reduce
|
|
| reduce_ex | repr | reversed | rfloordiv | rlshift | rmod
|
|
| rmul | ror | round | rpow | rrshift | rshift | rsub
|
|
| rtruediv | rxor | set | setattr | setitem | setslice
|
|
| setstate | sizeof | str | sub | subclasscheck | truediv
|
|
| trunc | unicode | xor | matmul | rmatmul | imatmul
|
|
| init_subclass | set_name | fspath | bytes | prepare
|
|
)__
|
|
)\b
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.function.magic.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>magic-variable-names</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>magic variables which a class/module may have.</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b(
|
|
__(?:
|
|
all | bases | builtins | class | class_getitem | code | debug
|
|
| defaults | dict | doc | file | func | kwdefaults | members
|
|
| metaclass | methods | module | mro | mro_entries | name
|
|
| qualname | post_init | self | signature | slots | subclasses
|
|
| version | weakref | wrapped | annotations | classcell
|
|
| spec | path | package | future | traceback
|
|
)__
|
|
)\b
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.variable.magic.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>magic-names</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>
|
|
</array>
|
|
</dict>
|
|
<key>illegal-names</key>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b(?:
|
|
(
|
|
and | as | assert | async | await | break | class | continue | def
|
|
| del | elif | else | except | finally | for | from | global
|
|
| if | in | is | (?<=\.)lambda | lambda(?=\s*[\.=])
|
|
| nonlocal | not | or | pass | raise | return | try | while | with
|
|
| yield
|
|
) | (
|
|
import
|
|
)
|
|
)\b
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.flow.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.import.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>special-variables</key>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\b (?<!\.) (?:
|
|
(self) | (cls)
|
|
)\b
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.language.special.self.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.language.special.cls.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>ellipsis</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.other.ellipsis.python</string>
|
|
<key>match</key>
|
|
<string>\.\.\.</string>
|
|
</dict>
|
|
<key>backticks</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.deprecated.backtick.python</string>
|
|
<key>begin</key>
|
|
<string>\`</string>
|
|
<key>end</key>
|
|
<string>(?:\`|(?<!\\)(\n))</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>illegal-operator</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.operator.python</string>
|
|
<key>match</key>
|
|
<string>&&|\|\||--|\+\+</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.operator.python</string>
|
|
<key>match</key>
|
|
<string>[?$]</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.operator.python</string>
|
|
<key>comment</key>
|
|
<string>We don't want `!` to flash when we're typing `!=`</string>
|
|
<key>match</key>
|
|
<string>!\b</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>illegal-object-name</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>It's illegal to name class or function "True"</string>
|
|
<key>name</key>
|
|
<string>keyword.illegal.name.python</string>
|
|
<key>match</key>
|
|
<string>\b(True|False|None)\b</string>
|
|
</dict>
|
|
<key>illegal-anno</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.annotation.python</string>
|
|
<key>match</key>
|
|
<string>-></string>
|
|
</dict>
|
|
<key>regexp-base-expression</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-quantifier</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-base-common</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fregexp-base-expression</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fregexp-quantifier</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-formatting-braces</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\{.*?\}</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-base-common</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-formatting-braces</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>empty braces are illegal</string>
|
|
<key>match</key>
|
|
<string>({)(\s*?)(})</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.format.placeholder.other.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.brace.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.format.placeholder.other.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.escape.python</string>
|
|
<key>match</key>
|
|
<string>({{|}})</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>regexp-base-common</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.match.any.regexp</string>
|
|
<key>match</key>
|
|
<string>\.</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.match.begin.regexp</string>
|
|
<key>match</key>
|
|
<string>\^</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.match.end.regexp</string>
|
|
<key>match</key>
|
|
<string>\$</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.quantifier.regexp</string>
|
|
<key>match</key>
|
|
<string>[+*?]\??</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.disjunction.regexp</string>
|
|
<key>match</key>
|
|
<string>\|</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-escape-sequence</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>regexp-quantifier</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.quantifier.regexp</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\{(
|
|
\d+ | \d+,(\d+)? | ,\d+
|
|
)\}
|
|
</string>
|
|
</dict>
|
|
<key>fregexp-quantifier</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.quantifier.regexp</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\{\{(
|
|
\d+ | \d+,(\d+)? | ,\d+
|
|
)\}\}
|
|
</string>
|
|
</dict>
|
|
<key>regexp-backreference-number</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.backreference.regexp</string>
|
|
<key>match</key>
|
|
<string>(\\[1-9]\d?)</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.tag.backreference.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>regexp-backreference</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.backreference.named.regexp</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(\() (\?P= \w+(?:\s+[[:alnum:]]+)?) (\))
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.tag.named.backreference.regexp</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>regexp-flags</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.modifier.flag.regexp</string>
|
|
<key>match</key>
|
|
<string>\(\?[aiLmsux]+\)</string>
|
|
</dict>
|
|
<key>regexp-escape-special</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.escape.special.regexp</string>
|
|
<key>match</key>
|
|
<string>\\([AbBdDsSwWZ])</string>
|
|
</dict>
|
|
<key>regexp-escape-character</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.escape.regexp</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\\ (
|
|
x[0-9A-Fa-f]{2}
|
|
| 0[0-7]{1,2}
|
|
| [0-7]{3}
|
|
)
|
|
</string>
|
|
</dict>
|
|
<key>regexp-escape-unicode</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.unicode.regexp</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\\ (
|
|
u[0-9A-Fa-f]{4}
|
|
| U[0-9A-Fa-f]{8}
|
|
)
|
|
</string>
|
|
</dict>
|
|
<key>regexp-escape-catchall</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.escape.regexp</string>
|
|
<key>match</key>
|
|
<string>\\(.|\n)</string>
|
|
</dict>
|
|
<key>regexp-escape-sequence</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-escape-special</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-escape-character</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-escape-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-backreference-number</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-escape-catchall</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>regexp-charecter-set-escapes</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.escape.regexp</string>
|
|
<key>match</key>
|
|
<string>\\[abfnrtv\\]</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-escape-special</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.escape.regexp</string>
|
|
<key>match</key>
|
|
<string>\\([0-7]{1,3})</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-escape-character</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-escape-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-escape-catchall</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>codetags</key>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?:\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\b)</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.codetag.notation.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<key>comments-base</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.line.number-sign.python</string>
|
|
<key>begin</key>
|
|
<string>(\#)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.comment.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>($)</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#codetags</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>comments-string-single-three</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.line.number-sign.python</string>
|
|
<key>begin</key>
|
|
<string>(\#)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.comment.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>($|(?='''))</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#codetags</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>comments-string-double-three</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.line.number-sign.python</string>
|
|
<key>begin</key>
|
|
<string>(\#)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.comment.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>($|(?="""))</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#codetags</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-regexp-expression</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-base-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-character-set</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-comments</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-flags</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-named-group</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-backreference</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-lookahead</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-lookahead-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-lookbehind</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-lookbehind-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-conditional</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-parentheses-non-capturing</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-parentheses</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-regexp-character-set</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\[ \^? \] (?! .*?\])
|
|
</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.character.set.regexp</string>
|
|
<key>begin</key>
|
|
<string>(\[)(\^)?(\])?</string>
|
|
<key>end</key>
|
|
<string>(\]|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.character.set.begin.regexp constant.other.set.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.negation.regexp</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.set.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.character.set.end.regexp constant.other.set.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-charecter-set-escapes</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.set.regexp</string>
|
|
<key>match</key>
|
|
<string>[^\n]</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-regexp-named-group</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.named.regexp</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(\() (\?P <\w+(?:\s+[[:alnum:]]+)?>)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.tag.named.group.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-regexp-comments</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.regexp</string>
|
|
<key>begin</key>
|
|
<string>\(\?#</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.comment.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.comment.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#codetags</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-regexp-lookahead</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-regexp-lookahead-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-regexp-lookbehind</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-regexp-lookbehind-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-regexp-conditional</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?\((\w+(?:\s+[[:alnum:]]+)?|\d+)\)</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.conditional.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-regexp-parentheses-non-capturing</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(\?:</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-regexp-parentheses</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-regexp-expression</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-base-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-character-set</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-comments</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-flags</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-named-group</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-backreference</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-lookahead</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-lookahead-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-lookbehind</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-lookbehind-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-conditional</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-parentheses-non-capturing</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-parentheses</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-regexp-character-set</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\[ \^? \] (?! .*?\])
|
|
</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.character.set.regexp</string>
|
|
<key>begin</key>
|
|
<string>(\[)(\^)?(\])?</string>
|
|
<key>end</key>
|
|
<string>(\]|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.character.set.begin.regexp constant.other.set.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.negation.regexp</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.set.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.character.set.end.regexp constant.other.set.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-charecter-set-escapes</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.set.regexp</string>
|
|
<key>match</key>
|
|
<string>[^\n]</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-regexp-named-group</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.named.regexp</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(\() (\?P <\w+(?:\s+[[:alnum:]]+)?>)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.tag.named.group.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-regexp-comments</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.regexp</string>
|
|
<key>begin</key>
|
|
<string>\(\?#</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.comment.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.comment.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#codetags</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-regexp-lookahead</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-regexp-lookahead-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-regexp-lookbehind</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-regexp-lookbehind-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-regexp-conditional</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?\((\w+(?:\s+[[:alnum:]]+)?|\d+)\)</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.conditional.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-regexp-parentheses-non-capturing</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(\?:</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-regexp-parentheses</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-regexp-expression</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-base-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-character-set</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-comments</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-flags</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-named-group</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-backreference</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-lookahead</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-lookahead-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-lookbehind</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-lookbehind-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-conditional</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-parentheses-non-capturing</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-parentheses</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-regexp-character-set</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\[ \^? \] (?! .*?\])
|
|
</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.character.set.regexp</string>
|
|
<key>begin</key>
|
|
<string>(\[)(\^)?(\])?</string>
|
|
<key>end</key>
|
|
<string>(\]|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.character.set.begin.regexp constant.other.set.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.negation.regexp</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.set.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.character.set.end.regexp constant.other.set.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-charecter-set-escapes</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.set.regexp</string>
|
|
<key>match</key>
|
|
<string>[^\n]</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-regexp-named-group</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.named.regexp</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(\() (\?P <\w+(?:\s+[[:alnum:]]+)?>)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.tag.named.group.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-regexp-comments</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.regexp</string>
|
|
<key>begin</key>
|
|
<string>\(\?#</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.comment.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.comment.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#codetags</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-regexp-lookahead</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-regexp-lookahead-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-regexp-lookbehind</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-regexp-lookbehind-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-regexp-conditional</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?\((\w+(?:\s+[[:alnum:]]+)?|\d+)\)</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.conditional.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-regexp-parentheses-non-capturing</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(\?:</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-regexp-parentheses</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-regexp-expression</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-base-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-character-set</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-comments</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-flags</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-named-group</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-backreference</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-lookahead</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-lookahead-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-lookbehind</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-lookbehind-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-conditional</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-parentheses-non-capturing</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-parentheses</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-regexp-character-set</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
\[ \^? \] (?! .*?\])
|
|
</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.character.set.regexp</string>
|
|
<key>begin</key>
|
|
<string>(\[)(\^)?(\])?</string>
|
|
<key>end</key>
|
|
<string>(\]|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.character.set.begin.regexp constant.other.set.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.negation.regexp</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.set.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.character.set.end.regexp constant.other.set.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-charecter-set-escapes</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.set.regexp</string>
|
|
<key>match</key>
|
|
<string>[^\n]</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-regexp-named-group</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.named.regexp</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(\() (\?P <\w+(?:\s+[[:alnum:]]+)?>)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.tag.named.group.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-regexp-comments</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>comment.regexp</string>
|
|
<key>begin</key>
|
|
<string>\(\?#</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.comment.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.comment.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#codetags</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-regexp-lookahead</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-regexp-lookahead-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-regexp-lookbehind</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-regexp-lookbehind-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-regexp-conditional</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?\((\w+(?:\s+[[:alnum:]]+)?|\d+)\)</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.conditional.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-regexp-parentheses-non-capturing</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(\?:</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-regexp-parentheses</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>regexp-single-one-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.regexp.quoted.single.python</string>
|
|
<key>begin</key>
|
|
<string>\b(([uU]r)|([bB]r)|(r[bB]?))(\')</string>
|
|
<key>end</key>
|
|
<string>(\')|(?<!\\)(\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.deprecated.prefix.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>5</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>regexp-single-three-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.regexp.quoted.multi.python</string>
|
|
<key>begin</key>
|
|
<string>\b(([uU]r)|([bB]r)|(r[bB]?))(\'\'\')</string>
|
|
<key>end</key>
|
|
<string>(\'\'\')</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.deprecated.prefix.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>5</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>regexp-double-one-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.regexp.quoted.single.python</string>
|
|
<key>begin</key>
|
|
<string>\b(([uU]r)|([bB]r)|(r[bB]?))(")</string>
|
|
<key>end</key>
|
|
<string>(")|(?<!\\)(\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.deprecated.prefix.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>5</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>regexp-double-three-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.regexp.quoted.multi.python</string>
|
|
<key>begin</key>
|
|
<string>\b(([uU]r)|([bB]r)|(r[bB]?))(""")</string>
|
|
<key>end</key>
|
|
<string>(""")</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.deprecated.prefix.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>5</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-fregexp-expression</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fregexp-base-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-character-set</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-comments</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-flags</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-regexp-named-group</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-backreference</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-lookahead</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-lookahead-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-lookbehind</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-lookbehind-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-conditional</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-parentheses-non-capturing</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-parentheses</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-fregexp-named-group</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.named.regexp</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(\() (\?P <\w+(?:\s+[[:alnum:]]+)?>)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.tag.named.group.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-fregexp-lookahead</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-fregexp-lookahead-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-fregexp-lookbehind</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-fregexp-lookbehind-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-fregexp-conditional</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?\((\w+(?:\s+[[:alnum:]]+)?|\d+)\)</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.conditional.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-fregexp-parentheses-non-capturing</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(\?:</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-one-fregexp-parentheses</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-fregexp-expression</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fregexp-base-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-character-set</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-comments</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-flags</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-regexp-named-group</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-backreference</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-lookahead</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-lookahead-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-lookbehind</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-lookbehind-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-conditional</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-parentheses-non-capturing</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-parentheses</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-fregexp-named-group</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.named.regexp</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(\() (\?P <\w+(?:\s+[[:alnum:]]+)?>)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.tag.named.group.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-fregexp-lookahead</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-fregexp-lookahead-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-fregexp-lookbehind</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-fregexp-lookbehind-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-fregexp-conditional</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?\((\w+(?:\s+[[:alnum:]]+)?|\d+)\)</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.conditional.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-fregexp-parentheses-non-capturing</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(\?:</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>single-three-fregexp-parentheses</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(</string>
|
|
<key>end</key>
|
|
<string>(\)|(?=\'\'\'))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-single-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-fregexp-expression</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fregexp-base-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-character-set</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-comments</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-flags</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-regexp-named-group</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-backreference</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-lookahead</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-lookahead-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-lookbehind</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-lookbehind-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-conditional</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-parentheses-non-capturing</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-parentheses</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-fregexp-named-group</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.named.regexp</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(\() (\?P <\w+(?:\s+[[:alnum:]]+)?>)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.tag.named.group.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-fregexp-lookahead</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-fregexp-lookahead-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-fregexp-lookbehind</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-fregexp-lookbehind-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-fregexp-conditional</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?\((\w+(?:\s+[[:alnum:]]+)?|\d+)\)</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.conditional.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-fregexp-parentheses-non-capturing</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(\?:</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-one-fregexp-parentheses</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="))|((?=(?<!\\)\n))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-fregexp-expression</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fregexp-base-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-character-set</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-comments</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-flags</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-regexp-named-group</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regexp-backreference</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-lookahead</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-lookahead-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-lookbehind</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-lookbehind-negative</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-conditional</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-parentheses-non-capturing</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-parentheses</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-fregexp-named-group</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.named.regexp</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(\() (\?P <\w+(?:\s+[[:alnum:]]+)?>)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.tag.named.group.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-fregexp-lookahead</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-fregexp-lookahead-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookahead.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-fregexp-lookbehind</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<=</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-fregexp-lookbehind-negative</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?<!</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.lookbehind.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-fregexp-conditional</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()\?\((\w+(?:\s+[[:alnum:]]+)?|\d+)\)</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.regexp</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.parenthesis.conditional.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-fregexp-parentheses-non-capturing</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(\?:</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>double-three-fregexp-parentheses</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(</string>
|
|
<key>end</key>
|
|
<string>(\)|(?="""))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>support.other.parenthesis.regexp punctuation.parenthesis.end.regexp</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comments-string-double-three</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fregexp-single-one-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.regexp.quoted.single.python</string>
|
|
<key>begin</key>
|
|
<string>\b(([uU]r)|([fF]r)|(r[fF]?))(\')</string>
|
|
<key>end</key>
|
|
<string>(\')|(?<!\\)(\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.deprecated.prefix.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>5</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fregexp-single-three-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.regexp.quoted.multi.python</string>
|
|
<key>begin</key>
|
|
<string>\b(([uU]r)|([fF]r)|(r[fF]?))(\'\'\')</string>
|
|
<key>end</key>
|
|
<string>(\'\'\')</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.deprecated.prefix.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>5</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#single-three-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fregexp-double-one-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.regexp.quoted.single.python</string>
|
|
<key>begin</key>
|
|
<string>\b(([uU]r)|([fF]r)|(r[fF]?))(")</string>
|
|
<key>end</key>
|
|
<string>(")|(?<!\\)(\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.deprecated.prefix.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>5</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-one-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fregexp-double-three-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.regexp.quoted.multi.python</string>
|
|
<key>begin</key>
|
|
<string>\b(([uU]r)|([fF]r)|(r[fF]?))(""")</string>
|
|
<key>end</key>
|
|
<string>(""")</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.deprecated.prefix.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>5</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#double-three-fregexp-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-raw-quoted-single-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.raw.single.python</string>
|
|
<key>begin</key>
|
|
<string>\b(([uU]R)|(R))((['"]))</string>
|
|
<key>end</key>
|
|
<string>(\4)|((?<!\\)\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.deprecated.prefix.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-single-bad-brace1-formatting-raw</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-single-bad-brace2-formatting-raw</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-raw-guts</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-bin-quoted-single-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.binary.single.python</string>
|
|
<key>begin</key>
|
|
<string>(\b[bB])((['"]))</string>
|
|
<key>end</key>
|
|
<string>(\2)|((?<!\\)\n)</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>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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-entity</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-raw-bin-quoted-single-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.raw.binary.single.python</string>
|
|
<key>begin</key>
|
|
<string>(\b(?:R[bB]|[bB]R))((['"]))</string>
|
|
<key>end</key>
|
|
<string>(\2)|((?<!\\)\n)</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>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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-raw-bin-guts</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-quoted-single-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.single.python</string>
|
|
<key>begin</key>
|
|
<string>(?:\b([rR])(?=[uU]))?([uU])?((['"]))</string>
|
|
<key>end</key>
|
|
<string>(\3)|((?<!\\)\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.prefix.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-single-bad-brace1-formatting-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-single-bad-brace2-formatting-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-unicode-guts</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-single-bad-brace1-formatting-unicode</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>template using {% ... %}</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(?= \{%
|
|
( .*? (?!(['"])|((?<!\\)\n)) )
|
|
%\}
|
|
)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(?=(['"])|((?<!\\)\n))</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escape-sequence-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escape-sequence</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-line-continuation</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-single-bad-brace1-formatting-raw</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>template using {% ... %}</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(?= \{%
|
|
( .*? (?!(['"])|((?<!\\)\n)) )
|
|
%\}
|
|
)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(?=(['"])|((?<!\\)\n))</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-consume-escape</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-single-bad-brace2-formatting-unicode</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>odd format or format-like syntax</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(?!\{\{)
|
|
(?= \{ (
|
|
\w*? (?!(['"])|((?<!\\)\n)) [^!:\.\[}\w]
|
|
)
|
|
.*?(?!(['"])|((?<!\\)\n))
|
|
\}
|
|
)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(?=(['"])|((?<!\\)\n))</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escape-sequence-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-entity</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-single-bad-brace2-formatting-raw</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>odd format or format-like syntax</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(?!\{\{)
|
|
(?= \{ (
|
|
\w*? (?!(['"])|((?<!\\)\n)) [^!:\.\[}\w]
|
|
)
|
|
.*?(?!(['"])|((?<!\\)\n))
|
|
\}
|
|
)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(?=(['"])|((?<!\\)\n))</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-consume-escape</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-formatting</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-raw-quoted-multi-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.raw.multi.python</string>
|
|
<key>begin</key>
|
|
<string>\b(([uU]R)|(R))('''|""")</string>
|
|
<key>end</key>
|
|
<string>(\4)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.deprecated.prefix.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-multi-bad-brace1-formatting-raw</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-multi-bad-brace2-formatting-raw</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-raw-guts</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-bin-quoted-multi-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.binary.multi.python</string>
|
|
<key>begin</key>
|
|
<string>(\b[bB])('''|""")</string>
|
|
<key>end</key>
|
|
<string>(\2)</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>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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-entity</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-raw-bin-quoted-multi-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.raw.binary.multi.python</string>
|
|
<key>begin</key>
|
|
<string>(\b(?:R[bB]|[bB]R))('''|""")</string>
|
|
<key>end</key>
|
|
<string>(\2)</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>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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-raw-bin-guts</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-quoted-multi-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.multi.python</string>
|
|
<key>begin</key>
|
|
<string>(?:\b([rR])(?=[uU]))?([uU])?('''|""")</string>
|
|
<key>end</key>
|
|
<string>(\3)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.prefix.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.string.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python</string>
|
|
</dict>
|
|
</dict>
|
|
<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.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-multi-bad-brace1-formatting-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-multi-bad-brace2-formatting-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-unicode-guts</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-multi-bad-brace1-formatting-unicode</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>template using {% ... %}</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(?= \{%
|
|
( .*? (?!'''|""") )
|
|
%\}
|
|
)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(?='''|""")</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escape-sequence-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escape-sequence</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-line-continuation</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-multi-bad-brace1-formatting-raw</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>template using {% ... %}</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(?= \{%
|
|
( .*? (?!'''|""") )
|
|
%\}
|
|
)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(?='''|""")</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-consume-escape</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-multi-bad-brace2-formatting-unicode</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>odd format or format-like syntax</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(?!\{\{)
|
|
(?= \{ (
|
|
\w*? (?!'''|""") [^!:\.\[}\w]
|
|
)
|
|
.*?(?!'''|""")
|
|
\}
|
|
)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(?='''|""")</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escape-sequence-unicode</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-entity</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string-multi-bad-brace2-formatting-raw</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>odd format or format-like syntax</string>
|
|
<key>begin</key>
|
|
<string>(?x)
|
|
(?!\{\{)
|
|
(?= \{ (
|
|
\w*? (?!'''|""") [^!:\.\[}\w]
|
|
)
|
|
.*?(?!'''|""")
|
|
\}
|
|
)
|
|
</string>
|
|
<key>end</key>
|
|
<string>(?='''|""")</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-consume-escape</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string-formatting</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-fnorm-quoted-single-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.fstring.python</string>
|
|
<key>begin</key>
|
|
<string>(\b[fF])([bBuU])?((['"]))</string>
|
|
<key>end</key>
|
|
<string>(\3)|((?<!\\)\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.quoted.single.python storage.type.string.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.prefix.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-guts</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-illegal-single-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-single-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-single-core</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-normf-quoted-single-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.fstring.python</string>
|
|
<key>begin</key>
|
|
<string>(\b[bBuU])([fF])((['"]))</string>
|
|
<key>end</key>
|
|
<string>(\3)|((?<!\\)\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.prefix.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.quoted.single.python storage.type.string.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python string.quoted.single.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-guts</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-illegal-single-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-single-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-single-core</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-raw-quoted-single-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.fstring.python</string>
|
|
<key>begin</key>
|
|
<string>(\b(?:[R][fF]|[fF][R]))((['"]))</string>
|
|
<key>end</key>
|
|
<string>(\2)|((?<!\\)\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.quoted.raw.single.python storage.type.string.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python string.quoted.raw.single.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-raw-guts</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-illegal-single-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-single-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-raw-single-core</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-single-core</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.quoted.single.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(.+?)
|
|
(
|
|
(?# .* and .*? in multi-line match need special handling of
|
|
newlines otherwise SublimeText and Atom will match slightly
|
|
differently.
|
|
|
|
The guard for newlines has to be separate from the
|
|
lookahead because of special $ matching rule.)
|
|
($\n?)
|
|
|
|
|
(?=[\\\}\{]|(['"])|((?<!\\)\n))
|
|
)
|
|
(?# due to how multiline regexps are matched we need a special case
|
|
for matching a newline character)
|
|
| \n
|
|
</string>
|
|
</dict>
|
|
<key>fstring-raw-single-core</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.quoted.raw.single.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(.+?)
|
|
(
|
|
(?# .* and .*? in multi-line match need special handling of
|
|
newlines otherwise SublimeText and Atom will match slightly
|
|
differently.
|
|
|
|
The guard for newlines has to be separate from the
|
|
lookahead because of special $ matching rule.)
|
|
($\n?)
|
|
|
|
|
(?=[\\\}\{]|(['"])|((?<!\\)\n))
|
|
)
|
|
(?# due to how multiline regexps are matched we need a special case
|
|
for matching a newline character)
|
|
| \n
|
|
</string>
|
|
</dict>
|
|
<key>fstring-single-brace</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>value interpolation using { ... }</string>
|
|
<key>begin</key>
|
|
<string>(\{)</string>
|
|
<key>end</key>
|
|
<string>(?x)
|
|
(\})|(?=\n)
|
|
</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.format.placeholder.other.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.format.placeholder.other.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-terminator-single</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#f-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-terminator-single</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>(![rsa])(?=})</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(![rsa])?
|
|
( : \w? [<>=^]? [-+ ]? \#?
|
|
\d* ,? (\.\d+)? [bcdeEfFgGnosxX%]? )(?=})
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-terminator-single-tail</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-terminator-single-tail</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(![rsa])?(:)(?=.*?{)</string>
|
|
<key>end</key>
|
|
<string>(?=})|(?=\n)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-illegal-single-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-single-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>([bcdeEfFgGnosxX%])(?=})</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>(\.\d+)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>(,)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>(\d+)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>(\#)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>([-+ ])</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>([<>=^])</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>(\w)</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-fnorm-quoted-multi-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.fstring.python</string>
|
|
<key>begin</key>
|
|
<string>(\b[fF])([bBuU])?('''|""")</string>
|
|
<key>end</key>
|
|
<string>(\3)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.quoted.multi.python storage.type.string.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.prefix.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-guts</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-illegal-multi-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-multi-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-multi-core</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-normf-quoted-multi-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.fstring.python</string>
|
|
<key>begin</key>
|
|
<string>(\b[bBuU])([fF])('''|""")</string>
|
|
<key>end</key>
|
|
<string>(\3)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.prefix.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.quoted.multi.python storage.type.string.python</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python string.quoted.multi.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-guts</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-illegal-multi-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-multi-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-multi-core</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-raw-quoted-multi-line</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>meta.fstring.python</string>
|
|
<key>begin</key>
|
|
<string>(\b(?:[R][fF]|[fF][R]))('''|""")</string>
|
|
<key>end</key>
|
|
<string>(\2)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.quoted.raw.multi.python storage.type.string.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.python string.quoted.raw.multi.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>invalid.illegal.newline.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-raw-guts</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-illegal-multi-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-multi-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-raw-multi-core</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-multi-core</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.quoted.multi.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(.+?)
|
|
(
|
|
(?# .* and .*? in multi-line match need special handling of
|
|
newlines otherwise SublimeText and Atom will match slightly
|
|
differently.
|
|
|
|
The guard for newlines has to be separate from the
|
|
lookahead because of special $ matching rule.)
|
|
($\n?)
|
|
|
|
|
(?=[\\\}\{]|'''|""")
|
|
)
|
|
(?# due to how multiline regexps are matched we need a special case
|
|
for matching a newline character)
|
|
| \n
|
|
</string>
|
|
</dict>
|
|
<key>fstring-raw-multi-core</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.python string.quoted.raw.multi.python</string>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(.+?)
|
|
(
|
|
(?# .* and .*? in multi-line match need special handling of
|
|
newlines otherwise SublimeText and Atom will match slightly
|
|
differently.
|
|
|
|
The guard for newlines has to be separate from the
|
|
lookahead because of special $ matching rule.)
|
|
($\n?)
|
|
|
|
|
(?=[\\\}\{]|'''|""")
|
|
)
|
|
(?# due to how multiline regexps are matched we need a special case
|
|
for matching a newline character)
|
|
| \n
|
|
</string>
|
|
</dict>
|
|
<key>fstring-multi-brace</key>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>value interpolation using { ... }</string>
|
|
<key>begin</key>
|
|
<string>(\{)</string>
|
|
<key>end</key>
|
|
<string>(?x)
|
|
(\})
|
|
</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.format.placeholder.other.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>constant.character.format.placeholder.other.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-terminator-multi</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#f-expression</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-terminator-multi</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>(![rsa])(?=})</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?x)
|
|
(![rsa])?
|
|
( : \w? [<>=^]? [-+ ]? \#?
|
|
\d* ,? (\.\d+)? [bcdeEfFgGnosxX%]? )(?=})
|
|
</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-terminator-multi-tail</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>fstring-terminator-multi-tail</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(![rsa])?(:)(?=.*?{)</string>
|
|
<key>end</key>
|
|
<string>(?=})</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
</dict>
|
|
</dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-illegal-multi-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#fstring-multi-brace</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>([bcdeEfFgGnosxX%])(?=})</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>(\.\d+)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>(,)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>(\d+)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>(\#)</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>([-+ ])</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>([<>=^])</string>
|
|
</dict>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.format.python</string>
|
|
<key>match</key>
|
|
<string>(\w)</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</dict>
|
|
</dict>
|
|
</plist>
|