diff options
author | Brett Cannon <bcannon@gmail.com> | 2006-02-25 14:52:53 (GMT) |
---|---|---|
committer | Brett Cannon <bcannon@gmail.com> | 2006-02-25 14:52:53 (GMT) |
commit | a4fe18227d48edbb41b76f2861be2c6b800c6609 (patch) | |
tree | 666bc9322232ff4f78cfe24359b6dbf140a6de30 /Misc/Vim/python.vim | |
parent | d074beb6925a87874600b605a91a23263b3a6028 (diff) | |
download | cpython-a4fe18227d48edbb41b76f2861be2c6b800c6609.zip cpython-a4fe18227d48edbb41b76f2861be2c6b800c6609.tar.gz cpython-a4fe18227d48edbb41b76f2861be2c6b800c6609.tar.bz2 |
Add a script that auto-generates a Vim syntax highlighting file for Python.
Just symlink or copy python.vim to ~/.vim/syntax/ . Also included is a sample
Python file with basic expressions to make sure they are highlighted.
Also add a Vim directory in Misc to hold all Vim configuration files.
Diffstat (limited to 'Misc/Vim/python.vim')
-rw-r--r-- | Misc/Vim/python.vim | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/Misc/Vim/python.vim b/Misc/Vim/python.vim new file mode 100644 index 0000000..6a1fa9f --- /dev/null +++ b/Misc/Vim/python.vim @@ -0,0 +1,145 @@ +" Auto-generated Vim syntax file for Python +" +" To use: copy or symlink to ~/.vim/syntax/python.vim + + +if exists("b:current_syntax") + finish +endif + +if exists("python_highlight_all") + let python_highlight_numbers = 1 + let python_highlight_builtins = 1 + let python_highlight_exceptions = 1 + let python_highlight_space_errors = 1 +endif + +syn keyword pythonStatement assert break continue del except exec finally +syn keyword pythonStatement global lambda pass print raise return try yield + +syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite + +syn match pythonFunction "[a-zA-Z_][a-zA-Z0-9_]*" contained + +syn keyword pythonRepeat for while + +syn keyword pythonConditional if elif else + +syn keyword pythonOperator and in is not or + +syn keyword pythonPreCondit import from + +syn match pythonComment "#.*$" contains=pythonTodo + +syn keyword pythonTodo TODO FIXME XXX contained + +syn region pythonString matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape +syn region pythonString matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape +syn region pythonString matchgroup=Normal start=+[uU]\="""+ end=+"""+ contains=pythonEscape +syn region pythonString matchgroup=Normal start=+[uU]\='''+ end=+'''+ contains=pythonEscape +syn region pythonString matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+ +syn region pythonString matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+ +syn region pythonString matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+ +syn region pythonString matchgroup=Normal start=+[uU]\=[rR]'''+ end=+'''+ + +syn match pythonEscape +\\[abfnrtv\'"\\]+ contained +syn match pythonEscape "\\\o\{1,3}" contained +syn match pythonEscape "\\x\x\{2}" contained +syn match pythonEscape "\(\\u\x\{4}\|\\U\x\{8}\)" contained + +syn match pythonEscape "\\$" + + +if exists("python_highlight_numbers") + syn match pythonNumber "\<0x\x\+[Ll]\=\>" + syn match pythonNumber "\<\d\+[LljJ]\=\>" + syn match pythonNumber "\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" + syn match pythonNumber "\<\d\+\.\([eE][+-]\=\d\+\)\=[jJ]\=\>" + syn match pythonNumber "\<\d\+\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" + +endif + + +if exists("python_highlight_builtins") + syn keyword pythonBuiltin unichr all set abs vars int __import__ unicode + syn keyword pythonBuiltin enumerate reduce coerce intern exit issubclass + syn keyword pythonBuiltin divmod file Ellipsis apply isinstance open any + syn keyword pythonBuiltin locals help filter basestring slice copyright min + syn keyword pythonBuiltin super sum tuple hex execfile long id xrange chr + syn keyword pythonBuiltin complex bool zip pow dict True oct NotImplemented + syn keyword pythonBuiltin map None float hash getattr buffer max reversed + syn keyword pythonBuiltin object quit len repr callable credits setattr + syn keyword pythonBuiltin eval frozenset sorted ord __debug__ hasattr + syn keyword pythonBuiltin delattr False input license classmethod type + syn keyword pythonBuiltin raw_input list iter compile reload range globals + syn keyword pythonBuiltin staticmethod str property round dir cmp + +endif + + +if exists("python_highlight_exceptions") + syn keyword pythonException GeneratorExit ImportError RuntimeError + syn keyword pythonException UnicodeTranslateError MemoryError StopIteration + syn keyword pythonException PendingDeprecationWarning EnvironmentError + syn keyword pythonException LookupError OSError DeprecationWarning + syn keyword pythonException UnicodeError FloatingPointError ReferenceError + syn keyword pythonException NameError OverflowWarning IOError SyntaxError + syn keyword pythonException FutureWarning SystemExit Exception EOFError + syn keyword pythonException StandardError ValueError TabError KeyError + syn keyword pythonException ZeroDivisionError SystemError + syn keyword pythonException UnicodeDecodeError IndentationError + syn keyword pythonException AssertionError TypeError IndexError + syn keyword pythonException RuntimeWarning KeyboardInterrupt UserWarning + syn keyword pythonException SyntaxWarning UnboundLocalError ArithmeticError + syn keyword pythonException Warning NotImplementedError AttributeError + syn keyword pythonException OverflowError UnicodeEncodeError + +endif + + +if exists("python_highlight_space_errors") + syn match pythonSpaceError display excludenl "\S\s\+$"ms=s+1 + syn match pythonSpaceError display " \+\t" + syn match pythonSpaceError display "\t\+ " + +endif + + + hi def link pythonStatement Statement + hi def link pythonStatement Statement + hi def link pythonFunction Function + hi def link pythonRepeat Repeat + hi def link pythonConditional Conditional + hi def link pythonOperator Operator + hi def link pythonPreCondit PreCondit + hi def link pythonComment Comment + hi def link pythonTodo Todo + hi def link pythonString String + hi def link pythonEscape Special + hi def link pythonEscape Special + + if exists("python_highlight_numbers") + hi def link pythonNumber Number + endif + + if exists("python_highlight_builtins") + hi def link pythonBuiltin Function + endif + + if exists("python_highlight_exceptions") + hi def link pythonException Exception + endif + + if exists("python_highlight_space_errors") + hi def link pythonSpaceError Error + endif + + +" Uncomment the 'minlines' statement line and comment out the 'maxlines' +" statement line; changes behaviour to look at least 2000 lines previously for +" syntax matches instead of at most 200 lines +syn sync match pythonSync grouphere NONE "):$" +syn sync maxlines=200 +"syn sync minlines=2000 + +let b:current_syntax = "python" |