| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337 | 
							- " Vim syntax file
 - " Language:	Python
 - " Maintainer:	Dmitry Vasiliev <dima@hlabs.spb.ru>
 - " URL:		http://www.hlabs.spb.ru/vim/python.vim
 - " Last Change:	$Date$
 - " Filenames:	*.py
 - " Version:	2.6.1
 - " $Rev$
 - "
 - " Based on python.vim (from Vim 6.1 distribution)
 - " by Neil Schemenauer <nas@python.ca>
 - "
 - " Thanks:
 - "
 - "    Jeroen Ruigrok van der Werven
 - "        for the idea to highlight erroneous operators
 - "    Pedro Algarvio
 - "        for the patch to enable spell checking only for the right spots
 - "        (strings and comments)
 - "    John Eikenberry
 - "        for the patch fixing small typo
 - 
 - "
 - " Options:
 - "
 - "    For set option do: let OPTION_NAME = 1
 - "    For clear option do: let OPTION_NAME = 0
 - "
 - " Option names:
 - "
 - "    For highlight builtin functions:
 - "       python_highlight_builtins
 - "
 - "    For highlight standard exceptions:
 - "       python_highlight_exceptions
 - "
 - "    For highlight string formatting:
 - "       python_highlight_string_formatting
 - "
 - "    For highlight string.Template templates:
 - "       python_highlight_string_templates
 - "
 - "    For highlight indentation errors:
 - "       python_highlight_indent_errors
 - "
 - "    For highlight trailing spaces:
 - "       python_highlight_space_errors
 - "
 - "    For highlight doc-tests:
 - "       python_highlight_doctests
 - "
 - "    If you want all Python highlightings above:
 - "       python_highlight_all
 - "    (This option not override previously set options)
 - "
 - "    For fast machines:
 - "       python_slow_sync
 - "
 - "    For "print" builtin as function:
 - "       python_print_as_function
 - 
 - " 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
 - 
 - if exists("python_highlight_all") && python_highlight_all != 0
 -   " Not override previously set options
 -   if !exists("python_highlight_builtins")
 -     let python_highlight_builtins = 1
 -   endif
 -   if !exists("python_highlight_exceptions")
 -     let python_highlight_exceptions = 1
 -   endif
 -   if !exists("python_highlight_string_formatting")
 -     let python_highlight_string_formatting = 1
 -   endif
 -   if !exists("python_highlight_string_templates")
 -     let python_highlight_string_templates = 1
 -   endif
 -   if !exists("python_highlight_indent_errors")
 -     let python_highlight_indent_errors = 1
 -   endif
 -   if !exists("python_highlight_space_errors")
 -     let python_highlight_space_errors = 1
 -   endif
 -   if !exists("python_highlight_doctests")
 -     let python_highlight_doctests = 1
 -   endif
 - endif
 - 
 - " Keywords
 - syn keyword pythonStatement	break continue del
 - syn keyword pythonStatement	exec return
 - syn keyword pythonStatement	pass raise
 - syn keyword pythonStatement	global assert
 - syn keyword pythonStatement	lambda yield
 - syn keyword pythonStatement	with
 - syn keyword pythonStatement	def class nextgroup=pythonFunction skipwhite
 - syn match   pythonFunction	"[a-zA-Z_][a-zA-Z0-9_]*" display contained
 - syn keyword pythonRepeat	for while
 - syn keyword pythonConditional	if elif else
 - syn keyword pythonImport	import from as
 - syn keyword pythonException	try except finally
 - syn keyword pythonOperator	and in is not or
 - 
 - if !exists("python_print_as_function") || python_print_as_function == 0
 -   syn keyword pythonStatement print
 - endif
 - 
 - " Decorators (new in Python 2.4)
 - syn match   pythonDecorator	"@" display nextgroup=pythonFunction skipwhite
 - 
 - " Comments
 - syn match   pythonComment	"#.*$" display contains=pythonTodo,@Spell
 - syn match   pythonRun		"\%^#!.*$"
 - syn match   pythonCoding	"\%^.*\(\n.*\)\?#.*coding[:=]\s*[0-9A-Za-z-_.]\+.*$"
 - syn keyword pythonTodo		TODO FIXME XXX contained
 - 
 - " Errors
 - syn match pythonError		"\<\d\+\D\+\>" display
 - syn match pythonError		"[$?]" display
 - syn match pythonError		"[-+&|]\{2,}" display
 - syn match pythonError		"[=]\{3,}" display
 - 
 - " TODO: Mixing spaces and tabs also may be used for pretty formatting multiline
 - " statements. For now I don't know how to work around this.
 - if exists("python_highlight_indent_errors") && python_highlight_indent_errors != 0
 -   syn match pythonIndentError	"^\s*\( \t\|\t \)\s*\S"me=e-1 display
 - endif
 - 
 - " Trailing space errors
 - if exists("python_highlight_space_errors") && python_highlight_space_errors != 0
 -   syn match pythonSpaceError	"\s\+$" display
 - endif
 - 
 - " Strings
 - syn region pythonString		start=+'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonEscape,pythonEscapeError,@Spell
 - syn region pythonString		start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonEscape,pythonEscapeError,@Spell
 - syn region pythonString		start=+"""+ end=+"""+ keepend contains=pythonEscape,pythonEscapeError,pythonDocTest2,pythonSpaceError,@Spell
 - syn region pythonString		start=+'''+ end=+'''+ keepend contains=pythonEscape,pythonEscapeError,pythonDocTest,pythonSpaceError,@Spell
 - 
 - syn match  pythonEscape		+\\[abfnrtv'"\\]+ display contained
 - syn match  pythonEscape		"\\\o\o\=\o\=" display contained
 - syn match  pythonEscapeError	"\\\o\{,2}[89]" display contained
 - syn match  pythonEscape		"\\x\x\{2}" display contained
 - syn match  pythonEscapeError	"\\x\x\=\X" display contained
 - syn match  pythonEscape		"\\$"
 - 
 - " Unicode strings
 - syn region pythonUniString	start=+[uU]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,@Spell
 - syn region pythonUniString	start=+[uU]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,@Spell
 - syn region pythonUniString	start=+[uU]"""+ end=+"""+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell
 - syn region pythonUniString	start=+[uU]'''+ end=+'''+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell
 - 
 - syn match  pythonUniEscape	"\\u\x\{4}" display contained
 - syn match  pythonUniEscapeError	"\\u\x\{,3}\X" display contained
 - syn match  pythonUniEscape	"\\U\x\{8}" display contained
 - syn match  pythonUniEscapeError	"\\U\x\{,7}\X" display contained
 - syn match  pythonUniEscape	"\\N{[A-Z ]\+}" display contained
 - syn match  pythonUniEscapeError	"\\N{[^A-Z ]\+}" display contained
 - 
 - " Raw strings
 - syn region pythonRawString	start=+[rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell
 - syn region pythonRawString	start=+[rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,@Spell
 - syn region pythonRawString	start=+[rR]"""+ end=+"""+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell
 - syn region pythonRawString	start=+[rR]'''+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell
 - 
 - syn match pythonRawEscape	+\\['"]+ display transparent contained
 - 
 - " Unicode raw strings
 - syn region pythonUniRawString	start=+[uU][rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError,@Spell
 - syn region pythonUniRawString	start=+[uU][rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError,@Spell
 - syn region pythonUniRawString	start=+[uU][rR]"""+ end=+"""+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest2,pythonSpaceError,@Spell
 - syn region pythonUniRawString	start=+[uU][rR]'''+ end=+'''+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest,pythonSpaceError,@Spell
 - 
 - syn match  pythonUniRawEscape		"\([^\\]\(\\\\\)*\)\@<=\\u\x\{4}" display contained
 - syn match  pythonUniRawEscapeError	"\([^\\]\(\\\\\)*\)\@<=\\u\x\{,3}\X" display contained
 - 
 - if exists("python_highlight_string_formatting") && python_highlight_string_formatting != 0
 -   " String formatting
 -   syn match pythonStrFormat	"%\(([^)]\+)\)\=[-#0 +]*\d*\(\.\d\+\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
 -   syn match pythonStrFormat	"%[-#0 +]*\(\*\|\d\+\)\=\(\.\(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
 - endif
 - 
 - if exists("python_highlight_string_templates") && python_highlight_string_templates != 0
 -   " String templates
 -   syn match pythonStrTemplate	"\$\(\$\|{[^}]*}\|[a-zA-Z_][a-zA-Z0-9_]*\)" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString
 - endif
 - 
 - if exists("python_highlight_doctests") && python_highlight_doctests != 0
 -   " DocTests
 -   syn region pythonDocTest	start="^\s*>>>" end=+'''+he=s-1 end="^\s*$" contained
 -   syn region pythonDocTest2	start="^\s*>>>" end=+"""+he=s-1 end="^\s*$" contained
 - endif
 - 
 - " Numbers (ints, longs, floats, complex)
 - syn match   pythonHexNumber	"\<0[xX]\x\+[lL]\=\>" display
 - syn match   pythonOctNumber "\<0[oO]\o\+[lL]\=\>" display
 - syn match   pythonBinNumber "\<0[bB][01]\+[lL]\=\>" display
 - 
 - syn match   pythonNumber	"\<\d\+[lLjJ]\=\>" display
 - 
 - syn match   pythonFloat		"\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" display
 - syn match   pythonFloat		"\<\d\+[eE][+-]\=\d\+[jJ]\=\>" display
 - syn match   pythonFloat		"\<\d\+\.\d*\([eE][+-]\=\d\+\)\=[jJ]\=" display
 - 
 - syn match   pythonOctError	"\<0[oO]\=\o*[8-9]\d*[lL]\=\>" display
 - syn match   pythonHexError	"\<0[xX]\x*\X\x*[lL]\=\>" display
 - syn match   pythonBinError	"\<0[bB][01]*[2-9]\d*[lL]\=\>" display
 - 
 - if exists("python_highlight_builtins") && python_highlight_builtins != 0
 -   " Builtin functions, types and objects
 -   syn keyword pythonBuiltinObj	True False Ellipsis None NotImplemented
 -   syn keyword pythonBuiltinObj	__debug__ __doc__ __file__ __name__ __package__
 - 
 -   syn keyword pythonBuiltinFunc	__import__ abs all any apply
 -   syn keyword pythonBuiltinFunc	basestring bin bool buffer bytearray bytes callable
 -   syn keyword pythonBuiltinFunc	chr classmethod cmp coerce compile complex
 -   syn keyword pythonBuiltinFunc	delattr dict dir divmod enumerate eval
 -   syn keyword pythonBuiltinFunc	execfile file filter float format frozenset getattr
 -   syn keyword pythonBuiltinFunc	globals hasattr hash help hex id 
 -   syn keyword pythonBuiltinFunc	input int intern isinstance
 -   syn keyword pythonBuiltinFunc	issubclass iter len list locals long map max
 -   syn keyword pythonBuiltinFunc	min next object oct open ord
 -   syn keyword pythonBuiltinFunc	pow property range
 -   syn keyword pythonBuiltinFunc	raw_input reduce reload repr
 -   syn keyword pythonBuiltinFunc	reversed round set setattr
 -   syn keyword pythonBuiltinFunc	slice sorted staticmethod str sum super tuple
 -   syn keyword pythonBuiltinFunc	type unichr unicode vars xrange zip
 - 
 -   if exists("python_print_as_function") && python_print_as_function != 0
 -       syn keyword pythonBuiltinFunc	print
 -   endif
 - endif
 - 
 - if exists("python_highlight_exceptions") && python_highlight_exceptions != 0
 -   " Builtin exceptions and warnings
 -   syn keyword pythonExClass	BaseException
 -   syn keyword pythonExClass	Exception StandardError ArithmeticError
 -   syn keyword pythonExClass	LookupError EnvironmentError
 - 
 -   syn keyword pythonExClass	AssertionError AttributeError BufferError EOFError
 -   syn keyword pythonExClass	FloatingPointError GeneratorExit IOError
 -   syn keyword pythonExClass	ImportError IndexError KeyError
 -   syn keyword pythonExClass	KeyboardInterrupt MemoryError NameError
 -   syn keyword pythonExClass	NotImplementedError OSError OverflowError
 -   syn keyword pythonExClass	ReferenceError RuntimeError StopIteration
 -   syn keyword pythonExClass	SyntaxError IndentationError TabError
 -   syn keyword pythonExClass	SystemError SystemExit TypeError
 -   syn keyword pythonExClass	UnboundLocalError UnicodeError
 -   syn keyword pythonExClass	UnicodeEncodeError UnicodeDecodeError
 -   syn keyword pythonExClass	UnicodeTranslateError ValueError
 -   syn keyword pythonExClass	WindowsError ZeroDivisionError
 - 
 -   syn keyword pythonExClass	Warning UserWarning BytesWarning DeprecationWarning
 -   syn keyword pythonExClass	PendingDepricationWarning SyntaxWarning
 -   syn keyword pythonExClass	RuntimeWarning FutureWarning
 -   syn keyword pythonExClass	ImportWarning UnicodeWarning
 - endif
 - 
 - if exists("python_slow_sync") && python_slow_sync != 0
 -   syn sync minlines=2000
 - else
 -   " 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.
 -   syn sync match pythonSync grouphere NONE "):$"
 -   syn sync maxlines=200
 - endif
 - 
 - 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
 - 
 -   HiLink pythonStatement	Statement
 -   HiLink pythonImport		Statement
 -   HiLink pythonFunction		Function
 -   HiLink pythonConditional	Conditional
 -   HiLink pythonRepeat		Repeat
 -   HiLink pythonException	Exception
 -   HiLink pythonOperator		Operator
 - 
 -   HiLink pythonDecorator	Define
 - 
 -   HiLink pythonComment		Comment
 -   HiLink pythonCoding		Special
 -   HiLink pythonRun		Special
 -   HiLink pythonTodo		Todo
 - 
 -   HiLink pythonError		Error
 -   HiLink pythonIndentError	Error
 -   HiLink pythonSpaceError	Error
 - 
 -   HiLink pythonString		String
 -   HiLink pythonUniString	String
 -   HiLink pythonRawString	String
 -   HiLink pythonUniRawString	String
 - 
 -   HiLink pythonEscape			Special
 -   HiLink pythonEscapeError		Error
 -   HiLink pythonUniEscape		Special
 -   HiLink pythonUniEscapeError		Error
 -   HiLink pythonUniRawEscape		Special
 -   HiLink pythonUniRawEscapeError	Error
 - 
 -   HiLink pythonStrFormat	Special
 -   HiLink pythonStrTemplate	Special
 - 
 -   HiLink pythonDocTest		Special
 -   HiLink pythonDocTest2		Special
 - 
 -   HiLink pythonNumber		Number
 -   HiLink pythonHexNumber	Number
 -   HiLink pythonOctNumber	Number
 -   HiLink pythonBinNumber	Number
 -   HiLink pythonFloat		Float
 -   HiLink pythonOctError	    Error
 -   HiLink pythonHexError		Error
 -   HiLink pythonBinError		Error
 - 
 -   HiLink pythonBuiltinObj	Structure
 -   HiLink pythonBuiltinFunc	Function
 - 
 -   HiLink pythonExClass	Structure
 - 
 -   delcommand HiLink
 - endif
 - 
 - let b:current_syntax = "python"
 
 
  |