Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
de4c7a2e
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
de4c7a2e
编写于
4月 21, 2016
作者:
M
Martin Aeschlimann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update pyhon grammar, fixes #1467
上级
3b1bb041
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
7276 addition
and
634 deletion
+7276
-634
extensions/python/syntaxes/Python.tmLanguage
extensions/python/syntaxes/Python.tmLanguage
+1755
-611
extensions/python/test/colorize-fixtures/test.py
extensions/python/test/colorize-fixtures/test.py
+55
-2
extensions/python/test/colorize-results/test_py.json
extensions/python/test/colorize-results/test_py.json
+5466
-21
未找到文件。
extensions/python/syntaxes/Python.tmLanguage
浏览文件 @
de4c7a2e
...
...
@@ -2,17 +2,10 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist
version=
"1.0"
>
<dict>
<key>
bundleUUID
</key>
<string>
E3BADC20-6B0E-11D9-9DC9-000D93589AF6
</string>
<key>
comment
</key>
<string>
todo:
list comprehension / generator comprehension scope.
</string>
<key>
fileTypes
</key>
<array>
<string>
py
</string>
<string>
py3
</string>
<string>
rpy
</string>
<string>
pyw
</string>
<string>
cpy
</string>
...
...
@@ -32,77 +25,74 @@
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
(^[ \t]+)?(?=#)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
match
</key>
<string>
(?
<
!^from\s|^import\s)(\.{3})
</string>
<key>
name
</key>
<string>
punctuation.whitespace.comment.leading.python
</string>
</dict>
<string>
support.type.ellipsis.python
</string>
</dict>
<key>
end
</key>
<string>
(?!\G)
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
#
</string>
<key>
beginCaptures
</key>
<dict>
<key>
0
</key>
<key>
include
</key>
<string>
#comment
</string>
</dict>
<dict>
<key>
comment
</key>
<string>
Match identifiers in ALL_CAPS as constants, except when followed by `.`, `(`, `'`, or `"`.
</string>
<key>
match
</key>
<string>
\b([[:upper:]_][[:upper:][:digit:]_]*)\b(?![\.\(\'\"])
</string>
<key>
name
</key>
<string>
punctuation.definition.comment
.python
</string>
<string>
constant.other.allcaps
.python
</string>
</dict>
</
dict>
<key>
end
</key>
<string>
\n
</string>
<
dict>
<key>
match
</key>
<string>
\b(?i:(0x\h+)L)
</string>
<key>
name
</key>
<string>
comment.line.number-sign
.python
</string>
<string>
constant.numeric.integer.hexadecimal.long
.python
</string>
</dict>
</array>
<dict>
<key>
match
</key>
<string>
\b(?i:(0x\h+))
</string>
<key>
name
</key>
<string>
constant.numeric.integer.hexadecimal.python
</string>
</dict>
<dict>
<key>
match
</key>
<string>
\b(?i:(0
x\h*
)L)
</string>
<string>
\b(?i:(0
b[01]+
)L)
</string>
<key>
name
</key>
<string>
constant.numeric.integer.
long.hexadecimal
.python
</string>
<string>
constant.numeric.integer.
binary.long
.python
</string>
</dict>
<dict>
<key>
match
</key>
<string>
\b(?i:(0
x\h*
))
</string>
<string>
\b(?i:(0
b[01]+
))
</string>
<key>
name
</key>
<string>
constant.numeric.integer.
hexadecimal
.python
</string>
<string>
constant.numeric.integer.
binary
.python
</string>
</dict>
<dict>
<key>
match
</key>
<string>
\b(?i:(0[0-7]+)L)
</string>
<string>
\b(?i:(0[
o]?[
0-7]+)L)
</string>
<key>
name
</key>
<string>
constant.numeric.integer.
long.octal
.python
</string>
<string>
constant.numeric.integer.
octal.long
.python
</string>
</dict>
<dict>
<key>
match
</key>
<string>
\b(
0[0-7]+
)
</string>
<string>
\b(
?i:(0[o]?[0-7]+)
)
</string>
<key>
name
</key>
<string>
constant.numeric.integer.octal.python
</string>
</dict>
<dict>
<key>
match
</key>
<string>
\b(?i:(((\d+(\.(?=[^
a-zA-Z_])\d*)?|(?
<
=[^0-9a-zA-Z
_])\.\d+)(e[\-\+]?\d+)?))J)
</string>
<string>
\b(?i:(((\d+(\.(?=[^
[:alpha:]_])\d*)?|(?
<
=[^[:alnum:]
_])\.\d+)(e[\-\+]?\d+)?))J)
</string>
<key>
name
</key>
<string>
constant.numeric.complex.python
</string>
</dict>
<dict>
<key>
match
</key>
<string>
\b(?i:(\d+\.\d*(e[\-\+]?\d+)?))(?=[^
a-zA-Z
_])
</string>
<string>
\b(?i:(\d+\.\d*(e[\-\+]?\d+)?))(?=[^
[:alpha:]
_])
</string>
<key>
name
</key>
<string>
constant.numeric.float.python
</string>
</dict>
<dict>
<key>
match
</key>
<string>
(?
<
=[^
0-9a-zA-Z
_])(?i:(\.\d+(e[\-\+]?\d+)?))
</string>
<string>
(?
<
=[^
[:alnum:]
_])(?i:(\.\d+(e[\-\+]?\d+)?))
</string>
<key>
name
</key>
<string>
constant.numeric.float.python
</string>
</dict>
...
...
@@ -116,7 +106,7 @@
<key>
match
</key>
<string>
\b(?i:([1-9]+[0-9]*|0)L)
</string>
<key>
name
</key>
<string>
constant.numeric.integer.
long.decimal
.python
</string>
<string>
constant.numeric.integer.
decimal.long
.python
</string>
</dict>
<dict>
<key>
match
</key>
...
...
@@ -125,41 +115,22 @@
<string>
constant.numeric.integer.decimal.python
</string>
</dict>
<dict>
<key>
captures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.modifier.global.python
</string>
</dict>
</dict>
<key>
match
</key>
<string>
\b(global)\b
</string>
</dict>
<dict>
<key>
captures
</key>
<dict>
<key>
1
</key>
<dict>
<string>
\b(None|True|False|Ellipsis|NotImplemented)\b
</string>
<key>
name
</key>
<string>
keyword.control.import
.python
</string>
<string>
constant.language
.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
keyword.control.import.from.python
</string>
</dict>
</dict>
<key>
match
</key>
<string>
\b(?:(import)|(from))\b
</string>
<string>
\b(global|nonlocal)\b
</string>
<key>
name
</key>
<string>
storage.modifier.$1.python
</string>
</dict>
<dict>
<key>
comment
</key>
<string>
keywords that delimit flow blocks or alter flow from within a block
</string>
<key>
match
</key>
<string>
\b(
elif|else|except|finally|for|if|try|while|with|break|continue|pass|raise|return|yield
)\b
</string>
<string>
\b(
?:(import|from|as)
)\b
</string>
<key>
name
</key>
<string>
keyword.control.
flow
.python
</string>
<string>
keyword.control.
import.$1
.python
</string>
</dict>
<dict>
<key>
comment
</key>
...
...
@@ -170,18 +141,12 @@
<string>
keyword.operator.logical.python
</string>
</dict>
<dict>
<key>
captures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
keyword.other.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
keywords that
haven't fit into other groups (yet)
.
</string>
<string>
keywords that
do not fit into other groups
.
</string>
<key>
match
</key>
<string>
\b(as|assert|del|exec|print)\b
</string>
<string>
\b(assert|del)\b
</string>
<key>
name
</key>
<string>
keyword.other.python
</string>
</dict>
<dict>
<key>
match
</key>
...
...
@@ -189,6 +154,12 @@
<key>
name
</key>
<string>
invalid.deprecated.operator.python
</string>
</dict>
<dict>
<key>
match
</key>
<string>
(?
<
!\.)(apply|buffer|coerce|intern)\s*(?=\()
</string>
<key>
name
</key>
<string>
invalid.deprecated.function.python
</string>
</dict>
<dict>
<key>
match
</key>
<string>
<
\=|
>
\=|\=\=|
<
|
>
|\!\=
</string>
...
...
@@ -197,13 +168,13 @@
</dict>
<dict>
<key>
match
</key>
<string>
\+\=|-\=|\*\=|/\=|//\=|%\=|
&
\=|\|\=|\^\=|
>>
\=|
<<
\=|\*\*\=
</string>
<string>
\+\=|-\=|\*\=|/\=|//\=|%\=|
&
\=|\|\=|\^\=|
>>
\=|
<<
\=|\*\*\=
|@\=
</string>
<key>
name
</key>
<string>
keyword.operator.assignment.augmented.python
</string>
</dict>
<dict>
<key>
match
</key>
<string>
\+|\-|\*|\*\*|/|//|%|
<<
|
>>
|
&
|\||\^|~
</string>
<string>
\+|\-|\*|\*\*|/|//|%|
<<
|
>>
|
&
|\||\^|~
|(?!^)@
</string>
<key>
name
</key>
<string>
keyword.operator.arithmetic.python
</string>
</dict>
...
...
@@ -215,7 +186,7 @@
</dict>
<dict>
<key>
begin
</key>
<string>
^\s*(class)\s+(?=[
a-zA-Z_][a-zA-Z_0-9
]*\s*\:)
</string>
<string>
^\s*(class)\s+(?=[
[:alpha:]_][[:alnum:]_
]*\s*\:)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -248,7 +219,7 @@
</dict>
<dict>
<key>
begin
</key>
<string>
^\s*(class)\s+(?=[
a-zA-Z_][a-zA-Z_0-9
]*\s*\()
</string>
<string>
^\s*(class)\s+(?=[
[:alpha:]_][[:alnum:]_
]*\s*\()
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -283,11 +254,11 @@
<array>
<dict>
<key>
begin
</key>
<string>
(?=[
A-Za-z_][A-Za-z0-9
_]*)
</string>
<string>
(?=[
[:alpha:]_][[:alnum:]
_]*)
</string>
<key>
contentName
</key>
<string>
entity.name.type.class.python
</string>
<key>
end
</key>
<string>
(?![
A-Za-z0-9
_])
</string>
<string>
(?![
[:alnum:]
_])
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -342,7 +313,7 @@
</dict>
<dict>
<key>
begin
</key>
<string>
^\s*(class)\s+(?=[
a-zA-Z_][a-zA-Z_0-9]
)
</string>
<string>
^\s*(class)\s+(?=[
[:alpha:]_][[:alnum:]_]*
)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -372,11 +343,11 @@
<array>
<dict>
<key>
begin
</key>
<string>
(?=[
A-Za-z_][A-Za-z0-9
_]*)
</string>
<string>
(?=[
[:alpha:]_][[:alnum:]
_]*)
</string>
<key>
contentName
</key>
<string>
entity.name.type.class.python
</string>
<key>
end
</key>
<string>
(?![
A-Za-z0-9
_])
</string>
<string>
(?![
[:alnum:]
_])
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -389,34 +360,29 @@
</dict>
<dict>
<key>
begin
</key>
<string>
^\s*(def)\s+(?=[A-Za-z_][A-Za-z0-9
_]*\s*\()
</string>
<string>
\s*(?:(async)\s+)?(def)\s+(?=[[:alpha:]_][[:alnum:]
_]*\s*\()
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.modifier.async.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
storage.type.function.python
</string>
</dict>
</dict>
<key>
end
</key>
<string>
(\
))\s*(?:(\:)|(.*$\n?)
)
</string>
<string>
(\
:
)
</string>
<key>
endCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.parameters.end.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
punctuation.section.function.begin.python
</string>
</dict>
<key>
3
</key>
<dict>
<key>
name
</key>
<string>
invalid.illegal.missing-section-begin.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
meta.function.python
</string>
...
...
@@ -424,11 +390,11 @@
<array>
<dict>
<key>
begin
</key>
<string>
(?=[
A-Za-z_][A-Za-z0-9
_]*)
</string>
<string>
(?=[
[:alpha:]_][[:alnum:]
_]*)
</string>
<key>
contentName
</key>
<string>
entity.name.function.python
</string>
<key>
end
</key>
<string>
(?![
A-Za-z0-9
_])
</string>
<string>
(?![
[:alnum:]
_])
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -451,29 +417,68 @@
<key>
contentName
</key>
<string>
meta.function.parameters.python
</string>
<key>
end
</key>
<string>
(?=\)\s*
\:
)
</string>
<string>
(?=\)\s*
(?:\:|-\
>
)
)
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#annotated_arguments
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#keyword_arguments
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#comment
</string>
</dict>
<dict>
<key>
captures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
variable.parameter.function.python
</string>
<string>
variable.parameter.function.
language.
python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
variable.parameter.function.python
</string>
</dict>
<key>
3
</key>
<dict>
<key>
name
</key>
<string>
punctuation.separator.parameters.python
</string>
</dict>
</dict>
<key>
match
</key>
<string>
\b([a-zA-Z_][a-zA-Z_0-9]*)\s*(?:(,)|(?=[\n\)]))
</string>
<string>
\b(?:(self|cls)|([[:alpha:]_][[:alnum:]_]*))\s*(?:(,)|(?=[\n\)]))
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(\))\s*(\-
>
)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.parameters.end.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
punctuation.separator.annotation.result.python
</string>
</dict>
</dict>
<key>
end
</key>
<string>
(?=\:)
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
$self
</string>
</dict>
</array>
</dict>
...
...
@@ -481,10 +486,15 @@
</dict>
<dict>
<key>
begin
</key>
<string>
^\s*(def)\s+(?=[A-Za-z_][A-Za-z0-9
_]*)
</string>
<string>
\s*(?:(async)\s+)?(def)\s+(?=[[:alpha:]_][[:alnum:]
_]*)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.modifier.async.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
storage.type.function.python
</string>
...
...
@@ -511,11 +521,11 @@
<array>
<dict>
<key>
begin
</key>
<string>
(?=[
A-Za-z_][A-Za-z0-9
_]*)
</string>
<string>
(?=[
[:alpha:]_][[:alnum:]
_]*)
</string>
<key>
contentName
</key>
<string>
entity.name.function.python
</string>
<key>
end
</key>
<string>
(?![
A-Za-z0-9
_])
</string>
<string>
(?![
[:alnum:]
_])
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -526,9 +536,49 @@
</dict>
</array>
</dict>
<dict>
<key>
captures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.modifier.async.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
storage.type.function.python
</string>
</dict>
<key>
3
</key>
<dict>
<key>
name
</key>
<string>
storage.type.function.python
</string>
</dict>
</dict>
<key>
match
</key>
<string>
\b(?:(?:(async)\s+)?(def)|(lambda))\b
</string>
</dict>
<dict>
<key>
comment
</key>
<string>
Keywords that delimit flow blocks or alter flow from within a
block.
This block should be matched *after* meta.function.python to
let 'async def' be matched *first*.
</string>
<key>
match
</key>
<string>
(?x) \b(
async | await | break | continue | elif | else | except | finally | for |
if | pass | raise | return | try | while | with |
(yield(?:\s+from)?)
)\b
</string>
<key>
name
</key>
<string>
keyword.control.flow.python
</string>
</dict>
<dict>
<key>
begin
</key>
<string>
(lambda)(?=\s+)
</string>
<string>
(lambda)(?=\s+
|:
)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -589,7 +639,7 @@
</dict>
</dict>
<key>
match
</key>
<string>
\b([
a-zA-Z_][a-zA-Z_0-9
]*)\s*(?:(,)|(?=[\n\)\:]))
</string>
<string>
\b([
[:alpha:]_][[:alnum:]_
]*)\s*(?:(,)|(?=[\n\)\:]))
</string>
</dict>
</array>
</dict>
...
...
@@ -597,7 +647,7 @@
</dict>
<dict>
<key>
begin
</key>
<string>
^\s*(?=@\s*[
A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9
]*)*\s*\()
</string>
<string>
^\s*(?=@\s*[
[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_
]*)*\s*\()
</string>
<key>
comment
</key>
<string>
a decorator may be a function call which returns a decorator.
</string>
<key>
end
</key>
...
...
@@ -616,7 +666,7 @@
<array>
<dict>
<key>
begin
</key>
<string>
(?=(@)\s*[
A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9
_]*)*\s*\()
</string>
<string>
(?=(@)\s*[
[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]
_]*)*\s*\()
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -668,7 +718,7 @@
</dict>
<dict>
<key>
begin
</key>
<string>
^\s*(?=@\s*[
A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9
]*)*)
</string>
<string>
^\s*(?=@\s*[
[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_
]*)*)
</string>
<key>
contentName
</key>
<string>
entity.name.function.decorator.python
</string>
<key>
end
</key>
...
...
@@ -679,7 +729,7 @@
<array>
<dict>
<key>
begin
</key>
<string>
(?=(@)\s*[
A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9
_]*)*)
</string>
<string>
(?=(@)\s*[
[:alpha:]_][[:alnum:]_]*(\s*\.\s*[[:alpha:]_][[:alnum:]
_]*)*)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -737,9 +787,54 @@
</dict>
</array>
</dict>
<dict>
<key>
include
</key>
<string>
#builtin_types
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#builtin_functions_name
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#builtin_functions_call
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#errors_warnings_exceptions
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#magic_function_names
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#magic_function_calls
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#docstrings
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#magic_variable_names
</string>
</dict>
<dict>
<key>
begin
</key>
<string>
(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*\s*\()
</string>
<string>
\b(self|cls)\b\s*(?=(\())
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
variable.language.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.arguments.begin.python
</string>
</dict>
</dict>
<key>
end
</key>
<string>
(\))
</string>
<key>
endCaptures
</key>
...
...
@@ -754,19 +849,6 @@
<string>
meta.function-call.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*\s*\()
</string>
<key>
end
</key>
<string>
(?=\s*\()
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#dotted_name
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(\()
</string>
...
...
@@ -781,7 +863,15 @@
<key>
contentName
</key>
<string>
meta.function-call.arguments.python
</string>
<key>
end
</key>
<string>
(?=\))
</string>
<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>
...
...
@@ -796,11 +886,27 @@
</dict>
</array>
</dict>
<dict>
<key>
include
</key>
<string>
#language_variables
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#generic_object_names
</string>
</dict>
<dict>
<key>
begin
</key>
<string>
(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*\s*\[)
</string>
<string>
(?:\.)?([[:alpha:]_][[:alnum:]_]*)\s*(?=(\())
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
meta.function-call.generic.python
</string>
</dict>
</dict>
<key>
end
</key>
<string>
(\
]
)
</string>
<string>
(\
)
)
</string>
<key>
endCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -810,25 +916,12 @@
</dict>
</dict>
<key>
name
</key>
<string>
meta.item-access.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*\s*\[)
</string>
<key>
end
</key>
<string>
(?=\s*\[)
</string>
<string>
meta.function-call.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#dotted_name
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(\
[
)
</string>
<string>
(\
(
)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -838,11 +931,15 @@
</dict>
</dict>
<key>
contentName
</key>
<string>
meta.
item-access
.arguments.python
</string>
<string>
meta.
function-call
.arguments.python
</string>
<key>
end
</key>
<string>
(?=\
]
)
</string>
<string>
(?=\
)
)
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#keyword_arguments
</string>
</dict>
<dict>
<key>
include
</key>
<string>
$self
</string>
...
...
@@ -852,18 +949,16 @@
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(?
<
=\)|\])\s*(\[)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
comment
</key>
<string>
Py2 print statement that should only be matched after function calls
</string>
<key>
match
</key>
<string>
(?
<
!\.)\b(print)(?=\s|$)
</string>
<key>
name
</key>
<string>
punctuation.definition.arguments.begin
.python
</string>
<string>
keyword.other.print
.python
</string>
</dict>
</
dict>
<key>
contentName
</key>
<string>
meta.item-access.arguments.python
</string>
<
dict>
<key>
begin
</key>
<string>
(?=[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*\s*\[)
</string>
<key>
end
</key>
<string>
(\])
</string>
<key>
endCaptures
</key>
...
...
@@ -877,24 +972,57 @@
<key>
name
</key>
<string>
meta.item-access.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
(?=[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*\s*\[)
</string>
<key>
end
</key>
<string>
(?=\s*\[)
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
$self
</string>
<string>
#dotted_name
</string>
</dict>
</array>
</dict>
<dict>
<key>
captures
</key>
<key>
begin
</key>
<string>
(\[)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.type.functio
n.python
</string>
<string>
punctuation.definition.arguments.begi
n.python
</string>
</dict>
</dict>
<key>
match
</key>
<string>
\b(def|lambda)\b
</string>
<key>
contentName
</key>
<string>
meta.item-access.arguments.python
</string>
<key>
end
</key>
<string>
(?=\])
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
$self
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
\G
</string>
<key>
end
</key>
<string>
(?=\[)
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#dotted_name
</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>
captures
</key>
...
...
@@ -912,16 +1040,6 @@
<key>
include
</key>
<string>
#line_continuation
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#language_variables
</string>
</dict>
<dict>
<key>
match
</key>
<string>
\b(None|True|False|Ellipsis|NotImplemented)\b
</string>
<key>
name
</key>
<string>
constant.language.python
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#string_quoted_single
</string>
...
...
@@ -1143,219 +1261,516 @@
</array>
<key>
repository
</key>
<dict>
<key>
builtin_exception
s
</key>
<key>
annotated_argument
s
</key>
<dict>
<key>
match
</key>
<string>
(?x)\b(
(
Arithmetic|Assertion|Attribute|BlockingIO|BrokenPipe|Buffer|ChildProcess|
Connection(Aborted|Refused|Reset)?|EOF|Environment|FileExists|
FileNotFound|FloatingPoint|Interrupted|IO|IsADirectoryError|
Import|Indentation|Index|Key|Lookup|Memory|Name|NotADirectory|
NotImplemented|OS|Overflow|Permission|ProcessLookup|Reference|
Runtime|Standard|Syntax|System|Tab|Timeout|Type|UnboundLocal|
Unicode(Encode|Decode|Translate)?|Value|VMS|Windows|ZeroDivision
)Error|
((Pending)?Deprecation|Runtime|Syntax|User|Future|Import|Unicode|Bytes)?Warning|
(Base)?Exception|
SystemExit|StopIteration|NotImplemented|KeyboardInterrupt|GeneratorExit
)\b
</string>
<key>
name
</key>
<string>
support.type.exception.python
</string>
</dict>
<key>
builtin_functions
</key>
<key>
begin
</key>
<string>
\b([[:alpha:]_][[:alnum:]_]*)\s*(:)|(?=\()
</string>
<key>
beginCaptures
</key>
<dict>
<key>
match
</key>
<string>
(?x)\b(
__import__|all|abs|any|apply|ascii|bin|callable|chr|classmethod|cmp|coerce|
compile|delattr|dir|divmod|enumerate|eval|execfile|filter|format|getattr|
globals|hasattr|hash|help|hex|id|input|intern|isinstance|issubclass|iter|
len|locals|map|max|min|next|oct|open|ord|pow|print|property|range|
raw_input|reduce|reload|repr|reversed|round|setattr|sorted|staticmethod|
sum|super|type|unichr|vars|zip
)\b
</string>
<key>
name
</key>
<string>
support.function.builtin.python
</string>
</dict>
<key>
builtin_types
</key>
<key>
1
</key>
<dict>
<key>
match
</key>
<string>
(?x)\b(
basestring|bool|buffer|bytearray|bytes|complex|dict|float|frozenset|int|
list|long|memoryview|object|range|set|slice|str|tuple|unicode|xrange
)\b
</string>
<key>
name
</key>
<string>
support.type
.python
</string>
<string>
variable.parameter.function
.python
</string>
</dict>
<key>
constant_placeholder
</key>
<key>
2
</key>
<dict>
<key>
match
</key>
<string>
(?i:(%(\([a-z_]+\))?#?0?\-?[ ]?\+?([0-9]*|\*)(\.([0-9]*|\*))?[hL]?[a-z%])|(\{([!\[\].:\w ]+)?\}))
</string>
<key>
name
</key>
<string>
constant.other.placeholder
.python
</string>
<string>
punctuation.separator.annotation
.python
</string>
</dict>
<key>
docstrings
</key>
</dict>
<key>
end
</key>
<string>
\s*(?:(,)|(?=$\n?|[\)\:]))
</string>
<key>
endCaptures
</key>
<dict>
<key>
patterns
</key>
<array>
<key>
1
</key>
<dict>
<key>
begin
</key>
<string>
^\s*(?=[uU]?[rR]?""")
</string>
<key>
end
</key>
<string>
(?
<
=""")
</string>
<key>
name
</key>
<string>
comment.block.python
</string>
<string>
punctuation.separator.parameters.python
</string>
</dict>
</dict>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#string_quoted_double
</string>
</dict>
</array>
<string>
#annotated_group
</string>
</dict>
<dict>
<key>
begin
</key>
<string>
^\s*(?=[uU]?[rR]?''')
</string>
<key>
end
</key>
<string>
(?
<
=''')
</string>
<key>
match
</key>
<string>
=
</string>
<key>
name
</key>
<string>
comment.block.python
</string>
<key>
patterns
</key>
<array>
<string>
keyword.operator.assignment.python
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#string_quoted_single
</string>
</dict>
</array>
<string>
$self
</string>
</dict>
</array>
</dict>
<key>
dotted_name
</key>
<key>
annotated_group
</key>
<dict>
<key>
begin
</key>
<string>
(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*)
</string>
<string>
(\()
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.parameters-group.begin.python
</string>
</dict>
</dict>
<key>
end
</key>
<string>
(?![A-Za-z0-9_\.])
</string>
<string>
(\))
</string>
<key>
endCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.parameters-group.end.python
</string>
</dict>
</dict>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
(\.)(?=[A-Za-z_][A-Za-z0-9_]*)
</string>
<key>
end
</key>
<string>
(?![A-Za-z0-9_])
</string>
<key>
patterns
</key>
<array>
<string>
\b([[:alpha:]_][[:alnum:]_]*)\s*(:)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
include
</key>
<string>
#magic_function_names
</string>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
variable.parameter.function.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
include
</key>
<string>
#magic_variable_names
</string>
<key>
name
</key>
<string>
punctuation.separator.annotation.python
</string>
</dict>
</dict>
<key>
end
</key>
<string>
\s*(?:(,)|(?=$\n?|\)))
</string>
<key>
endCaptures
</key>
<dict>
<key>
include
</key>
<string>
#illegal_names
</string>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.separator.parameters.python
</string>
</dict>
</dict>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#generic_names
</string>
<string>
$self
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(?
<
!\.)(?=[A-Za-z_][A-Za-z0-9_]*)
</string>
<key>
end
</key>
<string>
(?![A-Za-z0-9_])
</string>
<key>
patterns
</key>
<array>
<string>
\b([[:alpha:]_][[:alnum:]_]*)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
include
</key>
<string>
#builtin_functions
</string>
</dict>
<key>
1
</key>
<dict>
<key>
includ
e
</key>
<string>
#builtin_types
</string>
<key>
nam
e
</key>
<string>
variable.parameter.function.python
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#builtin_exceptions
</string>
</dict>
<key>
end
</key>
<string>
\s*(?:(,)|(?=$\n?|\)))
</string>
<key>
endCaptures
</key>
<dict>
<key>
include
</key>
<string>
#illegal_names
</string>
</dict>
<key>
1
</key>
<dict>
<key>
includ
e
</key>
<string>
#magic_function_names
</string>
<key>
nam
e
</key>
<string>
punctuation.separator.parameters.python
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#magic_variable_names
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#language_variables
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#generic_names
</string>
</dict>
</array>
<string>
#comments
</string>
</dict>
</array>
</dict>
<key>
entity_name_class
</key>
<key>
builtin_functions_call
</key>
<dict>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#illegal_names
</string>
</dict>
<key>
begin
</key>
<string>
(?x)
(?
<
!\.)\b(
__import__ | abs | all | any | ascii | basestring | bin | bool |
bytearray | bytes | callable | chr | classmethod | cmp | compile |
complex | delattr | dict | dir | divmod | enumerate | eval | exec |
execfile | file | filter | float | format | frozenset | getattr |
globals | hasattr | hash | help | hex | id | input | int |
isinstance | issubclass | iter | len | list | locals | long | map |
max | memoryview | min | next | object | oct | open | ord | pow |
print | property | range | raw_input | reduce | reload | repr |
reversed | round | set | setattr | slice | sorted | staticmethod |
str | sum | super | tuple | type | unichr | unicode | vars |
xrange | zip)
\b\s*(?=\()
</string>
<key>
beginCaptures
</key>
<dict>
<key>
include
</key>
<string>
#generic_names
</string>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
support.function.builtin.call.python
</string>
</dict>
</array>
</dict>
<key>
entity_name_function
</key>
<key>
end
</key>
<string>
(\))
</string>
<key>
endCaptures
</key>
<dict>
<key>
patterns
</key>
<array>
<key>
1
</key>
<dict>
<key>
includ
e
</key>
<string>
#magic_function_names
</string>
<key>
nam
e
</key>
<string>
punctuation.definition.arguments.end.python
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#illegal_names
</string>
</dict>
<key>
name
</key>
<string>
meta.function-call.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
(?=[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*\s*\()
</string>
<key>
end
</key>
<string>
(?=\s*\()
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#generic_names
</string>
<string>
#dotted_name
</string>
</dict>
</array>
</dict>
<key>
escaped_char
</key>
<dict>
<key>
captures
</key>
<key>
begin
</key>
<string>
(\()
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.hex
.python
</string>
<string>
punctuation.definition.arguments.begin
.python
</string>
</dict>
<key>
10
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.linefeed.python
</string>
</dict>
<key>
11
</key>
<key>
contentName
</key>
<string>
meta.function-call.arguments.python
</string>
<key>
end
</key>
<string>
(?=\))
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
name
</key>
<string>
constant.character.escape.return.python
</string>
<key>
include
</key>
<string>
#keyword_arguments
</string>
</dict>
<dict>
<key>
include
</key>
<string>
$self
</string>
</dict>
</array>
</dict>
</array>
</dict>
</array>
</dict>
<key>
builtin_functions_name
</key>
<dict>
<key>
match
</key>
<string>
(?x)
(?
<
!\.|@)
\b(
__import__ | abs | all | any | ascii | basestring | bin | bool |
bytearray | bytes | callable | chr | classmethod | cmp | compile |
complex | delattr | dict | dir | divmod | enumerate | eval | exec |
execfile | file | filter | float | format | frozenset | getattr |
globals | hasattr | hash | help | hex | id | input | int |
isinstance | issubclass | iter | len | list | locals | long | map |
max | memoryview | min | next | object | oct | open | ord | pow |
property | range | raw_input | reduce | reload | repr |
reversed | round | set | setattr | slice | sorted | staticmethod |
str | sum | super | tuple | type | unichr | unicode | vars |
xrange | zip)
\b\s*(?!(\())
</string>
<key>
name
</key>
<string>
support.function.builtin.name.python
</string>
</dict>
<key>
builtin_types
</key>
<dict>
<key>
comment
</key>
<string>
These are from https://docs.python.org/X/library/stdtypes.html
where X is 2.7 or 3.5.
</string>
<key>
match
</key>
<string>
(?x)
(?
<
!\.)
\b(
bool | buffer | bytearray | bytes | complex | dict | float |
frozenset | int | list | long | memoryview | object | property |
range | set | slice | str | tuple | type | unicode | xrange)
\b(?!(\s*\())
</string>
<key>
name
</key>
<string>
support.type.python
</string>
</dict>
<key>
comment
</key>
<dict>
<key>
begin
</key>
<string>
(^[ \t]+)?(?=#)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.whitespace.comment.leading.python
</string>
</dict>
</dict>
<key>
end
</key>
<string>
(?!\G)
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
#
</string>
<key>
beginCaptures
</key>
<dict>
<key>
0
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.comment.python
</string>
</dict>
</dict>
<key>
end
</key>
<string>
\n
</string>
<key>
name
</key>
<string>
comment.line.number-sign.python
</string>
</dict>
</array>
</dict>
<key>
constant_placeholder
</key>
<dict>
<key>
match
</key>
<string>
(?i:(%(\([[:lower:]_]+\))?#?0?\-?[ ]?\+?([0-9]*|\*)(\.([0-9]*|\*))?[hL]?[[:lower:]%])|(\{([!\[\].:\w ]+)?\}))
</string>
<key>
name
</key>
<string>
constant.other.placeholder.python
</string>
</dict>
<key>
docstrings
</key>
<dict>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
^\s*(?=[uU]?[rR]?""")
</string>
<key>
end
</key>
<string>
(?
<
=""")
</string>
<key>
name
</key>
<string>
comment.block.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#string_quoted_double
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
^\s*(?=[uU]?[rR]?''')
</string>
<key>
end
</key>
<string>
(?
<
=''')
</string>
<key>
name
</key>
<string>
comment.block.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#string_quoted_single
</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>
dotted_name
</key>
<dict>
<key>
begin
</key>
<string>
(?=(?:\.(?!\s+import)\s*)?[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*)
</string>
<key>
end
</key>
<string>
(?![[:alnum:]_\.\s])|(?=(?
<
!\.)\s+[^.])|$
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
(\.)(?=[[:alpha:]_][[:alnum:]_]*)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
meta.dot.python
</string>
</dict>
</dict>
<key>
end
</key>
<string>
(?![[:alnum:]_])
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#builtin_functions_name
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#magic_function_names
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#magic_variable_names
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#generic_names
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#illegal_names
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(?
<
!\.)(?=[[:alpha:]_][[:alnum:]_]*)
</string>
<key>
end
</key>
<string>
(?![[:alnum:]_])
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#builtin_types
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#builtin_functions_name
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#builtin_functions_call
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#errors_warnings_exceptions
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#magic_function_names
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#magic_function_calls
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#magic_variable_names
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#language_variables
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#generic_names
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#illegal_names
</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>
entity_name_class
</key>
<dict>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#generic_names
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#illegal_names
</string>
</dict>
</array>
</dict>
<key>
entity_name_function
</key>
<dict>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#builtin_functions_name
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#magic_function_names
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#illegal_names
</string>
</dict>
</array>
</dict>
<key>
errors_warnings_exceptions
</key>
<dict>
<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 | Standard | Syntax | System | Tab | Type | UnboundLocal |
Unicode(Encode | Decode | Translate)? | Value | VMS | Windows |
ZeroDivision | ([[:alpha:]_][[:alnum:]_]*))
?Error
|
(
(Pending)?Deprecation | Bytes | Future | Import | Resource |
Runtime | Syntax | Unicode | User | [[:alpha:]_][[:alnum:]_]*)
?Warning
|
SystemExit | Stop(Async)?Iteration | NotImplemented |
KeyboardInterrupt | GeneratorExit
|
([[:alpha:]_][[:alnum:]_]*)
?Exception
)
\b
</string>
<key>
name
</key>
<string>
support.type.exception.python
</string>
</dict>
<key>
escaped_char
</key>
<dict>
<key>
captures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.hex.python
</string>
</dict>
<key>
10
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.linefeed.python
</string>
</dict>
<key>
11
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.return.python
</string>
</dict>
<key>
12
</key>
<dict>
...
...
@@ -1364,227 +1779,629 @@
</dict>
<key>
13
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.vertical-tab.python
</string>
<key>
name
</key>
<string>
constant.character.escape.vertical-tab.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.octal.python
</string>
</dict>
<key>
3
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.newline.python
</string>
</dict>
<key>
4
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.backslash.python
</string>
</dict>
<key>
5
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.double-quote.python
</string>
</dict>
<key>
6
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.single-quote.python
</string>
</dict>
<key>
7
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.bell.python
</string>
</dict>
<key>
8
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.backspace.python
</string>
</dict>
<key>
9
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.formfeed.python
</string>
</dict>
</dict>
<key>
match
</key>
<string>
(\\x[\h]{2})|(\\[0-7]{3})|(\\\n)|(\\\\)|(\\\")|(\\')|(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)
</string>
</dict>
<key>
escaped_char_raw_double
</key>
<dict>
<key>
match
</key>
<string>
\\"
</string>
<key>
name
</key>
<string>
constant.character.escape.quote.python
</string>
</dict>
<key>
escaped_char_raw_single
</key>
<dict>
<key>
match
</key>
<string>
\\'
</string>
<key>
name
</key>
<string>
constant.character.escape.quote.python
</string>
</dict>
<key>
escaped_unicode_char
</key>
<dict>
<key>
captures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.unicode.32-bit-hex.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.unicode.16-bit-hex.python
</string>
</dict>
<key>
3
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.unicode.name.python
</string>
</dict>
</dict>
<key>
match
</key>
<string>
(\\U[\h]{8})|(\\u[\h]{4})|(\\N\{[a-zA-Z0-9\, ]+\})
</string>
</dict>
<key>
generic_names
</key>
<dict>
<key>
match
</key>
<string>
[[:alpha:]_][[:alnum:]_]*
</string>
<key>
name
</key>
<string>
meta.identifier.python
</string>
</dict>
<key>
generic_object_names
</key>
<dict>
<key>
match
</key>
<string>
(\.\b([[:alpha:]_][[:alnum:]_]*)\b(?!\(|\[)|\b([[:alpha:]_][[:alnum:]_]*)\b\.)
</string>
</dict>
<key>
illegal_names
</key>
<dict>
<key>
comment
</key>
<string>
from Lib/keyword.py, in kwlist. `async` and `await` not keywords until Python 3.7 (according to PEP-0492)
</string>
<key>
match
</key>
<string>
(?x)
\b (
False | None | True | and | as | assert | break | class | continue | def |
del | elif | else | except | exec | finally | for | from | global | if |
import | in | is | lambda | nonlocal | not | or | pass | print | raise |
return | try | while | with | yield)
\b
</string>
<key>
name
</key>
<string>
invalid.illegal.name.python
</string>
</dict>
<key>
keyword_arguments
</key>
<dict>
<key>
begin
</key>
<string>
\b([[:alpha:]_][[:alnum:]_]*)\s*(=)(?!=)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
variable.parameter.function.keyword.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
keyword.operator.assignment.python
</string>
</dict>
</dict>
<key>
end
</key>
<string>
\s*(?:(,)|(?=[\)\:]))
</string>
<key>
endCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.separator.parameters.python
</string>
</dict>
</dict>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
$self
</string>
</dict>
</array>
</dict>
<key>
language_variables
</key>
<dict>
<key>
captures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
variable.language.python
</string>
</dict>
</dict>
<key>
match
</key>
<string>
(?
<
!\.)\b(self|cls)\b(?:\.|\()?
</string>
</dict>
<key>
line_continuation
</key>
<dict>
<key>
captures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.separator.continuation.line.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
invalid.illegal.unexpected-text.python
</string>
</dict>
</dict>
<key>
match
</key>
<string>
(\\)(.*)$\n?
</string>
</dict>
<key>
magic_function_calls
</key>
<dict>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
(?x)
(\.)?
\b(
__(?:
abs | add | aenter | aexit | aiter | and | anext | await | bool |
bytes | 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 |
getnewargs_ex | getslice | getstate | gt | hash | hex | iadd | iand |
idiv | idivmod | ifloordiv | ilshift | imatmul | imod | imul | index |
init | instancecheck | int | invert | iop | ior | ipow | irshift |
isub | iter | itruediv | ixor | le | len | length_hint | long |
lshift | lt | matmul | missing | mod | mul | ne | neg | new | next |
nonzero | oct | op | or | pos | pow | prepare | radd | rand | rcmp |
rdiv | rdivmod | reduce | reduce_ex | repr | reversed | rfloordiv |
rlshift | rmatmul | rmod | rmul | rop | ror | round | rpow | rrshift |
rshift | rsub | rtruediv | rxor | set | setattr | setitem | setslice |
setstate | sizeof | str | sub | subclasscheck | truediv | trunc |
unicode | xor)
__)
\s*(?=(\())
</string>
<key>
beginCaptures
</key>
<dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
support.function.magic.call.python
</string>
</dict>
<key>
4
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.arguments.begin.python
</string>
</dict>
</dict>
<key>
end
</key>
<string>
(\))
</string>
<key>
endCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.arguments.end.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
meta.function-call.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
(?=[[:alpha:]_][[:alnum:]_]*(?:\s*\.\s*[[:alpha:]_][[:alnum:]_]*)*\s*\()
</string>
<key>
end
</key>
<string>
(?=\s*\()
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#dotted_name
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(\()
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.arguments.begin.python
</string>
</dict>
</dict>
<key>
contentName
</key>
<string>
meta.function-call.arguments.python
</string>
<key>
end
</key>
<string>
(?=\))
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#keyword_arguments
</string>
</dict>
<dict>
<key>
include
</key>
<string>
$self
</string>
</dict>
</array>
</dict>
</array>
</dict>
</array>
</dict>
<key>
magic_function_names
</key>
<dict>
<key>
captures
</key>
<dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
support.function.magic.name.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
These methods have magic interpretation by python and are generally
called indirectly through syntactic constructs. Names are from
https://docs.python.org/X/reference/datamodel.html where X is 2.7 and 3.5
See also http://www.rafekettler.com/magicmethods.html
</string>
<key>
match
</key>
<string>
(?x)
(def|\.)?
\s*\b(
__(?:
abs | add | aenter | aexit | aiter | and | anext | await | bool |
bytes | 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 |
getnewargs_ex | getslice | getstate | gt | hash | hex | iadd | iand |
idiv | idivmod | ifloordiv | ilshift | imatmul | imod | imul | index |
init | instancecheck | int | invert | iop | ior | ipow | irshift |
isub | iter | itruediv | ixor | le | len | length_hint | long |
lshift | lt | matmul | missing | mod | mul | ne | neg | new | next |
nonzero | oct | op | or | pos | pow | prepare | radd | rand | rcmp |
rdiv | rdivmod | reduce | reduce_ex | repr | reversed | rfloordiv |
rlshift | rmatmul | rmod | rmul | rop | ror | round | rpow | rrshift |
rshift | rsub | rtruediv | rxor | set | setattr | setitem | setslice |
setstate | sizeof | str | sub | subclasscheck | truediv | trunc |
unicode | xor)
__)
\b
</string>
</dict>
<key>
magic_variable_names
</key>
<dict>
<key>
captures
</key>
<dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
support.variable.magic.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
magic attributes which a class/module may have.
</string>
<key>
match
</key>
<string>
(?x)
(\.)?
\b(
__(?:
all | annotations | bases | class | closure | code | debug |
defaults | dict | doc | file | func | globals | kwdefaults |
members | metaclass | methods | module | mro | name | qualname |
self | slots | subclasses | version | weakref)
__) \b
</string>
</dict>
<key>
regular_expressions
</key>
<dict>
<key>
comment
</key>
<string>
Changed disabled to 1 to turn off syntax highlighting in “r” strings.
</string>
<key>
disabled
</key>
<integer>
0
</integer>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
source.regexp.python
</string>
</dict>
</array>
</dict>
<key>
string_quoted_double
</key>
<dict>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
([uU]r)(""")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.type.string.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.begin.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted unicode-raw string
</string>
<key>
end
</key>
<string>
"""
</string>
<key>
endCaptures
</key>
<dict>
<key>
0
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.block.unicode-raw-regex.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<key>
2
</key>
<dict>
<key>
nam
e
</key>
<string>
constant.character.escape.octal.python
</string>
<key>
includ
e
</key>
<string>
#escaped_char_raw_double
</string>
</dict>
<key>
3
</key>
<dict>
<key>
nam
e
</key>
<string>
constant.character.escape.newline.python
</string>
<key>
includ
e
</key>
<string>
#regular_expressions
</string>
</dict>
<key>
4
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.backlash.python
</string>
</array>
</dict>
<key>
5
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.double-quote.python
</string>
</dict>
<key>
6
</key>
<key>
begin
</key>
<string>
([uU]R)(""")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.single-quote
.python
</string>
<string>
storage.type.string
.python
</string>
</dict>
<key>
7
</key>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.bell
.python
</string>
<string>
punctuation.definition.string.begin
.python
</string>
</dict>
<key>
8
</key>
</dict>
<key>
comment
</key>
<string>
single quoted unicode-raw string without regular expression highlighting
</string>
<key>
end
</key>
<string>
"""
</string>
<key>
endCaptures
</key>
<dict>
<key>
0
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.backspace.python
</string>
<string>
punctuation.definition.string.end.python
</string>
</dict>
</dict>
<key>
9
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.formfeed.python
</string>
<string>
string.quoted.double.block.unicode-raw.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char_raw_double
</string>
</dict>
<key>
match
</key>
<string>
(\\x[0-9A-F]{2})|(\\[0-7]{3})|(\\\n)|(\\\\)|(\\\")|(\\')|(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)
</string>
</array>
</dict>
<key>
escaped_unicode_char
</key>
<dict>
<key>
captures
</key>
<key>
begin
</key>
<string>
([bB]r)(""")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.unicode.16-bit-hex
.python
</string>
<string>
storage.type.string
.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.unicode.32-bit-hex
.python
</string>
<string>
punctuation.definition.string.begin
.python
</string>
</dict>
<key>
3
</key>
</dict>
<key>
comment
</key>
<string>
single quoted bytes-raw string
</string>
<key>
end
</key>
<string>
"""
</string>
<key>
endCaptures
</key>
<dict>
<key>
0
</key>
<dict>
<key>
name
</key>
<string>
constant.character.escape.unicode.name.python
</string>
</dict>
<string>
punctuation.definition.string.end.python
</string>
</dict>
<key>
match
</key>
<string>
(\\U[0-9A-Fa-f]{8})|(\\u[0-9A-Fa-f]{4})|(\\N\{[a-zA-Z ]+\})
</string>
</dict>
<key>
function_
name
</key>
<dict
>
<key>
name
</key>
<string>
string.quoted.double.block.bytes-raw-regex.python
</string
>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#magic_function_names
</string>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#magic_variable_names
</string>
<string>
#escaped_char_raw_double
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#builtin_exceptions
</string>
<string>
#regular_expressions
</string>
</dict>
</array>
</dict>
<dict>
<key>
include
</key>
<string>
#builtin_functions
</string>
<key>
begin
</key>
<string>
([bB]R)(""")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.type.string.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
include
</key>
<string>
#builtin_types
</string>
<key>
name
</key>
<string>
punctuation.definition.string.begin.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted bytes-raw string without regular expression highlighting
</string>
<key>
end
</key>
<string>
"""
</string>
<key>
endCaptures
</key>
<dict>
<key>
include
</key>
<string>
#generic_names
</string>
<key>
0
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
</array>
</dict>
<key>
generic_names
</key>
<key>
name
</key>
<string>
string.quoted.double.block.bytes-raw.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
match
</key>
<string>
[A-Za-z_][A-Za-z0-9_]*
</string>
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<key>
illegal_names
</key>
<dict>
<key>
match
</key>
<string>
\b(and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield)\b
</string>
<key>
name
</key
>
<string>
invalid.illegal.name.python
</string
>
<key>
include
</key>
<string>
#escaped_char_raw_double
</string>
</dict
>
</array
>
</dict>
<key>
keyword_arguments
</key>
<dict>
<key>
begin
</key>
<string>
\b([a-zA-Z_][a-zA-Z_0-9]*)\s*(=)(?!=
)
</string>
<string>
(r)("""
)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
variable.parameter.function
.python
</string>
<string>
storage.type.string
.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
keyword.operator.assignment
.python
</string>
<string>
punctuation.definition.string.begin
.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
double quoted raw string
</string>
<key>
end
</key>
<string>
\s*(?:(,)|(?=$\n?|[\)\:]))
</string>
<string>
"""
</string>
<key>
endCaptures
</key>
<dict>
<key>
1
</key>
<key>
0
</key>
<dict>
<key>
name
</key>
<string>
punctuation.separator.parameters
.python
</string>
<string>
punctuation.definition.string.end
.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.block.raw-regex.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
$self
</string>
<string>
#constant_placeholder
</string>
</dict>
</array>
<dict>
<key>
include
</key>
<string>
#escaped_char_raw_double
</string>
</dict>
<key>
language_variables
</key>
<dict>
<key>
match
</key>
<string>
\b(self|cls)\b
</string>
<key>
name
</key
>
<string>
variable.language.python
</string
>
<key>
include
</key>
<string>
#regular_expressions
</string>
</dict
>
</array
>
</dict>
<key>
line_continuation
</key>
<dict>
<key>
captures
</key>
<key>
begin
</key>
<string>
(R)(""")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.separator.continuation.line
.python
</string>
<string>
storage.type.string
.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
invalid.illegal.unexpected-text.python
</string>
</dict>
<string>
punctuation.definition.string.begin.python
</string>
</dict>
<key>
match
</key>
<string>
(\\)(.*)$\n?
</string>
</dict>
<key>
magic_function_names
</key>
<dict>
<key>
comment
</key>
<string>
these methods have magic interpretation by python and are generally called indirectly through syntactic constructs
</string>
<key>
match
</key>
<string>
(?x)\b(__(?:
abs|add|and|call|cmp|coerce|complex|contains|del|delattr|
delete|delitem|delslice|div|divmod|enter|eq|exit|float|
floordiv|ge|get|getattr|getattribute|getitem|getslice|gt|
hash|hex|iadd|iand|idiv|ifloordiv|ilshift|imod|imul|init|
int|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|
long|lshift|lt|mod|mul|ne|neg|new|nonzero|oct|or|pos|pow|
radd|rand|rdiv|rdivmod|repr|rfloordiv|rlshift|rmod|rmul|ror|
rpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|
setslice|str|sub|truediv|unicode|xor
)__)\b
</string>
<key>
name
</key>
<string>
support.function.magic.python
</string>
</dict>
<key>
magic_variable_names
</key>
<string>
double quoted raw string
</string>
<key>
end
</key>
<string>
"""
</string>
<key>
endCaptures
</key>
<dict>
<key>
0
</key>
<dict>
<key>
comment
</key>
<string>
magic variables which a class/module may have.
</string>
<key>
match
</key>
<string>
\b__(all|bases|class|debug|dict|doc|file|members|metaclass|methods|name|slots|weakref)__\b
</string>
<key>
name
</key>
<string>
support.variable.magic
.python
</string>
<string>
punctuation.definition.string.end
.python
</string>
</dict>
<key>
regular_expressions
</key>
<dict>
<key>
comment
</key>
<string>
Changed disabled to 1 to turn off syntax highlighting in “r” strings.
</string>
<key>
disabled
</key>
<integer>
0
</integer>
</dict>
<key>
name
</key>
<string>
string.quoted.double.block.raw.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
source.regexp.python
</string>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char_raw_double
</string>
</dict>
</array>
</dict>
<key>
string_quoted_double
</key>
<dict>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
([uU]
r
)(""")
</string>
<string>
([uU])(""")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -1599,7 +2416,7 @@
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted unicode-raw
string
</string>
<string>
double quoted unicode
string
</string>
<key>
end
</key>
<string>
"""
</string>
<key>
endCaptures
</key>
...
...
@@ -1611,7 +2428,7 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.block.unicode
-raw-regex
.python
</string>
<string>
string.quoted.double.block.unicode.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -1626,15 +2443,11 @@
<key>
include
</key>
<string>
#escaped_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#regular_expressions
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
([
uU]R
)(""")
</string>
<string>
([
bB]
)(""")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -1649,7 +2462,7 @@
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted unicode-raw string without regular expression highlight
ing
</string>
<string>
double quoted bytes str
ing
</string>
<key>
end
</key>
<string>
"""
</string>
<key>
endCaptures
</key>
...
...
@@ -1661,7 +2474,7 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.block.
unicode-raw
.python
</string>
<string>
string.quoted.double.block.
bytes
.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -1678,9 +2491,53 @@
</dict>
</array>
</dict>
<dict>
<key>
captures
</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>
<key>
3
</key>
<dict>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char_raw_double
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#regular_expressions
</string>
</dict>
</array>
</dict>
<key>
4
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
double-quoted raw string
</string>
<key>
match
</key>
<string>
([uU]r)(")((?:[^"\\]|\\.)*)(")
</string>
<key>
name
</key>
<string>
string.quoted.double.single-line.unicode-raw-regex.python
</string>
</dict>
<dict>
<key>
begin
</key>
<string>
(
r)(""
")
</string>
<string>
(
[uU]R)(
")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -1695,19 +2552,24 @@
</dict>
</dict>
<key>
comment
</key>
<string>
double
quoted raw string
</string>
<string>
double
-
quoted raw string
</string>
<key>
end
</key>
<string>
"""
</string>
<string>
(")|(\n)
</string>
<key>
endCaptures
</key>
<dict>
<key>
0
</key>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
invalid.illegal.unclosed-string.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.
block.raw-regex
.python
</string>
<string>
string.quoted.double.
single-line.unicode-raw
.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -1716,17 +2578,13 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#regular_expressions
</string>
<string>
#escaped_char_raw_double
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(
R)(""
")
</string>
<string>
(
[bB]r)(
")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -1741,19 +2599,24 @@
</dict>
</dict>
<key>
comment
</key>
<string>
double
quoted raw string
</string>
<string>
double
-
quoted raw string
</string>
<key>
end
</key>
<string>
"""
</string>
<string>
(")|(\n)
</string>
<key>
endCaptures
</key>
<dict>
<key>
0
</key>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
invalid.illegal.unclosed-string.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.
block.raw
.python
</string>
<string>
string.quoted.double.
single-line.bytes-raw-regex
.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -1762,13 +2625,17 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
<string>
#escaped_char_raw_double
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#regular_expressions
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
([
uU])(""
")
</string>
<string>
([
bB]R)(
")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -1783,19 +2650,24 @@
</dict>
</dict>
<key>
comment
</key>
<string>
double
quoted unicode
string
</string>
<string>
double
-quoted raw
string
</string>
<key>
end
</key>
<string>
"""
</string>
<string>
(")|(\n)
</string>
<key>
endCaptures
</key>
<dict>
<key>
0
</key>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
invalid.illegal.unclosed-string.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.
block.unicode
.python
</string>
<string>
string.quoted.double.
single-line.bytes-raw
.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -1804,11 +2676,7 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
<string>
#escaped_char_raw_double
</string>
</dict>
</array>
</dict>
...
...
@@ -1835,11 +2703,7 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
<string>
#escaped_char_raw_double
</string>
</dict>
<dict>
<key>
include
</key>
...
...
@@ -1856,13 +2720,13 @@
<key>
comment
</key>
<string>
double-quoted raw string
</string>
<key>
match
</key>
<string>
(
[uU]
r)(")((?:[^"\\]|\\.)*)(")
</string>
<string>
(r)(")((?:[^"\\]|\\.)*)(")
</string>
<key>
name
</key>
<string>
string.quoted.double.single-line.
unicode-
raw-regex.python
</string>
<string>
string.quoted.double.single-line.raw-regex.python
</string>
</dict>
<dict>
<key>
begin
</key>
<string>
(
[uU]
R)(")
</string>
<string>
(R)(")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -1894,7 +2758,7 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.single-line.
unicode-
raw.python
</string>
<string>
string.quoted.double.single-line.raw.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -1903,16 +2767,14 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
<string>
#escaped_char_raw_double
</string>
</dict>
</array>
</dict>
<dict>
<key>
captures
</key>
<key>
begin
</key>
<string>
([uU])(")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
...
...
@@ -1924,8 +2786,26 @@
<key>
name
</key>
<string>
punctuation.definition.string.begin.python
</string>
</dict>
<key>
3
</key>
</dict>
<key>
comment
</key>
<string>
double quoted unicode string
</string>
<key>
end
</key>
<string>
(")|(\n)
</string>
<key>
endCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
invalid.illegal.unclosed-string.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.single-line.unicode.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -1934,30 +2814,17 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped
_char
</string>
<string>
#escaped_unicode
_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#regular_expressions
</string>
<string>
#escaped_char
</string>
</dict>
</array>
</dict>
<key>
4
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
double-quoted raw string
</string>
<key>
match
</key>
<string>
(r)(")((?:[^"\\]|\\.)*)(")
</string>
<key>
name
</key>
<string>
string.quoted.double.single-line.raw-regex.python
</string>
</dict>
<dict>
<key>
begin
</key>
<string>
(
R
)(")
</string>
<string>
(
[bB]
)(")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -1972,7 +2839,7 @@
</dict>
</dict>
<key>
comment
</key>
<string>
double
-quoted raw
string
</string>
<string>
double
quoted bytes
string
</string>
<key>
end
</key>
<string>
(")|(\n)
</string>
<key>
endCaptures
</key>
...
...
@@ -1989,13 +2856,17 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.single-line.
raw
.python
</string>
<string>
string.quoted.double.single-line.
bytes
.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
...
...
@@ -2004,22 +2875,62 @@
</dict>
<dict>
<key>
begin
</key>
<string>
(
[uU])("
)
</string>
<string>
(
""")(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)
)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.type.string
.python
</string>
<string>
punctuation.definition.string.begin
.python
</string>
</dict>
<key>
2
</key>
</dict>
<key>
comment
</key>
<string>
double quoted string
</string>
<key>
end
</key>
<string>
"""
</string>
<key>
endCaptures
</key>
<dict>
<key>
0
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.block.sql.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
source.sql
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(")(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.begin.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
double quoted
unicode
string
</string>
<string>
double quoted string
</string>
<key>
end
</key>
<string>
(")|(\n)
</string>
<key>
endCaptures
</key>
...
...
@@ -2036,7 +2947,14 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.single-line.unicode.python
</string>
<string>
string.quoted.double.single-line.sql.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
captures
</key>
<dict>
<key>
0
</key>
<dict>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -2051,11 +2969,21 @@
<key>
include
</key>
<string>
#escaped_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
source.sql
</string>
</dict>
</array>
</dict>
</dict>
<key>
match
</key>
<string>
(\G|^)([^"\\]|\\.)*(?="|$)
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(""")
(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))
</string>
<string>
(""")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -2077,7 +3005,7 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.block.
sql.
python
</string>
<string>
string.quoted.double.block.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -2086,17 +3014,17 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
<string>
#escaped_
unicode_
char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
source.sql
</string>
<string>
#escaped_char
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(")
(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))
</string>
<string>
(")
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -2123,38 +3051,95 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.double.single-line.
sql.
python
</string>
<string>
string.quoted.double.single-line.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>
string_quoted_single
</key>
<dict>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
([uU]r)(''')
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.type.string.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.begin.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted unicode-raw string
</string>
<key>
end
</key>
<string>
'''
</string>
<key>
endCaptures
</key>
<dict>
<key>
0
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.single.block.unicode-raw-regex.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
source.sql
</string>
<string>
#escaped_char_raw_single
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#regular_expressions
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(
"""
)
</string>
<string>
(
[uU]R)('''
)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.type.string.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.begin.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
double quoted
string
</string>
<string>
single quoted unicode-raw
string
</string>
<key>
end
</key>
<string>
"""
</string>
<string>
'''
</string>
<key>
endCaptures
</key>
<dict>
<key>
0
</key>
...
...
@@ -2164,7 +3149,7 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.
double.block
.python
</string>
<string>
string.quoted.
single.block.unicode-raw
.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -2173,40 +3158,40 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
<string>
#escaped_char
_raw_single
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(
"
)
</string>
<string>
(
[bB]r)('''
)
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.type.string.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.begin.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
double quoted
string
</string>
<string>
single quoted bytes-raw
string
</string>
<key>
end
</key>
<string>
(")|(\n)
</string>
<string>
'''
</string>
<key>
endCaptures
</key>
<dict>
<key>
1
</key>
<key>
0
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
invalid.illegal.unclosed-string.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.
double.single-line
.python
</string>
<string>
string.quoted.
single.block.bytes-raw-regex
.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -2215,19 +3200,17 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
<string>
#escaped_char
_raw_single
</string>
</dict>
</array>
<dict>
<key>
include
</key>
<string>
#regular_expressions
</string>
</dict>
</array>
</dict>
<key>
string_quoted_single
</key>
<dict>
<key>
patterns
</key>
<array>
<dict>
<key>
begin
</key>
<string>
([
uU]r
)(''')
</string>
<string>
([
bB]R
)(''')
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -2242,7 +3225,7 @@
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted
unicode
-raw string
</string>
<string>
single quoted
bytes
-raw string
</string>
<key>
end
</key>
<string>
'''
</string>
<key>
endCaptures
</key>
...
...
@@ -2254,7 +3237,7 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.single.block.
unicode-raw-regex
.python
</string>
<string>
string.quoted.single.block.
bytes-raw
.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -2263,21 +3246,13 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#regular_expressions
</string>
<string>
#escaped_char_raw_single
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(
[uU]R
)(''')
</string>
<string>
(
r
)(''')
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -2292,7 +3267,7 @@
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted
unicode-
raw string
</string>
<string>
single quoted raw string
</string>
<key>
end
</key>
<string>
'''
</string>
<key>
endCaptures
</key>
...
...
@@ -2304,7 +3279,7 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.single.block.
unicode-raw
.python
</string>
<string>
string.quoted.single.block.
raw-regex
.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -2313,17 +3288,17 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_
unicode_char
</string>
<string>
#escaped_
char_raw_single
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#
escaped_char
</string>
<string>
#
regular_expressions
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(
r
)(''')
</string>
<string>
(
R
)(''')
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -2350,7 +3325,7 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.single.block.raw
-regex
.python
</string>
<string>
string.quoted.single.block.raw.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -2359,17 +3334,13 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#regular_expressions
</string>
<string>
#escaped_char_raw_single
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(
R
)(''')
</string>
<string>
(
[uU]
)(''')
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -2384,7 +3355,7 @@
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted
raw
string
</string>
<string>
single quoted
unicode
string
</string>
<key>
end
</key>
<string>
'''
</string>
<key>
endCaptures
</key>
...
...
@@ -2396,13 +3367,17 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.single.block.
raw
.python
</string>
<string>
string.quoted.single.block.
unicode
.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
...
...
@@ -2411,7 +3386,7 @@
</dict>
<dict>
<key>
begin
</key>
<string>
([
uU
])(''')
</string>
<string>
([
bB
])(''')
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
...
...
@@ -2426,7 +3401,7 @@
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted
unicode
string
</string>
<string>
single quoted
bytes
string
</string>
<key>
end
</key>
<string>
'''
</string>
<key>
endCaptures
</key>
...
...
@@ -2438,7 +3413,7 @@
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.single.block.
unicode
.python
</string>
<string>
string.quoted.single.block.
bytes
.python
</string>
<key>
patterns
</key>
<array>
<dict>
...
...
@@ -2478,11 +3453,7 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
<string>
#escaped_char_raw_single
</string>
</dict>
<dict>
<key>
include
</key>
...
...
@@ -2520,7 +3491,7 @@
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted raw string
</string>
<string>
single quoted
unicode-
raw string
</string>
<key>
end
</key>
<string>
(')|(\n)
</string>
<key>
endCaptures
</key>
...
...
@@ -2546,11 +3517,105 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
<string>
#escaped_char_raw_single
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
([bB]r)(')
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.type.string.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.begin.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted bytes-raw string
</string>
<key>
end
</key>
<string>
(')|(\n)
</string>
<key>
endCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
invalid.illegal.unclosed-string.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.single.single-line.bytes-raw-regex.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char_raw_single
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#regular_expressions
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
([bB]R)(')
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.type.string.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.begin.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted bytes-raw string
</string>
<key>
end
</key>
<string>
(')|(\n)
</string>
<key>
endCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
invalid.illegal.unclosed-string.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.single.single-line.bytes-raw.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char_raw_single
</string>
</dict>
</array>
</dict>
...
...
@@ -2577,7 +3642,7 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
<string>
#escaped_char
_raw_single
</string>
</dict>
<dict>
<key>
include
</key>
...
...
@@ -2591,8 +3656,6 @@
<string>
punctuation.definition.string.end.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted raw string
</string>
<key>
match
</key>
<string>
(r)(')((?:[^'\\]|\\.)*)(')
</string>
<key>
name
</key>
...
...
@@ -2641,7 +3704,7 @@
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
<string>
#escaped_char
_raw_single
</string>
</dict>
</array>
</dict>
...
...
@@ -2696,6 +3759,57 @@
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
([bB])(')
</string>
<key>
beginCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
storage.type.string.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.begin.python
</string>
</dict>
</dict>
<key>
comment
</key>
<string>
single quoted bytes string
</string>
<key>
end
</key>
<string>
(')|(\n)
</string>
<key>
endCaptures
</key>
<dict>
<key>
1
</key>
<dict>
<key>
name
</key>
<string>
punctuation.definition.string.end.python
</string>
</dict>
<key>
2
</key>
<dict>
<key>
name
</key>
<string>
invalid.illegal.unclosed-string.python
</string>
</dict>
</dict>
<key>
name
</key>
<string>
string.quoted.single.single-line.bytes.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(''')(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))
</string>
...
...
@@ -2727,6 +3841,10 @@
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
...
...
@@ -2767,12 +3885,23 @@
</dict>
<key>
name
</key>
<string>
string.quoted.single.single-line.python
</string>
<key>
patterns
</key>
<array>
<dict>
<key>
captures
</key>
<dict>
<key>
0
</key>
<dict>
<key>
patterns
</key>
<array>
<dict>
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
...
...
@@ -2783,6 +3912,12 @@
</dict>
</array>
</dict>
</dict>
<key>
match
</key>
<string>
(\G|^)([^'\\]|\\.)*(?='|$)
</string>
</dict>
</array>
</dict>
<dict>
<key>
begin
</key>
<string>
(''')
</string>
...
...
@@ -2814,6 +3949,10 @@
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
...
...
@@ -2856,6 +3995,10 @@
<key>
include
</key>
<string>
#constant_placeholder
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_unicode_char
</string>
</dict>
<dict>
<key>
include
</key>
<string>
#escaped_char
</string>
...
...
@@ -2885,3 +4028,4 @@
<string>
F23DB5B2-7D08-11D9-A709-000D93B6E43C
</string>
</dict>
</plist>
extensions/python/test/colorize-fixtures/test.py
浏览文件 @
de4c7a2e
from
banana
import
*
class
Monkey
:
# Bananas the monkey can eat.
capacity
=
10
...
...
@@ -11,3 +10,57 @@ class Monkey:
def
feeding_frenzy
(
self
):
eat
(
9.25
)
return
"Yum yum"
if
1900
<
year
<
2100
and
1
<=
month
<=
12
\
and
1
<=
day
<=
31
and
0
<=
hour
<
24
\
and
0
<=
minute
<
60
and
0
<=
second
<
60
:
# Looks like a valid date
return
1
def
firstn
(
g
,
n
):
for
i
in
range
(
n
):
yield
g
.
next
()
reduce
(
lambda
x
,
y
:
x
+
y
,
[
47
,
11
,
42
,
13
])
woerter
=
{
"house"
:
"Haus"
,
"cat"
:
"Katze"
,
"black"
:
"schwarz"
}
mydictionary
=
{
'foo'
:
23
,
#comment
'bar'
:
"hello"
#sqadsad
}
def
steuern
(
einkommen
):
"""Berechnung der zu zahlenden Steuern fuer ein zu versteuerndes Einkommen von x"""
if
einkommen
<=
8004
:
steuer
=
0
elif
einkommen
<=
13469
:
y
=
(
einkommen
-
8004.0
)
/
10000.0
steuer
=
(
912.17
*
y
+
1400
)
*
y
else
:
steuer
=
einkommen
*
0.44
-
15694
return
steuer
def
beliebig
(
x
,
y
,
*
mehr
):
print
"x="
,
x
,
", x="
,
y
print
"mehr: "
,
mehr
class
Memoize
:
def
__init__
(
self
,
fn
):
self
.
fn
=
fn
self
.
memo
=
{}
def
__call__
(
self
,
*
args
):
if
args
not
in
self
.
memo
:
self
.
memo
[
args
]
=
self
.
fn
(
*
args
)
return
self
.
memo
[
args
]
res
=
re
.
search
(
r
"([0-9-]*)\s*([A-Za-z]+),\s+(.*)"
,
i
)
while
True
:
try
:
n
=
raw_input
(
"Number: "
)
n
=
int
(
n
)
break
except
ValueError
:
print
(
"Not a number"
)
async
with
EXPR
as
VAR
:
BLOCK
\ No newline at end of file
extensions/python/test/colorize-results/test_py.json
浏览文件 @
de4c7a2e
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录