Skip to content

Commit 3685b31

Browse files
author
Michael Doronin
committed
Exceptions highlighted only if no dot is before them
1 parent 41efca6 commit 3685b31

File tree

1 file changed

+29
-33
lines changed

1 file changed

+29
-33
lines changed

syntax/python.vim

Lines changed: 29 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ syn keyword pythonClassVaraible cls
155155
syn keyword pythonStatement break continue del
156156
syn keyword pythonStatement exec return
157157
syn keyword pythonStatement pass yield
158-
syn keyword pythonStatement raise nextgroup=pythonIdentifier skipwhite
158+
syn keyword pythonStatement raise nextgroup=pythonIdentifier,pythonExClass skipwhite
159159
syn keyword pythonStatement global assert
160160
syn keyword pythonStatement lambda
161161
syn keyword pythonStatement with
@@ -472,40 +472,36 @@ endif
472472

473473
if s:Enabled("g:python_highlight_exceptions")
474474
if s:Python2Syntax()
475-
syn keyword pythonExClass StandardError
475+
syn match pythonExClass '\v(\.)@<!\zs<(StandardError)>'
476476
else
477-
syn keyword pythonExClass BlockingIOError ChildProcessError
478-
syn keyword pythonExClass ConnectionError BrokenPipeError
479-
syn keyword pythonExClass ConnectionAbortedError ConnectionRefusedError
480-
syn keyword pythonExClass ConnectionResetError FileExistsError
481-
syn keyword pythonExClass FileNotFoundError InterruptedError
482-
syn keyword pythonExClass IsADirectoryError NotADirectoryError
483-
syn keyword pythonExClass PermissionError ProcessLookupError TimeoutError
484-
syn keyword pythonExClass StopAsyncIteration
485-
486-
syn keyword pythonExClass ResourceWarning
477+
syn match pythonExClass '\v(\.)@<!\zs<(BlockingIOError|ChildProcessError)>'
478+
syn match pythonExClass '\v(\.)@<!\zs<(ConnectionError|BrokenPipeError)>'
479+
syn match pythonExClass '\v(\.)@<!\zs<(ConnectionAbortedError|ConnectionRefusedError)>'
480+
syn match pythonExClass '\v(\.)@<!\zs<(ConnectionResetError|FileExistsError)>'
481+
syn match pythonExClass '\v(\.)@<!\zs<(FileNotFoundError|InterruptedError)>'
482+
syn match pythonExClass '\v(\.)@<!\zs<(IsADirectoryError|NotADirectoryError)>'
483+
syn match pythonExClass '\v(\.)@<!\zs<(PermissionError|ProcessLookupError TimeoutError)>'
484+
syn match pythonExClass '\v(\.)@<!\zs<(StopAsyncIteration|ResourceWarning)>'
487485
endif
488-
syn keyword pythonExClass BaseException
489-
syn keyword pythonExClass Exception ArithmeticError
490-
syn keyword pythonExClass LookupError EnvironmentError
491-
492-
syn keyword pythonExClass AssertionError AttributeError BufferError EOFError
493-
syn keyword pythonExClass FloatingPointError GeneratorExit IOError
494-
syn keyword pythonExClass ImportError IndexError KeyError
495-
syn keyword pythonExClass KeyboardInterrupt MemoryError NameError
496-
syn keyword pythonExClass NotImplementedError OSError OverflowError
497-
syn keyword pythonExClass ReferenceError RuntimeError StopIteration
498-
syn keyword pythonExClass SyntaxError IndentationError TabError
499-
syn keyword pythonExClass SystemError SystemExit TypeError
500-
syn keyword pythonExClass UnboundLocalError UnicodeError
501-
syn keyword pythonExClass UnicodeEncodeError UnicodeDecodeError
502-
syn keyword pythonExClass UnicodeTranslateError ValueError VMSError
503-
syn keyword pythonExClass WindowsError ZeroDivisionError
504-
505-
syn keyword pythonExClass Warning UserWarning BytesWarning DeprecationWarning
506-
syn keyword pythonExClass PendingDepricationWarning SyntaxWarning
507-
syn keyword pythonExClass RuntimeWarning FutureWarning
508-
syn keyword pythonExClass ImportWarning UnicodeWarning
486+
487+
syn match pythonExClass '\v(\.)@<!<(BaseException|Exception|ArithmeticError)>'
488+
syn match pythonExClass '\v(\.)@<!\zs<(LookupError|EnvironmentError|AssertionError)>'
489+
syn match pythonExClass '\v(\.)@<!\zs<(AttributeError|BufferError|EOFError)>'
490+
syn match pythonExClass '\v(\.)@<!\zs<(FloatingPointError|GeneratorExit|IOError)>'
491+
syn match pythonExClass '\v(\.)@<!\zs<(ImportError|IndexError|KeyError)>'
492+
syn match pythonExClass '\v(\.)@<!\zs<(KeyboardInterrupt|MemoryError|NameError)>'
493+
syn match pythonExClass '\v(\.)@<!\zs<(NotImplementedError|OSError|OverflowError)>'
494+
syn match pythonExClass '\v(\.)@<!\zs<(ReferenceError|RuntimeError|StopIteration)>'
495+
syn match pythonExClass '\v(\.)@<!\zs<(SyntaxError|IndentationError|TabError)>'
496+
syn match pythonExClass '\v(\.)@<!\zs<(SystemError|SystemExit|TypeError)>'
497+
syn match pythonExClass '\v(\.)@<!\zs<(UnboundLocalError|UnicodeError)>'
498+
syn match pythonExClass '\v(\.)@<!\zs<(UnicodeEncodeError|UnicodeDecodeError)>'
499+
syn match pythonExClass '\v(\.)@<!\zs<(UnicodeTranslateError|ValueError|VMSError)>'
500+
syn match pythonExClass '\v(\.)@<!\zs<(WindowsError|ZeroDivisionError)>'
501+
syn match pythonExClass '\v(\.)@<!\zs<(Warning|UserWarning|BytesWarning|DeprecationWarning)>'
502+
syn match pythonExClass '\v(\.)@<!\zs<(PendingDepricationWarning|SyntaxWarning)>'
503+
syn match pythonExClass '\v(\.)@<!\zs<(RuntimeWarning|FutureWarning)>'
504+
syn match pythonExClass '\v(\.)@<!\zs<(ImportWarning|UnicodeWarning)>'
509505
endif
510506

511507
if s:Enabled("g:python_slow_sync")

0 commit comments

Comments
 (0)