Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 7d0f2b2

Browse files
Update the syntax to Python 3.10
Update the built-ins, dunders and add `match` and `case` keywords.
1 parent 5b5f388 commit 7d0f2b2

File tree

16 files changed

+2028
-103
lines changed

16 files changed

+2028
-103
lines changed

‎grammars/MagicPython.cson‎

Lines changed: 49 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,18 @@ repository:
308308
name: "storage.type.class.python"
309309
match: "\\b(?<!\\.)(class)\\b"
310310
}
311+
{
312+
match: '''
313+
(?x)
314+
^\\s*(
315+
case | match
316+
)(?=\\s*([-+\\w\\d(\\[{'":#]|$))\\b
317+
318+
'''
319+
captures:
320+
"1":
321+
name: "keyword.control.flow.python"
322+
}
311323
]
312324
"expression-bare":
313325
comment: "valid Python expressions w/o comments and line continuation"
@@ -1826,14 +1838,14 @@ repository:
18261838
match: '''
18271839
(?x)
18281840
(?<!\\.) \\b(
1829-
__import__ | abs | all | any | ascii | bin | breakpoint | callable
1830-
| chr | compile | copyright | credits | delattr | dir | divmod
1831-
| enumerate | eval | exec | exit | filter | format | getattr
1832-
| globals | hasattr | hash | help | hex | id | input
1833-
| isinstance | issubclass | iter | len | license | locals | map
1834-
| max | memoryview | min | next | oct | open | ord | pow | print
1835-
| quit | range | reload | repr | reversed | round
1836-
| setattr | sorted | sum | vars | zip
1841+
__import__ | abs | aiter | all | any | anext | ascii | bin
1842+
| breakpoint | callable | chr | compile | copyright | credits
1843+
| delattr | dir | divmod | enumerate | eval | exec | exit
1844+
| filter | format | getattr | globals | hasattr | hash | help
1845+
| hex | id | input | isinstance | issubclass | iter | len
1846+
| license | locals | map | max | memoryview | min | next
1847+
| oct | open | ord | pow | print | quit | range | reload | repr
1848+
| reversed | round | setattr | sorted | sum | vars | zip
18371849
)\\b
18381850
18391851
'''
@@ -1876,24 +1888,29 @@ repository:
18761888
(?x)
18771889
\\b(
18781890
__(?:
1879-
abs | add | aenter | aexit | aiter | and | anext | await
1880-
| bool | call | ceil | cmp | coerce | complex | contains
1881-
| copy | deepcopy | del | delattr | delete | delitem
1882-
| delslice | dir | div | divmod | enter | eq | exit | float
1883-
| floor | floordiv | format | ge | get | getattr
1884-
| getattribute | getinitargs | getitem | getnewargs
1885-
| getslice | getstate | gt | hash | hex | iadd | iand | idiv
1886-
| ifloordiv | ilshift | imod | imul | index | init
1887-
| instancecheck | int | invert | ior | ipow | irshift | isub
1888-
| iter | itruediv | ixor | le | len | long | lshift | lt
1889-
| missing | mod | mul | ne | neg | new | next | nonzero | oct | or
1890-
| pos | pow | radd | rand | rdiv | rdivmod | reduce
1891-
| reduce_ex | repr | reversed | rfloordiv | rlshift | rmod
1892-
| rmul | ror | round | rpow | rrshift | rshift | rsub
1893-
| rtruediv | rxor | set | setattr | setitem | setslice
1894-
| setstate | sizeof | str | sub | subclasscheck | truediv
1895-
| trunc | unicode | xor | matmul | rmatmul | imatmul
1896-
| init_subclass | set_name | fspath | bytes | prepare
1891+
abs | add | aenter | aexit | aiter | and | anext
1892+
| await | bool | call | ceil | class_getitem
1893+
| cmp | coerce | complex | contains | copy
1894+
| deepcopy | del | delattr | delete | delitem
1895+
| delslice | dir | div | divmod | enter | eq
1896+
| exit | float | floor | floordiv | format | ge
1897+
| get | getattr | getattribute | getinitargs
1898+
| getitem | getnewargs | getslice | getstate | gt
1899+
| hash | hex | iadd | iand | idiv | ifloordiv |
1900+
| ilshift | imod | imul | index | init
1901+
| instancecheck | int | invert | ior | ipow
1902+
| irshift | isub | iter | itruediv | ixor | le
1903+
| len | long | lshift | lt | missing | mod | mul
1904+
| ne | neg | new | next | nonzero | oct | or | pos
1905+
| pow | radd | rand | rdiv | rdivmod | reduce
1906+
| reduce_ex | repr | reversed | rfloordiv |
1907+
| rlshift | rmod | rmul | ror | round | rpow
1908+
| rrshift | rshift | rsub | rtruediv | rxor | set
1909+
| setattr | setitem | set_name | setslice
1910+
| setstate | sizeof | str | sub | subclasscheck
1911+
| truediv | trunc | unicode | xor | matmul
1912+
| rmatmul | imatmul | init_subclass | set_name
1913+
| fspath | bytes | prepare | length_hint
18971914
)__
18981915
)\\b
18991916
@@ -1907,12 +1924,12 @@ repository:
19071924
(?x)
19081925
\\b(
19091926
__(?:
1910-
all | bases | builtins | class | class_getitem | code | debug
1911-
| defaults | dict | doc | file | func | kwdefaults | members
1912-
| metaclass | methods | module | mro | mro_entries | name
1913-
| qualname | post_init | self | signature | slots | subclasses
1914-
| version | weakref | wrapped | annotations | classcell
1915-
| spec | path | package | future | traceback
1927+
all | annotations | bases | builtins | class
1928+
| closure | code | debug | defaults | dict | doc | file | func
1929+
| globals | kwdefaults | match_args | members | metaclass | methods
1930+
| module | mro | mro_entries | name | qualname | post_init | self
1931+
| signature | slots | subclasses | version | weakref | wrapped
1932+
| classcell | spec | path | package | future | traceback
19161933
)__
19171934
)\\b
19181935

‎grammars/MagicPython.tmLanguage‎

Lines changed: 53 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,22 @@ it's probably control flow like:
471471
<key>match</key>
472472
<string>\b(?&lt;!\.)(class)\b</string>
473473
</dict>
474+
<dict>
475+
<key>match</key>
476+
<string>(?x)
477+
^\s*(
478+
case | match
479+
)(?=\s*([-+\w\d(\[{'":#]|$))\b
480+
</string>
481+
<key>captures</key>
482+
<dict>
483+
<key>1</key>
484+
<dict>
485+
<key>name</key>
486+
<string>keyword.control.flow.python</string>
487+
</dict>
488+
</dict>
489+
</dict>
474490
</array>
475491
</dict>
476492
<key>expression-bare</key>
@@ -2852,14 +2868,14 @@ correctly identify the "in" as a control flow keyword.
28522868
<key>match</key>
28532869
<string>(?x)
28542870
(?&lt;!\.) \b(
2855-
__import__ | abs | all | any | ascii | bin | breakpoint | callable
2856-
| chr | compile | copyright | credits | delattr | dir | divmod
2857-
| enumerate | eval | exec | exit | filter | format | getattr
2858-
| globals | hasattr | hash | help | hex | id | input
2859-
| isinstance | issubclass | iter | len | license | locals | map
2860-
| max | memoryview | min | next | oct | open | ord | pow | print
2861-
| quit | range | reload | repr | reversed | round
2862-
| setattr | sorted | sum | vars | zip
2871+
__import__ | abs | aiter | all | any | anext | ascii | bin
2872+
| breakpoint | callable | chr | compile | copyright | credits
2873+
| delattr | dir | divmod | enumerate | eval | exec | exit
2874+
| filter | format | getattr | globals | hasattr | hash | help
2875+
| hex | id | input | isinstance | issubclass | iter | len
2876+
| license | locals | map | max | memoryview | min | next
2877+
| oct | open | ord | pow | print | quit | range | reload | repr
2878+
| reversed | round | setattr | sorted | sum | vars | zip
28632879
)\b
28642880
</string>
28652881
</dict>
@@ -2904,24 +2920,29 @@ indirectly through syntactic constructs
29042920
<string>(?x)
29052921
\b(
29062922
__(?:
2907-
abs | add | aenter | aexit | aiter | and | anext | await
2908-
| bool | call | ceil | cmp | coerce | complex | contains
2909-
| copy | deepcopy | del | delattr | delete | delitem
2910-
| delslice | dir | div | divmod | enter | eq | exit | float
2911-
| floor | floordiv | format | ge | get | getattr
2912-
| getattribute | getinitargs | getitem | getnewargs
2913-
| getslice | getstate | gt | hash | hex | iadd | iand | idiv
2914-
| ifloordiv | ilshift | imod | imul | index | init
2915-
| instancecheck | int | invert | ior | ipow | irshift | isub
2916-
| iter | itruediv | ixor | le | len | long | lshift | lt
2917-
| missing | mod | mul | ne | neg | new | next | nonzero | oct | or
2918-
| pos | pow | radd | rand | rdiv | rdivmod | reduce
2919-
| reduce_ex | repr | reversed | rfloordiv | rlshift | rmod
2920-
| rmul | ror | round | rpow | rrshift | rshift | rsub
2921-
| rtruediv | rxor | set | setattr | setitem | setslice
2922-
| setstate | sizeof | str | sub | subclasscheck | truediv
2923-
| trunc | unicode | xor | matmul | rmatmul | imatmul
2924-
| init_subclass | set_name | fspath | bytes | prepare
2923+
abs | add | aenter | aexit | aiter | and | anext
2924+
| await | bool | call | ceil | class_getitem
2925+
| cmp | coerce | complex | contains | copy
2926+
| deepcopy | del | delattr | delete | delitem
2927+
| delslice | dir | div | divmod | enter | eq
2928+
| exit | float | floor | floordiv | format | ge
2929+
| get | getattr | getattribute | getinitargs
2930+
| getitem | getnewargs | getslice | getstate | gt
2931+
| hash | hex | iadd | iand | idiv | ifloordiv |
2932+
| ilshift | imod | imul | index | init
2933+
| instancecheck | int | invert | ior | ipow
2934+
| irshift | isub | iter | itruediv | ixor | le
2935+
| len | long | lshift | lt | missing | mod | mul
2936+
| ne | neg | new | next | nonzero | oct | or | pos
2937+
| pow | radd | rand | rdiv | rdivmod | reduce
2938+
| reduce_ex | repr | reversed | rfloordiv |
2939+
| rlshift | rmod | rmul | ror | round | rpow
2940+
| rrshift | rshift | rsub | rtruediv | rxor | set
2941+
| setattr | setitem | set_name | setslice
2942+
| setstate | sizeof | str | sub | subclasscheck
2943+
| truediv | trunc | unicode | xor | matmul
2944+
| rmatmul | imatmul | init_subclass | set_name
2945+
| fspath | bytes | prepare | length_hint
29252946
)__
29262947
)\b
29272948
</string>
@@ -2942,12 +2963,12 @@ indirectly through syntactic constructs
29422963
<string>(?x)
29432964
\b(
29442965
__(?:
2945-
all | bases | builtins | class | class_getitem | code | debug
2946-
| defaults | dict | doc | file | func | kwdefaults | members
2947-
| metaclass | methods | module | mro | mro_entries | name
2948-
| qualname | post_init | self | signature | slots | subclasses
2949-
| version | weakref | wrapped | annotations | classcell
2950-
| spec | path | package | future | traceback
2966+
all | annotations | bases | builtins | class
2967+
| closure | code | debug | defaults | dict | doc | file | func
2968+
| globals | kwdefaults | match_args | members | metaclass | methods
2969+
| module | mro | mro_entries | name | qualname | post_init | self
2970+
| signature | slots | subclasses | version | weakref | wrapped
2971+
| classcell | spec | path | package | future | traceback
29512972
)__
29522973
)\b
29532974
</string>

‎grammars/src/MagicPython.syntax.yaml‎

Lines changed: 44 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,13 @@ repository:
313313
)\b
314314
- name: storage.type.class.python
315315
match: \b(?<!\.)(class)\b
316+
- match: |
317+
(?x)
318+
^\s*(
319+
case | match
320+
)(?=\s*([-+\w\d(\[{'":#]|$))\b
321+
captures:
322+
'1': {name: keyword.control.flow.python}
316323
317324
expression-bare:
318325
comment: valid Python expressions w/o comments and line continuation
@@ -1284,14 +1291,14 @@ repository:
12841291
match: |
12851292
(?x)
12861293
(?<!\.) \b(
1287-
__import__ | abs | all | any | ascii | bin | breakpoint | callable
1288-
| chr | compile | copyright | credits | delattr | dir | divmod
1289-
| enumerate | eval | exec | exit | filter | format | getattr
1290-
| globals | hasattr | hash | help | hex | id | input
1291-
| isinstance | issubclass | iter | len | license | locals | map
1292-
| max | memoryview | min | next | oct | open | ord | pow | print
1293-
| quit | range | reload | repr | reversed | round
1294-
| setattr | sorted | sum | vars | zip
1294+
__import__ | abs | aiter | all | any | anext | ascii | bin
1295+
| breakpoint | callable | chr | compile | copyright | credits
1296+
| delattr | dir | divmod | enumerate | eval | exec | exit
1297+
| filter | format | getattr | globals | hasattr | hash | help
1298+
| hex | id | input | isinstance | issubclass | iter | len
1299+
| license | locals | map | max | memoryview | min | next
1300+
| oct | open | ord | pow | print | quit | range | reload | repr
1301+
| reversed | round | setattr | sorted | sum | vars | zip
12951302
)\b
12961303
12971304
- name: variable.legacy.builtin.python
@@ -1325,24 +1332,29 @@ repository:
13251332
(?x)
13261333
\b(
13271334
__(?:
1328-
abs | add | aenter | aexit | aiter | and | anext | await
1329-
| bool | call | ceil | cmp | coerce | complex | contains
1330-
| copy | deepcopy | del | delattr | delete | delitem
1331-
| delslice | dir | div | divmod | enter | eq | exit | float
1332-
| floor | floordiv | format | ge | get | getattr
1333-
| getattribute | getinitargs | getitem | getnewargs
1334-
| getslice | getstate | gt | hash | hex | iadd | iand | idiv
1335-
| ifloordiv | ilshift | imod | imul | index | init
1336-
| instancecheck | int | invert | ior | ipow | irshift | isub
1337-
| iter | itruediv | ixor | le | len | long | lshift | lt
1338-
| missing | mod | mul | ne | neg | new | next | nonzero | oct | or
1339-
| pos | pow | radd | rand | rdiv | rdivmod | reduce
1340-
| reduce_ex | repr | reversed | rfloordiv | rlshift | rmod
1341-
| rmul | ror | round | rpow | rrshift | rshift | rsub
1342-
| rtruediv | rxor | set | setattr | setitem | setslice
1343-
| setstate | sizeof | str | sub | subclasscheck | truediv
1344-
| trunc | unicode | xor | matmul | rmatmul | imatmul
1345-
| init_subclass | set_name | fspath | bytes | prepare
1335+
abs | add | aenter | aexit | aiter | and | anext
1336+
| await | bool | call | ceil | class_getitem
1337+
| cmp | coerce | complex | contains | copy
1338+
| deepcopy | del | delattr | delete | delitem
1339+
| delslice | dir | div | divmod | enter | eq
1340+
| exit | float | floor | floordiv | format | ge
1341+
| get | getattr | getattribute | getinitargs
1342+
| getitem | getnewargs | getslice | getstate | gt
1343+
| hash | hex | iadd | iand | idiv | ifloordiv |
1344+
| ilshift | imod | imul | index | init
1345+
| instancecheck | int | invert | ior | ipow
1346+
| irshift | isub | iter | itruediv | ixor | le
1347+
| len | long | lshift | lt | missing | mod | mul
1348+
| ne | neg | new | next | nonzero | oct | or | pos
1349+
| pow | radd | rand | rdiv | rdivmod | reduce
1350+
| reduce_ex | repr | reversed | rfloordiv |
1351+
| rlshift | rmod | rmul | ror | round | rpow
1352+
| rrshift | rshift | rsub | rtruediv | rxor | set
1353+
| setattr | setitem | set_name | setslice
1354+
| setstate | sizeof | str | sub | subclasscheck
1355+
| truediv | trunc | unicode | xor | matmul
1356+
| rmatmul | imatmul | init_subclass | set_name
1357+
| fspath | bytes | prepare | length_hint
13461358
)__
13471359
)\b
13481360
captures:
@@ -1354,12 +1366,12 @@ repository:
13541366
(?x)
13551367
\b(
13561368
__(?:
1357-
all | bases | builtins | class | class_getitem | code | debug
1358-
| defaults | dict | doc | file | func | kwdefaults | members
1359-
| metaclass | methods | module | mro | mro_entries | name
1360-
| qualname | post_init | self | signature | slots | subclasses
1361-
| version | weakref | wrapped | annotations | classcell
1362-
| spec | path | package | future | traceback
1369+
all | annotations | bases | builtins | class
1370+
| closure | code | debug | defaults | dict | doc | file | func
1371+
| globals | kwdefaults | match_args | members | metaclass | methods
1372+
| module | mro | mro_entries | name | qualname | post_init | self
1373+
| signature | slots | subclasses | version | weakref | wrapped
1374+
| classcell | spec | path | package | future | traceback
13631375
)__
13641376
)\b
13651377
captures:

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /