|
@@ -163,9 +163,19 @@ syn keyword pythonConditional if elif else
|
163
|
163
|
" we provide a dummy group here to avoid crashing pyrex.vim.
|
164
|
164
|
syn keyword pythonInclude import
|
165
|
165
|
syn keyword pythonImport import
|
|
166
|
+syn match pythonIdentifier "\v[a-zA-Z_][a-zA-Z0-9_]*" nextgroup=FunctionParameters
|
166
|
167
|
syn keyword pythonException try except finally
|
167
|
168
|
syn keyword pythonOperator and in is not or
|
168
|
169
|
|
|
170
|
+" TODO: contain pythonTypeAnno in assignments and non-assigning variable type defs
|
|
171
|
+syn match pythonTypeAnno ":\s*[a-zA-Z0-9_\[\],\s]\+" display contained contains=pythonType
|
|
172
|
+syn keyword pythonType Any AnyStr Callable ClassVar Tuple Union Optional Type TypeVar contained
|
|
173
|
+syn keyword pythonType AbstractSet MutableSet Mapping MutableMapping Sequence MutableSequence ByteString Deque List contained
|
|
174
|
+syn keyword pythonType Set FrozenSet MappingView KeysView ItemsView ValuesView Awaitable Coroutine AsyncIterable contained
|
|
175
|
+syn keyword pythonType AsyncIterator ContextManager Dict DefaultDict Generator AsyncGenerator Text NamedTuple contained
|
|
176
|
+syn keyword pythonType Iterable Iterator Reversible SupportsInt SupportsFloat SupportsAbs SupportsRound Container contained
|
|
177
|
+syn keyword pythonType Hashable Sized Collection contained
|
|
178
|
+
|
169
|
179
|
syn match pythonStatement "\<yield\>" display
|
170
|
180
|
syn match pythonImport "\<from\>" display
|
171
|
181
|
|
|
@@ -179,13 +189,39 @@ else
|
179
|
189
|
syn keyword pythonStatement as nonlocal
|
180
|
190
|
syn match pythonStatement "\<yield\s\+from\>" display
|
181
|
191
|
syn keyword pythonBuiltinObj None True False
|
182
|
|
- syn match pythonFunction "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained
|
|
192
|
+ syn match pythonFunction "[a-zA-Z_][a-zA-Z0-9_]*" nextgroup=FunctionParameters display contained
|
183
|
193
|
syn keyword pythonStatement await async
|
184
|
194
|
syn match pythonStatement "\<async\s\+def\>" nextgroup=pythonFunction skipwhite
|
185
|
195
|
syn match pythonStatement "\<async\s\+with\>" display
|
186
|
196
|
syn match pythonStatement "\<async\s\+for\>" display
|
187
|
197
|
endif
|
188
|
198
|
|
|
199
|
+syn region FunctionParameters start='(' end=')' display contains=
|
|
200
|
+ \ FunctionParameters,
|
|
201
|
+ \ pythonRepeat,
|
|
202
|
+ \ pythonConditional,
|
|
203
|
+ \ pythonComment,
|
|
204
|
+ \ pythonOperator,
|
|
205
|
+ \ pythonNumber,
|
|
206
|
+ \ pythonNumberError,
|
|
207
|
+ \ pythonFloat,
|
|
208
|
+ \ pythonHexNumber,
|
|
209
|
+ \ pythonStatement,
|
|
210
|
+ \ pythonOctNumber,
|
|
211
|
+ \ pythonString,
|
|
212
|
+ \ pythonRawString,
|
|
213
|
+ \ pythonUniString,
|
|
214
|
+ \ pythonExClass,
|
|
215
|
+ \ pythonUniRawString,
|
|
216
|
+ \ pythonNumber,
|
|
217
|
+ \ pythonRawString,
|
|
218
|
+ \ pythonBytes,
|
|
219
|
+ \ pythonBuiltinObj,
|
|
220
|
+ \ pythonNone,
|
|
221
|
+ \ pythonBuiltinFunc,
|
|
222
|
+ \ pythonTypeAnno,
|
|
223
|
+ \ pythonBoolean nextgroup=pythonRaiseFromStatement display contained
|
|
224
|
+
|
189
|
225
|
syn cluster pythonExpression contains=pythonStatement,pythonRepeat,pythonConditional,pythonOperator,pythonNumber,pythonHexNumber,pythonOctNumber,pythonBinNumber,pythonFloat,pythonString,pythonBytes,pythonBoolean,pythonBuiltinObj,pythonBuiltinFunc
|
190
|
226
|
|
191
|
227
|
"
|
|
@@ -425,28 +461,28 @@ endif
|
425
|
461
|
|
426
|
462
|
if s:Enabled("g:python_highlight_builtin_funcs")
|
427
|
463
|
if s:Python2Syntax()
|
428
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(apply|basestring|buffer|callable|coerce)>'
|
429
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(execfile|file|help|intern|long|raw_input)>'
|
430
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(reduce|reload|unichr|unicode|xrange)>'
|
|
464
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(apply|basestring|buffer|callable|coerce)>\ze\(' nextgroup=FunctionParameters
|
|
465
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(execfile|file|help|intern|long|raw_input)>\ze\(' nextgroup=FunctionParameters
|
|
466
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(reduce|reload|unichr|unicode|xrange)>\ze\(' nextgroup=FunctionParameters
|
431
|
467
|
if s:Enabled("g:python_print_as_function")
|
432
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(print)>'
|
|
468
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(print)>\ze\(' nextgroup=FunctionParameters
|
433
|
469
|
endif
|
434
|
470
|
else
|
435
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(ascii|exec|memoryview|print)>'
|
|
471
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(ascii|exec|memoryview|print)\ze\(>' nextgroup=FunctionParameters
|
436
|
472
|
endif
|
437
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(__import__|abs|all|any)>'
|
438
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(bin|bool|bytearray|bytes)>'
|
439
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(chr|classmethod|cmp|compile|complex)>'
|
440
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(delattr|dict|dir|divmod|enumerate|eval)>'
|
441
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(filter|float|format|frozenset|getattr)>'
|
442
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(globals|hasattr|hash|hex|id)>'
|
443
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(input|int|isinstance)>'
|
444
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(issubclass|iter|len|list|locals|map|max)>'
|
445
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(min|next|object|oct|open|ord)>'
|
446
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(pow|property|range)>'
|
447
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(repr|reversed|round|set|setattr)>'
|
448
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(slice|sorted|staticmethod|str|sum|super|tuple)>'
|
449
|
|
- syn match pythonBuiltinFunc '\v(\.)@<!\zs<(type|vars|zip)>'
|
|
473
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(__import__|abs|all|any)>\ze\(' nextgroup=FunctionParameters
|
|
474
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(bin|bool|bytearray|bytes)>\ze\(' nextgroup=FunctionParameters
|
|
475
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(chr|classmethod|cmp|compile|complex)>\ze\(' nextgroup=FunctionParameters
|
|
476
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(delattr|dict|dir|divmod|enumerate|eval)>\ze\(' nextgroup=FunctionParameters
|
|
477
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(filter|float|format|frozenset|getattr)>\ze\(' nextgroup=FunctionParameters
|
|
478
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(globals|hasattr|hash|hex|id)>\ze\(' nextgroup=FunctionParameters
|
|
479
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(input|int|isinstance)>\ze\(' nextgroup=FunctionParameters
|
|
480
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(issubclass|iter|len|list|locals|map|max)>\ze\(' nextgroup=FunctionParameters
|
|
481
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(min|next|object|oct|open|ord)>\ze\(' nextgroup=FunctionParameters
|
|
482
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(pow|property|range)>\ze\(' nextgroup=FunctionParameters
|
|
483
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(repr|reversed|round|set|setattr)>\ze\(' nextgroup=FunctionParameters
|
|
484
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(slice|sorted|staticmethod|str|sum|super|tuple)>\ze\(' nextgroup=FunctionParameters
|
|
485
|
+ syn match pythonBuiltinFunc '\v(\.)@<!\zs<(type|vars|zip)>\ze\(' nextgroup=FunctionParameters
|
450
|
486
|
endif
|
451
|
487
|
|
452
|
488
|
"
|
|
@@ -455,39 +491,39 @@ endif
|
455
|
491
|
|
456
|
492
|
if s:Enabled("g:python_highlight_exceptions")
|
457
|
493
|
if s:Python2Syntax()
|
458
|
|
- syn keyword pythonExClass StandardError
|
|
494
|
+ syn keyword pythonExClass StandardError nextgroup=FunctionParameters
|
459
|
495
|
else
|
460
|
|
- syn keyword pythonExClass BlockingIOError ChildProcessError
|
461
|
|
- syn keyword pythonExClass ConnectionError BrokenPipeError
|
462
|
|
- syn keyword pythonExClass ConnectionAbortedError ConnectionRefusedError
|
463
|
|
- syn keyword pythonExClass ConnectionResetError FileExistsError
|
464
|
|
- syn keyword pythonExClass FileNotFoundError InterruptedError
|
465
|
|
- syn keyword pythonExClass IsADirectoryError NotADirectoryError
|
466
|
|
- syn keyword pythonExClass PermissionError ProcessLookupError TimeoutError
|
467
|
|
-
|
468
|
|
- syn keyword pythonExClass ResourceWarning
|
|
496
|
+ syn keyword pythonExClass BlockingIOError ChildProcessError nextgroup=FunctionParameters
|
|
497
|
+ syn keyword pythonExClass ConnectionError BrokenPipeError nextgroup=FunctionParameters
|
|
498
|
+ syn keyword pythonExClass ConnectionAbortedError ConnectionRefusedError nextgroup=FunctionParameters
|
|
499
|
+ syn keyword pythonExClass ConnectionResetError FileExistsError nextgroup=FunctionParameters
|
|
500
|
+ syn keyword pythonExClass FileNotFoundError InterruptedError nextgroup=FunctionParameters
|
|
501
|
+ syn keyword pythonExClass IsADirectoryError NotADirectoryError nextgroup=FunctionParameters
|
|
502
|
+ syn keyword pythonExClass PermissionError ProcessLookupError TimeoutError nextgroup=FunctionParameters
|
|
503
|
+
|
|
504
|
+ syn keyword pythonExClass ResourceWarning nextgroup=FunctionParameters
|
469
|
505
|
endif
|
470
|
|
- syn keyword pythonExClass BaseException
|
471
|
|
- syn keyword pythonExClass Exception ArithmeticError
|
472
|
|
- syn keyword pythonExClass LookupError EnvironmentError
|
473
|
|
-
|
474
|
|
- syn keyword pythonExClass AssertionError AttributeError BufferError EOFError
|
475
|
|
- syn keyword pythonExClass FloatingPointError GeneratorExit IOError
|
476
|
|
- syn keyword pythonExClass ImportError IndexError KeyError
|
477
|
|
- syn keyword pythonExClass KeyboardInterrupt MemoryError NameError
|
478
|
|
- syn keyword pythonExClass NotImplementedError OSError OverflowError
|
479
|
|
- syn keyword pythonExClass ReferenceError RuntimeError StopIteration
|
480
|
|
- syn keyword pythonExClass SyntaxError IndentationError TabError
|
481
|
|
- syn keyword pythonExClass SystemError SystemExit TypeError
|
482
|
|
- syn keyword pythonExClass UnboundLocalError UnicodeError
|
483
|
|
- syn keyword pythonExClass UnicodeEncodeError UnicodeDecodeError
|
484
|
|
- syn keyword pythonExClass UnicodeTranslateError ValueError VMSError
|
485
|
|
- syn keyword pythonExClass WindowsError ZeroDivisionError
|
486
|
|
-
|
487
|
|
- syn keyword pythonExClass Warning UserWarning BytesWarning DeprecationWarning
|
488
|
|
- syn keyword pythonExClass PendingDepricationWarning SyntaxWarning
|
489
|
|
- syn keyword pythonExClass RuntimeWarning FutureWarning
|
490
|
|
- syn keyword pythonExClass ImportWarning UnicodeWarning
|
|
506
|
+ syn keyword pythonExClass BaseException nextgroup=FunctionParameters
|
|
507
|
+ syn keyword pythonExClass Exception ArithmeticError nextgroup=FunctionParameters
|
|
508
|
+ syn keyword pythonExClass LookupError EnvironmentError nextgroup=FunctionParameters
|
|
509
|
+
|
|
510
|
+ syn keyword pythonExClass AssertionError AttributeError BufferError EOFError nextgroup=FunctionParameters
|
|
511
|
+ syn keyword pythonExClass FloatingPointError GeneratorExit IOError nextgroup=FunctionParameters
|
|
512
|
+ syn keyword pythonExClass ImportError IndexError KeyError nextgroup=FunctionParameters
|
|
513
|
+ syn keyword pythonExClass KeyboardInterrupt MemoryError NameError nextgroup=FunctionParameters
|
|
514
|
+ syn keyword pythonExClass NotImplementedError OSError OverflowError nextgroup=FunctionParameters
|
|
515
|
+ syn keyword pythonExClass ReferenceError RuntimeError StopIteration nextgroup=FunctionParameters
|
|
516
|
+ syn keyword pythonExClass SyntaxError IndentationError TabError nextgroup=FunctionParameters
|
|
517
|
+ syn keyword pythonExClass SystemError SystemExit TypeError nextgroup=FunctionParameters
|
|
518
|
+ syn keyword pythonExClass UnboundLocalError UnicodeError nextgroup=FunctionParameters
|
|
519
|
+ syn keyword pythonExClass UnicodeEncodeError UnicodeDecodeError nextgroup=FunctionParameters
|
|
520
|
+ syn keyword pythonExClass UnicodeTranslateError ValueError VMSError nextgroup=FunctionParameters
|
|
521
|
+ syn keyword pythonExClass WindowsError ZeroDivisionError nextgroup=FunctionParameters
|
|
522
|
+
|
|
523
|
+ syn keyword pythonExClass Warning UserWarning BytesWarning DeprecationWarning nextgroup=FunctionParameters
|
|
524
|
+ syn keyword pythonExClass PendingDepricationWarning SyntaxWarning nextgroup=FunctionParameters
|
|
525
|
+ syn keyword pythonExClass RuntimeWarning FutureWarning nextgroup=FunctionParameters
|
|
526
|
+ syn keyword pythonExClass ImportWarning UnicodeWarning nextgroup=FunctionParameters
|
491
|
527
|
endif
|
492
|
528
|
|
493
|
529
|
if s:Enabled("g:python_slow_sync")
|
|
@@ -577,6 +613,9 @@ if version >= 508 || !exists("did_python_syn_inits")
|
577
|
613
|
|
578
|
614
|
HiLink pythonExClass Structure
|
579
|
615
|
|
|
616
|
+ HiLink pythonTypeAnno Optional
|
|
617
|
+ HiLink pythonType Special
|
|
618
|
+
|
580
|
619
|
delcommand HiLink
|
581
|
620
|
endif
|
582
|
621
|
|