/antares/src/bin/vim/runtime/syntax/python.vim
Vim Script | 171 lines | 136 code | 4 blank | 31 comment | 3 complexity | e1b9b36fb33a7429be07ff20988ad14a MD5 | raw file
Possible License(s): GPL-2.0, BSD-3-Clause, MPL-2.0-no-copyleft-exception, GPL-3.0, ISC, LGPL-2.0, LGPL-3.0
- " Vim syntax file
- " Language: Python
- " Maintainer: Neil Schemenauer <nas@python.ca>
- " Updated: 2002-10-18
- "
- " Options to control Python syntax highlighting:
- "
- " For highlighted numbers:
- "
- " let python_highlight_numbers = 1
- "
- " For highlighted builtin functions:
- "
- " let python_highlight_builtins = 1
- "
- " For highlighted standard exceptions:
- "
- " let python_highlight_exceptions = 1
- "
- " Highlight erroneous whitespace:
- "
- " let python_highlight_space_errors = 1
- "
- " If you want all possible Python highlighting (the same as setting the
- " preceding options):
- "
- " let python_highlight_all = 1
- "
- " For version 5.x: Clear all syntax items
- " For version 6.x: Quit when a syntax file was already loaded
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
- finish
- endif
- syn keyword pythonStatement break continue del
- syn keyword pythonStatement except exec finally
- syn keyword pythonStatement pass print raise
- syn keyword pythonStatement return try
- syn keyword pythonStatement global assert
- syn keyword pythonStatement lambda 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
- " strings
- 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 pythonRawString matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+
- syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+
- syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+
- syn region pythonRawString 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_all")
- let python_highlight_numbers = 1
- let python_highlight_builtins = 1
- let python_highlight_exceptions = 1
- let python_highlight_space_errors = 1
- endif
- if exists("python_highlight_numbers")
- " numbers (including longs and complex)
- 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")
- " builtin functions, types and objects, not really part of the syntax
- syn keyword pythonBuiltin Ellipsis None NotImplemented __import__ abs
- syn keyword pythonBuiltin apply buffer callable chr classmethod cmp
- syn keyword pythonBuiltin coerce compile complex delattr dict dir divmod
- syn keyword pythonBuiltin eval execfile file filter float getattr globals
- syn keyword pythonBuiltin hasattr hash hex id input int intern isinstance
- syn keyword pythonBuiltin issubclass iter len list locals long map max
- syn keyword pythonBuiltin min object oct open ord pow property range
- syn keyword pythonBuiltin raw_input reduce reload repr round setattr
- syn keyword pythonBuiltin slice staticmethod str super tuple type unichr
- syn keyword pythonBuiltin unicode vars xrange zip
- endif
- if exists("python_highlight_exceptions")
- " builtin exceptions and warnings
- syn keyword pythonException ArithmeticError AssertionError AttributeError
- syn keyword pythonException DeprecationWarning EOFError EnvironmentError
- syn keyword pythonException Exception FloatingPointError IOError
- syn keyword pythonException ImportError IndentationError IndexError
- syn keyword pythonException KeyError KeyboardInterrupt LookupError
- syn keyword pythonException MemoryError NameError NotImplementedError
- syn keyword pythonException OSError OverflowError OverflowWarning
- syn keyword pythonException ReferenceError RuntimeError RuntimeWarning
- syn keyword pythonException StandardError StopIteration SyntaxError
- syn keyword pythonException SyntaxWarning SystemError SystemExit TabError
- syn keyword pythonException TypeError UnboundLocalError UnicodeError
- syn keyword pythonException UserWarning ValueError Warning WindowsError
- syn keyword pythonException ZeroDivisionError
- endif
- if exists("python_highlight_space_errors")
- " trailing whitespace
- syn match pythonSpaceError display excludenl "\S\s\+$"ms=s+1
- " mixed tabs and spaces
- syn match pythonSpaceError display " \+\t"
- syn match pythonSpaceError display "\t\+ "
- endif
- " This is fast but code inside triple quoted strings screws it up. It
- " is impossible to fix because the only way to know if you are inside a
- " triple quoted string is to start from the beginning of the file. If
- " you have a fast machine you can try uncommenting the "sync minlines"
- " and commenting out the rest.
- syn sync match pythonSync grouphere NONE "):$"
- syn sync maxlines=200
- "syn sync minlines=2000
- if version >= 508 || !exists("did_python_syn_inits")
- if version <= 508
- let did_python_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- " The default methods for highlighting. Can be overridden later
- HiLink pythonStatement Statement
- HiLink pythonFunction Function
- HiLink pythonConditional Conditional
- HiLink pythonRepeat Repeat
- HiLink pythonString String
- HiLink pythonRawString String
- HiLink pythonEscape Special
- HiLink pythonOperator Operator
- HiLink pythonPreCondit PreCondit
- HiLink pythonComment Comment
- HiLink pythonTodo Todo
- if exists("python_highlight_numbers")
- HiLink pythonNumber Number
- endif
- if exists("python_highlight_builtins")
- HiLink pythonBuiltin Function
- endif
- if exists("python_highlight_exceptions")
- HiLink pythonException Exception
- endif
- if exists("python_highlight_space_errors")
- HiLink pythonSpaceError Error
- endif
- delcommand HiLink
- endif
- let b:current_syntax = "python"
- " vim: ts=8