@@ -65,115 +65,279 @@ comments:
65
65
scopes :
66
66
' module' : ' source.python'
67
67
68
- ' comment' : ' comment.line'
69
- ' string' : ' string.quoted'
70
- ' escape_sequence' : ' constant.character.escape'
71
- ' interpolation' : ' meta.embedded'
72
- ' interpolation > "{"' : ' punctuation.section.embedded'
73
- ' interpolation > "}"' : ' punctuation.section.embedded'
68
+ # Keyword
69
+ ' "if"' : ' keyword.control.condition'
70
+ ' "else"' : ' keyword.control.condition'
71
+ ' "elif"' : ' keyword.control.condition'
72
+ ' "while"' : ' keyword.control.loop'
73
+ ' "for"' : ' keyword.control.loop'
74
+ ' "return"' : ' keyword.control.conclusion'
75
+ ' "break"' : ' keyword.control.conclusion'
76
+ ' "continue"' : ' keyword.control.conclusion'
77
+ ' "pass"' : ' keyword.control.conclusion'
78
+ ' "yield"' : ' keyword.control.conclusion'
79
+ ' "raise"' : ' keyword.control.conclusion'
80
+ ' "try"' : ' keyword.control.exception'
81
+ ' "except"' : ' keyword.control.exception'
82
+ ' "finally"' : ' keyword.control.exception'
83
+ ' "import"' : ' keyword.control.package'
84
+ ' "from"' : ' keyword.control.package'
85
+ ' "with"' : ' keyword.control.evaluate'
86
+ ' "as"' : ' keyword.control.evaluate'
87
+ ' "assert"' : ' keyword.control.evaluate'
88
+ ' "await"' : ' keyword.control.asynchronous'
89
+ ' "async"' : ' keyword.control.asynchronous'
90
+
91
+ ' "print"' : ' keyword.control.print'
92
+ ' "exec"' : ' keyword.control.exec'
93
+
94
+ ' "+"' : ' keyword.operator.symbol'
95
+ ' "-"' : ' keyword.operator.symbol'
96
+ ' "*"' : ' keyword.operator.symbol'
97
+ ' "/"' : ' keyword.operator.symbol'
98
+ ' "%"' : ' keyword.operator.symbol'
99
+ ' "**"' : ' keyword.operator.symbol'
100
+ ' "//"' : ' keyword.operator.symbol'
101
+ ' "=="' : ' keyword.operator.symbol'
102
+ ' "!="' : ' keyword.operator.symbol'
103
+ ' "<>"' : ' keyword.operator.symbol'
104
+ ' ">"' : ' keyword.operator.symbol'
105
+ ' "<"' : ' keyword.operator.symbol'
106
+ ' ">="' : ' keyword.operator.symbol'
107
+ ' "<="' : ' keyword.operator.symbol'
108
+ ' "="' : ' keyword.operator.symbol'
109
+ ' ":="' : ' keyword.operator.symbol'
110
+ ' "+="' : ' keyword.operator.symbol'
111
+ ' "-="' : ' keyword.operator.symbol'
112
+ ' "*="' : ' keyword.operator.symbol'
113
+ ' "/="' : ' keyword.operator.symbol'
114
+ ' "%="' : ' keyword.operator.symbol'
115
+ ' "**="' : ' keyword.operator.symbol'
116
+ ' "//="' : ' keyword.operator.symbol'
117
+ ' "&"' : ' keyword.operator.symbol'
118
+ ' "|"' : ' keyword.operator.symbol'
119
+ ' "^"' : ' keyword.operator.symbol'
120
+ ' "~"' : ' keyword.operator.symbol'
121
+ ' "<<"' : ' keyword.operator.symbol'
122
+ ' ">>"' : ' keyword.operator.symbol'
123
+ ' binary_operator > "@"' : ' keyword.operator.symbol'
124
+ ' binary_operator > "@="' : ' keyword.operator.symbol'
125
+ ' "in"' : ' keyword.operator.comparison'
126
+ ' "is"' : ' keyword.operator.comparison'
127
+ ' "and"' : ' keyword.operator.logical'
128
+ ' "or"' : ' keyword.operator.logical'
129
+ ' "not"' : ' keyword.operator.logical'
130
+ ' "del"' : ' keyword.operator.delete'
131
+
132
+ # Storage
133
+ ' "global"' : ' storage.modifier.global'
134
+ ' "nonlocal"' : ' storage.modifier.nonlocal'
135
+
136
+ ' "class"' : ' storage.declaration.class'
137
+ ' "def"' : ' storage.declaration.function'
138
+ ' "lambda"' : ' storage.declaration.function'
139
+
140
+ '''
141
+ type > identifier,
142
+ type > subscript > identifier
143
+ ''' : [
144
+ {
145
+ match : ' ^(bool|bytearray|bytes|complex|dict|float|frozenset|int|list|memoryview|object|range|set|str|tuple)$' ,
146
+ scopes : ' storage.type.language'
147
+ },
148
+ ' storage.type.entity'
149
+ ]
150
+
151
+ # Entity
152
+ '''
153
+ identifier,
154
+ class_definition > argument_list > identifier,
155
+ class_definition > argument_list > keyword_argument > identifier:nth-child(2)
156
+ ''' : [
157
+ {
158
+ exact : ' cls' ,
159
+ scopes : ' entity.variable.support.cls'
160
+ },
161
+ {
162
+ exact : ' self' ,
163
+ scopes : ' entity.variable.support.self'
164
+ }
165
+ ]
166
+
167
+ '''
168
+ parameters > identifier,
169
+ parameters > list_splat > identifier,
170
+ parameters > dictionary_splat > identifier,
171
+ default_parameter > identifier:nth-child(0),
172
+ keyword_argument > identifier:nth-child(0)
173
+ ''' : [
174
+ {
175
+ exact : ' cls' ,
176
+ scopes : ' entity.variable.support.parameter.cls'
177
+ },
178
+ {
179
+ exact : ' self' ,
180
+ scopes : ' entity.variable.support.parameter.self'
181
+ },
182
+ ' entity.variable.parameter'
183
+ ]
184
+
185
+ ' identifier' : [
186
+ {
187
+ match : ' ^(BaseException|Exception|TypeError|StopAsyncIteration|StopIteration|ImportError|ModuleNotFoundError|OSError|ConnectionError|BrokenPipeError|ConnectionAbortedError|ConnectionRefusedError|ConnectionResetError|BlockingIOError|ChildProcessError|FileExistsError|FileNotFoundError|IsADirectoryError|NotADirectoryError|InterruptedError|PermissionError|ProcessLookupError|TimeoutError|EOFError|RuntimeError|RecursionError|NotImplementedError|NameError|UnboundLocalError|AttributeError|SyntaxError|IndentationError|TabError|LookupError|IndexError|KeyError|ValueError|UnicodeError|UnicodeEncodeError|UnicodeDecodeError|UnicodeTranslateError|AssertionError|ArithmeticError|FloatingPointError|OverflowError|ZeroDivisionError|SystemError|ReferenceError|BufferError|MemoryError|Warning|UserWarning|DeprecationWarning|PendingDeprecationWarning|SyntaxWarning|RuntimeWarning|FutureWarning|ImportWarning|UnicodeWarning|BytesWarning|ResourceWarning|GeneratorExit|SystemExit|KeyboardInterrupt)$' ,
188
+ scopes : ' entity.type.class.exception.support'
189
+ },
190
+ ' entity.variable'
191
+ ]
192
+
193
+ '''
194
+ class_definition > argument_list > identifier,
195
+ class_definition > argument_list > keyword_argument > identifier:nth-child(2)
196
+ ''' : [
197
+ {
198
+ match : ' ^(BaseException|Exception|TypeError|StopAsyncIteration|StopIteration|ImportError|ModuleNotFoundError|OSError|ConnectionError|BrokenPipeError|ConnectionAbortedError|ConnectionRefusedError|ConnectionResetError|BlockingIOError|ChildProcessError|FileExistsError|FileNotFoundError|IsADirectoryError|NotADirectoryError|InterruptedError|PermissionError|ProcessLookupError|TimeoutError|EOFError|RuntimeError|RecursionError|NotImplementedError|NameError|UnboundLocalError|AttributeError|SyntaxError|IndentationError|TabError|LookupError|IndexError|KeyError|ValueError|UnicodeError|UnicodeEncodeError|UnicodeDecodeError|UnicodeTranslateError|AssertionError|ArithmeticError|FloatingPointError|OverflowError|ZeroDivisionError|SystemError|ReferenceError|BufferError|MemoryError|Warning|UserWarning|DeprecationWarning|PendingDeprecationWarning|SyntaxWarning|RuntimeWarning|FutureWarning|ImportWarning|UnicodeWarning|BytesWarning|ResourceWarning|GeneratorExit|SystemExit|KeyboardInterrupt)$' ,
199
+ scopes : ' entity.type.class.exception.inherited.support'
200
+ },
201
+ ' entity.type.class.inherited'
202
+ ]
74
203
75
- ' class_definition > identifier' : ' entity.name.type.class'
76
- ' function_definition > identifier' : ' entity.name.function'
77
204
' call > identifier:nth-child(0)' : [
78
- {match : ' ^(abs|all|any|ascii|bin|bool|breakpoint|bytearray|bytes|callable|chr|classmethod|compile|complex|delattr|dict|dir|divmod|enumerate|eval|exec|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|isinstance|issubclass|iter|len|list|locals|map|max|memoryview|min|next|object|oct|open|ord|pow|print|property|range|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|vars|zip|__import__)$' ,
79
- scopes : ' support.function' },
80
- ' entity.name.function'
81
- ]
82
- ' call > attribute > identifier:nth-child(2)' : ' entity.name.function'
205
+ {
206
+ match : ' ^(bool|bytearray|bytes|complex|dict|float|frozenset|int|list|memoryview|object|range|set|str|tuple)$' ,
207
+ scopes : ' entity.type.constructor.language.call'
208
+ },
209
+ {
210
+ exact : ' super' ,
211
+ scopes : ' entity.function.support.call.super'
212
+ },
213
+ {
214
+ match : ' ^(abs|all|any|ascii|bin|breakpoint|callable|chr|classmethod|compile|delattr|dir|divmod|enumerate|eval|exec|filter|format|getattr|globals|hasattr|hash|help|hex|id|input|isinstance|issubclass|iter|len|locals|map|max|min|next|oct|open|ord|pow|print|property|repr|reversed|round|setattr|slice|sorted|staticmethod|sum|type|vars|zip|__import__)$' ,
215
+ scopes : ' entity.function.support.call'
216
+ },
217
+ ' entity.function.call'
218
+ ]
219
+
220
+ ' decorator > dotted_name > identifier' : [
221
+ {
222
+ match : ' ^(classmethod|property|staticmethod)$' ,
223
+ scopes : ' entity.function.support'
224
+ },
225
+ ' entity'
226
+ ]
227
+
228
+ ' call > attribute > identifier:nth-child(2)' : ' entity.function.method.call'
229
+
230
+ ' function_definition > identifier' : ' entity.function.definition'
231
+
232
+ ' attribute > identifier:nth-child(2)' : ' entity.variable.member'
233
+
234
+ ' class_definition > identifier' : ' entity.type.class.definition'
83
235
84
- ' identifier' :
85
- {match :
86
- ' ^(BaseException|Exception|TypeError|StopAsyncIteration|StopIteration|ImportError|ModuleNotFoundError|OSError|ConnectionError|BrokenPipeError|ConnectionAbortedError|ConnectionRefusedError|ConnectionResetError|BlockingIOError|ChildProcessError|FileExistsError|FileNotFoundError|IsADirectoryError|NotADirectoryError|InterruptedError|PermissionError|ProcessLookupError|TimeoutError|EOFError|RuntimeError|RecursionError|NotImplementedError|NameError|UnboundLocalError|AttributeError|SyntaxError|IndentationError|TabError|LookupError|IndexError|KeyError|ValueError|UnicodeError|UnicodeEncodeError|UnicodeDecodeError|UnicodeTranslateError|AssertionError|ArithmeticError|FloatingPointError|OverflowError|ZeroDivisionError|SystemError|ReferenceError|BufferError|MemoryError|Warning|UserWarning|DeprecationWarning|PendingDeprecationWarning|SyntaxWarning|RuntimeWarning|FutureWarning|ImportWarning|UnicodeWarning|BytesWarning|ResourceWarning|GeneratorExit|SystemExit|KeyboardInterrupt)$'
87
- scopes : ' support.type.exception' }
236
+ '''
237
+ class_definition > argument_list > identifier,
238
+ class_definition > argument_list > attribute > identifier:nth-child(2),
239
+ class_definition > argument_list > keyword_argument > identifier:nth-child(2),
240
+ class_definition > argument_list > keyword_argument > attribute > identifier:nth-child(2)
241
+ ''' : ' entity.type.class.inherited'
88
242
89
- ' attribute > identifier:nth-child(2)' : ' variable.other.object.property'
243
+ # String
244
+ ' string' : ' string.quoted'
245
+ ' format_specifier' : ' string.format'
246
+ ' interpolation' : ' string.interpolation'
90
247
91
- ' decorator' : ' entity.name.function.decorator'
248
+ # Constant
249
+ ' escape_sequence' : [
250
+ {
251
+ match : ' [tf]' ,
252
+ scopes : ' constant.character.escape.whitespace'
253
+ },
254
+ {
255
+ match : ' [nr]' ,
256
+ scopes : ' constant.character.escape.whitespace.newline'
257
+ },
258
+ ' constant.character.escape'
259
+ ]
92
260
93
- ' none' : ' constant.language'
94
- ' true' : ' constant.language'
95
- ' false' : ' constant.language'
261
+ ' none' : ' constant.language.null '
262
+ ' true' : ' constant.language.boolean '
263
+ ' false' : ' constant.language.boolean '
96
264
' integer' : ' constant.numeric'
97
265
' float' : ' constant.numeric'
266
+ ' ellipsis' : ' constant.language.ellipsis.symbol'
98
267
99
- ' type > identifier' : ' support.storage.type'
268
+ # Comment
269
+ ' comment' : ' comment.line'
100
270
101
- ' class_definition > argument_list > attribute ' : ' entity.other.inherited-class '
102
- ' class_definition > argument_list > identifier ' : ' entity.other.inherited-class '
103
- ' class_definition > argument_list > keyword_argument > attribute ' : ' entity.other.inherited-class '
104
- ' class_definition > argument_list > keyword_argument > identifier:nth-child(2) ' : ' entity.other.inherited-class '
271
+ # Punctuation
272
+ ' "." ' : ' punctuation.accessor '
273
+ ' "," ' : ' punctuation.separator '
274
+ ' ":" ' : ' punctuation.definition '
105
275
106
- ' "class"' : ' storage.type.class'
107
- ' "def"' : ' storage.type.function'
108
- ' "lambda"' : ' storage.type.function'
276
+ ' import_prefix > "."' : ' punctuation.definition.import.relative'
109
277
110
- ' "global"' : ' storage.modifier.global'
111
- ' "nonlocal"' : ' storage.modifier.nonlocal'
278
+ ' typed_default_parameter > ":"' : ' punctuation.definition.type'
279
+ ' assignment > ":"' : ' punctuation.definition.type'
280
+ ' typed_parameters > ":"' : ' punctuation.definition.type'
281
+ ' "->"' : ' punctuation.definition.type.return'
282
+
283
+ ' slice > ":"' : ' punctuation.separator.slice'
284
+ ' pair > ":"' : ' punctuation.separator.pair'
285
+
286
+ ' decorator > "@"' : ' punctuation.definition.decorator'
287
+
288
+ ' future_import_statement > "("' : ' punctuation.definition.import'
289
+ ' future_import_statement > ")"' : ' punctuation.definition.import'
290
+ ' import_from_statement > "("' : ' punctuation.definition.import'
291
+ ' import_from_statement > ")"' : ' punctuation.definition.import'
292
+
293
+ ' parameters > "("' : ' punctuation.definition.parameters'
294
+ ' parameters > ")"' : ' punctuation.definition.parameters'
295
+
296
+ ' argument_list > "("' : ' punctuation.definition.arguments'
297
+ ' argument_list > ")"' : ' punctuation.definition.arguments'
298
+
299
+ ' parenthesized_expression > "("' : ' punctuation.definition.expression'
300
+ ' parenthesized_expression > ")"' : ' punctuation.definition.expression'
301
+ ' generator_expression > "("' : ' punctuation.definition.generator'
302
+ ' generator_expression > ")"' : ' punctuation.definition.generator'
303
+
304
+ ' tuple > "("' : ' punctuation.definition.tuple'
305
+ ' tuple > ")"' : ' punctuation.definition.tuple'
306
+
307
+ ' subscript > "["' : ' punctuation.accessor'
308
+ ' subscript > "]"' : ' punctuation.accessor'
309
+
310
+ ' list > "["' : ' punctuation.definition.list'
311
+ ' list > "]"' : ' punctuation.definition.list'
312
+ ' list_comprehension > "["' : ' punctuation.definition.list'
313
+ ' list_comprehension > "]"' : ' punctuation.definition.list'
314
+
315
+ ' dictionary > "{"' : ' punctuation.definition.dictionary'
316
+ ' dictionary > "}"' : ' punctuation.definition.dictionary'
317
+ ' dictionary_comprehension > "{"' : ' punctuation.definition.dictionary'
318
+ ' dictionary_comprehension > "}"' : ' punctuation.definition.dictionary'
319
+
320
+ ' set > "{"' : ' punctuation.definition.set'
321
+ ' set > "}"' : ' punctuation.definition.set'
322
+ ' set_comprehension > "{"' : ' punctuation.definition.set'
323
+ ' set_comprehension > "}"' : ' punctuation.definition.set'
324
+
325
+ ' interpolation > "{"' : ' punctuation.definition.interpolation'
326
+ ' interpolation > "}"' : ' punctuation.definition.interpolation'
327
+
328
+ ' format_expression > "{"' : ' punctuation.definition.format'
329
+ ' format_expression > "}"' : ' punctuation.definition.format'
330
+ ' format_specifier > ":"' : ' punctuation.definition.format'
331
+
332
+ ' ERROR > "."' : ' punctuation.invalid.illegal'
333
+ ' ERROR > ","' : ' punctuation.invalid.illegal'
334
+ ' ERROR > ":"' : ' punctuation.invalid.illegal'
335
+ ' ERROR > "{"' : ' punctuation.invalid.illegal'
336
+ ' ERROR > "}"' : ' punctuation.invalid.illegal'
337
+ ' ERROR > "("' : ' punctuation.invalid.illegal'
338
+ ' ERROR > ")"' : ' punctuation.invalid.illegal'
339
+ ' ERROR > "["' : ' punctuation.invalid.illegal'
340
+ ' ERROR > "]"' : ' punctuation.invalid.illegal'
112
341
113
- ' parameters > identifier' : ' variable.parameter.function'
114
- ' parameters > list_splat > identifier' : ' variable.parameter.function'
115
- ' parameters > dictionary_splat > identifier' : ' variable.parameter.function'
116
- ' default_parameter > identifier:nth-child(0)' : ' variable.parameter.function'
117
- ' keyword_argument > identifier:nth-child(0)' : ' variable.parameter.function'
118
-
119
- ' "if"' : ' keyword.control'
120
- ' "else"' : ' keyword.control'
121
- ' "elif"' : ' keyword.control'
122
- ' "while"' : ' keyword.control'
123
- ' "for"' : ' keyword.control'
124
- ' "return"' : ' keyword.control'
125
- ' "break"' : ' keyword.control'
126
- ' "continue"' : ' keyword.control'
127
- ' "pass"' : ' keyword.control'
128
- ' "raise"' : ' keyword.control'
129
- ' "yield"' : ' keyword.control'
130
- ' "await"' : ' keyword.control'
131
- ' "async"' : ' keyword.control'
132
- ' "try"' : ' keyword.control'
133
- ' "except"' : ' keyword.control'
134
- ' "with"' : ' keyword.control'
135
- ' "as"' : ' keyword.control'
136
- ' "finally"' : ' keyword.control'
137
- ' "import"' : ' keyword.control'
138
- ' "from"' : ' keyword.control'
139
-
140
- ' "print"' : ' keyword.other'
141
- ' "assert"' : ' keyword.other'
142
- ' "exec"' : ' keyword.other'
143
- ' "del"' : ' keyword.other'
144
-
145
- ' "+"' : ' keyword.operator'
146
- ' "-"' : ' keyword.operator'
147
- ' "*"' : ' keyword.operator'
148
- ' "/"' : ' keyword.operator'
149
- ' "%"' : ' keyword.operator'
150
- ' "**"' : ' keyword.operator'
151
- ' "//"' : ' keyword.operator'
152
- ' "=="' : ' keyword.operator'
153
- ' "!="' : ' keyword.operator'
154
- ' "<>"' : ' keyword.operator'
155
- ' ">"' : ' keyword.operator'
156
- ' "<"' : ' keyword.operator'
157
- ' ">="' : ' keyword.operator'
158
- ' "<="' : ' keyword.operator'
159
- ' "="' : ' keyword.operator'
160
- ' "+="' : ' keyword.operator'
161
- ' "-="' : ' keyword.operator'
162
- ' "*="' : ' keyword.operator'
163
- ' "/="' : ' keyword.operator'
164
- ' "%="' : ' keyword.operator'
165
- ' "**="' : ' keyword.operator'
166
- ' "//="' : ' keyword.operator'
167
- ' "&"' : ' keyword.operator'
168
- ' "|"' : ' keyword.operator'
169
- ' "^"' : ' keyword.operator'
170
- ' "~"' : ' keyword.operator'
171
- ' "<<"' : ' keyword.operator'
172
- ' ">>"' : ' keyword.operator'
173
- ' binary_operator > "@"' : ' keyword.operator'
174
- ' binary_operator > "@="' : ' keyword.operator'
175
- ' "in"' : ' keyword.operator.logical.python'
176
- ' "and"' : ' keyword.operator.logical.python'
177
- ' "or"' : ' keyword.operator.logical.python'
178
- ' "not"' : ' keyword.operator.logical.python'
179
- ' "is"' : ' keyword.operator.logical.python'
342
+ # Meta
343
+ ' decorator' : ' meta.decorator'
0 commit comments