summaryrefslogtreecommitdiffstats
path: root/Misc/Vim/python.vim
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2006-02-25 14:52:53 (GMT)
committerBrett Cannon <bcannon@gmail.com>2006-02-25 14:52:53 (GMT)
commita4fe18227d48edbb41b76f2861be2c6b800c6609 (patch)
tree666bc9322232ff4f78cfe24359b6dbf140a6de30 /Misc/Vim/python.vim
parentd074beb6925a87874600b605a91a23263b3a6028 (diff)
downloadcpython-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.vim145
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"