mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			182 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			182 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	Python
 | |
| " Maintainer:	Neil Schemenauer <nas@python.ca>
 | |
| " Updated:	2006-10-15
 | |
| "		Added Python 2.4 features 2006 May 4 (Dmitry Vasiliev)
 | |
| "
 | |
| " 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 with
 | |
| 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
 | |
| " AS will be a keyword in Python 3
 | |
| syn keyword pythonPreCondit	import from as
 | |
| syn match   pythonComment	"#.*$" contains=pythonTodo,@Spell
 | |
| syn keyword pythonTodo		TODO FIXME XXX contained
 | |
| 
 | |
| " Decorators (new in Python 2.4)
 | |
| syn match   pythonDecorator	"@" display nextgroup=pythonFunction skipwhite
 | |
| 
 | |
| " strings
 | |
| syn region pythonString		matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape,@Spell
 | |
| syn region pythonString		matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape,@Spell
 | |
| syn region pythonString		matchgroup=Normal start=+[uU]\="""+ end=+"""+ contains=pythonEscape,@Spell
 | |
| syn region pythonString		matchgroup=Normal start=+[uU]\='''+ end=+'''+ contains=pythonEscape,@Spell
 | |
| syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+ contains=@Spell
 | |
| syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+ contains=@Spell
 | |
| syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+ contains=@Spell
 | |
| syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]'''+ end=+'''+ contains=@Spell
 | |
| 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	True False bool enumerate set frozenset help
 | |
|   syn keyword pythonBuiltin	reversed sorted sum
 | |
|   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	UnicodeEncodeError UnicodeDecodeError
 | |
|   syn keyword pythonException	UnicodeTranslateError
 | |
|   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
 | |
|   HiLink pythonDecorator	Define
 | |
|   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
 |