diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2014-04-15 01:18:16 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2014-04-15 01:18:16 +0200 |
commit | a4c9223257368b63558372a4b91ea24e40aa2935 (patch) | |
tree | 4c97d203ae72e9707d4735e02997d4a71b525ebe /syntax/python.vim | |
parent | d681cb59d301334232851d7c1568554e33416404 (diff) | |
download | vim-polyglot-a4c9223257368b63558372a4b91ea24e40aa2935.tar.gz vim-polyglot-a4c9223257368b63558372a4b91ea24e40aa2935.zip |
Update python package, closes #21
Diffstat (limited to 'syntax/python.vim')
-rw-r--r-- | syntax/python.vim | 165 |
1 files changed, 56 insertions, 109 deletions
diff --git a/syntax/python.vim b/syntax/python.vim index 0e0bb126..7482d076 100644 --- a/syntax/python.vim +++ b/syntax/python.vim @@ -1,27 +1,20 @@ " Vim syntax file -" Language: Python -" Maintainer: Dmitry Vasiliev <dima@hlabs.spb.ru> -" URL: http://www.hlabs.spb.ru/vim/python.vim -" Last Change: 2010-04-09 -" Filenames: *.py -" Version: 2.6.6 " " Based on python.vim (from Vim 6.1 distribution) " by Neil Schemenauer <nas@python.ca> " +" Notes Armin: +" +" This version of the syntax file works better for 2.x and 3.x without +" having to switch modes. +" " Thanks: " " Jeroen Ruigrok van der Werven -" for the idea to highlight erroneous operators +" for the idea of highlighting for 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 -" Caleb Adamantine -" for the patch fixing highlighting for decorators -" Andrea Riciputi -" for the patch with new configuration options " " Options: @@ -31,27 +24,15 @@ " " Option names: " -" For highlight builtin functions and objects: +" For highlight builtin functions: " python_highlight_builtins " -" For highlight builtin objects: -" python_highlight_builtin_objs -" -" For highlight builtin funtions: -" python_highlight_builtin_funcs -" " For highlight standard exceptions: " python_highlight_exceptions " " For highlight string formatting: " python_highlight_string_formatting " -" For highlight str.format syntax: -" python_highlight_string_format -" -" For highlight string.Template syntax: -" python_highlight_string_templates -" " For highlight indentation errors: " python_highlight_indent_errors " @@ -61,15 +42,13 @@ " For highlight doc-tests: " python_highlight_doctests " -" If you want all Python highlightings above: -" python_highlight_all +" If you want all possible Python highlighting: " (This option not override previously set options) +" python_highlight_all " " 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 @@ -82,12 +61,7 @@ endif if exists("python_highlight_all") && python_highlight_all != 0 " Not override previously set options if !exists("python_highlight_builtins") - if !exists("python_highlight_builtin_objs") - let python_highlight_builtin_objs = 1 - endif - if !exists("python_highlight_builtin_funcs") - let python_highlight_builtin_funcs = 1 - endif + let python_highlight_builtins = 1 endif if !exists("python_highlight_exceptions") let python_highlight_exceptions = 1 @@ -95,12 +69,6 @@ if exists("python_highlight_all") && python_highlight_all != 0 if !exists("python_highlight_string_formatting") let python_highlight_string_formatting = 1 endif - if !exists("python_highlight_string_format") - let python_highlight_string_format = 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 @@ -118,23 +86,20 @@ 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 with nonlocal True False None 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 pythonPreCondit import from as +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 +" Print keyword but only if not used as function +syn match pythonStatement "\<print\>\((\)\@!" display " Decorators (new in Python 2.4) -syn match pythonDecorator "@" display nextgroup=pythonDottedName skipwhite -syn match pythonDottedName "[a-zA-Z_][a-zA-Z0-9_]*\(\.[a-zA-Z_][a-zA-Z0-9_]*\)*" display contained -syn match pythonDot "\." display containedin=pythonDottedName +syn match pythonDecorator "@" display nextgroup=pythonFunction skipwhite " Comments syn match pythonComment "#.*$" display contains=pythonTodo,@Spell @@ -145,7 +110,7 @@ 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 "[-+&|]\{2,}" display syn match pythonError "[=]\{3,}" display " TODO: Mixing spaces and tabs also may be used for pretty formatting multiline @@ -160,10 +125,10 @@ if exists("python_highlight_space_errors") && python_highlight_space_errors != 0 endif " Strings -syn region pythonString start=+[bB]\='+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonEscape,pythonEscapeError,@Spell -syn region pythonString start=+[bB]\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonEscape,pythonEscapeError,@Spell -syn region pythonString start=+[bB]\="""+ end=+"""+ keepend contains=pythonEscape,pythonEscapeError,pythonDocTest2,pythonSpaceError,@Spell -syn region pythonString start=+[bB]\='''+ end=+'''+ keepend contains=pythonEscape,pythonEscapeError,pythonDocTest,pythonSpaceError,@Spell +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 @@ -172,6 +137,19 @@ syn match pythonEscape "\\x\x\{2}" display contained syn match pythonEscapeError "\\x\x\=\X" display contained syn match pythonEscape "\\$" +" Byte-Strings +syn region pythonBString start=+[bB]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBEscape,pythonBEscapeError,@Spell +syn region pythonBString start=+[bB]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBEscape,pythonBEscapeError,@Spell +syn region pythonBString start=+[bB]"""+ end=+"""+ keepend contains=pythonBEscape,pythonBEscapeError,pythonDocTest2,pythonSpaceError,@Spell +syn region pythonBString start=+[bB]'''+ end=+'''+ keepend contains=pythonBEscape,pythonBEscapeError,pythonDocTest,pythonSpaceError,@Spell + +syn match pythonBEscape +\\[abfnrtv'"\\]+ display contained +syn match pythonBEscape "\\\o\o\=\o\=" display contained +syn match pythonBEscapeError "\\\o\{,2}[89]" display contained +syn match pythonBEscape "\\x\x\{2}" display contained +syn match pythonBEscapeError "\\x\x\=\X" display contained +syn match pythonBEscape "\\$" + " 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 @@ -204,21 +182,8 @@ syn match pythonUniRawEscapeError "\([^\\]\(\\\\\)*\)\@<=\\u\x\{,3}\X" display if exists("python_highlight_string_formatting") && python_highlight_string_formatting != 0 " String formatting - syn match pythonStrFormatting "%\(([^)]\+)\)\=[-#0 +]*\d*\(\.\d\+\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString - syn match pythonStrFormatting "%[-#0 +]*\(\*\|\d\+\)\=\(\.\(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString -endif - -if exists("python_highlight_string_format") && python_highlight_string_format != 0 - " str.format syntax - syn match pythonStrFormat "{{\|}}" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString - syn match pythonStrFormat "{\([a-zA-Z_][a-zA-Z0-9_]*\|\d\+\)\(\.[a-zA-Z_][a-zA-Z0-9_]*\|\[\(\d\+\|[^!:\}]\+\)\]\)*\(![rs]\)\=\(:\({\([a-zA-Z_][a-zA-Z0-9_]*\|\d\+\)}\|\([^}]\=[<>=^]\)\=[ +-]\=#\=0\=\d*\(\.\d\+\)\=[bcdeEfFgGnoxX%]\=\)\=\)\=}" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString -endif - -if exists("python_highlight_string_templates") && python_highlight_string_templates != 0 - " String templates - syn match pythonStrTemplate "\$\$" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString - syn match pythonStrTemplate "\${[a-zA-Z_][a-zA-Z0-9_]*}" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString - syn match pythonStrTemplate "\$[a-zA-Z_][a-zA-Z0-9_]*" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString + syn match pythonStrFormat "%\(([^)]\+)\)\=[-#0 +]*\d*\(\.\d\+\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonBString,pythonUniString,pythonRawString,pythonUniRawString + syn match pythonStrFormat "%[-#0 +]*\(\*\|\d\+\)\=\(\.\(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonBString,pythonUniString,pythonRawString,pythonUniRawString endif if exists("python_highlight_doctests") && python_highlight_doctests != 0 @@ -228,47 +193,33 @@ if exists("python_highlight_doctests") && python_highlight_doctests != 0 endif " Numbers (ints, longs, floats, complex) -syn match pythonHexError "\<0[xX]\x*[g-zG-Z]\x*[lL]\=\>" display - 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 pythonHexNumber "\<0[xX]\>" 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 pythonBinError "\<0[bB][01]*[2-9]\d*[lL]\=\>" display +syn match pythonOctalError "\<0\o*[89]\d*[lL]\=\>" display +syn match pythonHexError "\<0[xX]\X\+[lL]\=\>" display -if exists("python_highlight_builtin_objs") && python_highlight_builtin_objs != 0 - " Builtin objects and types - syn keyword pythonBuiltinObj True False Ellipsis None NotImplemented - syn keyword pythonBuiltinObj __debug__ __doc__ __file__ __name__ __package__ -endif +if exists("python_highlight_builtins") && python_highlight_builtins != 0 + " Builtin functions, types and objects + syn keyword pythonBuiltinObj Ellipsis NotImplemented -if exists("python_highlight_builtin_funcs") && python_highlight_builtin_funcs != 0 - " Builtin functions syn keyword pythonBuiltinFunc __import__ abs all any apply - syn keyword pythonBuiltinFunc basestring bin bool buffer bytearray bytes callable + syn keyword pythonBuiltinFunc basestring bool buffer 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 execfile file filter float 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 min object oct open ord pow property range syn keyword pythonBuiltinFunc raw_input reduce reload repr - syn keyword pythonBuiltinFunc reversed round set setattr + 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 @@ -277,7 +228,7 @@ if exists("python_highlight_exceptions") && python_highlight_exceptions != 0 syn keyword pythonExClass Exception StandardError ArithmeticError syn keyword pythonExClass LookupError EnvironmentError - syn keyword pythonExClass AssertionError AttributeError BufferError EOFError + syn keyword pythonExClass AssertionError AttributeError EOFError syn keyword pythonExClass FloatingPointError GeneratorExit IOError syn keyword pythonExClass ImportError IndexError KeyError syn keyword pythonExClass KeyboardInterrupt MemoryError NameError @@ -287,12 +238,12 @@ if exists("python_highlight_exceptions") && python_highlight_exceptions != 0 syn keyword pythonExClass SystemError SystemExit TypeError syn keyword pythonExClass UnboundLocalError UnicodeError syn keyword pythonExClass UnicodeEncodeError UnicodeDecodeError - syn keyword pythonExClass UnicodeTranslateError ValueError VMSError + syn keyword pythonExClass UnicodeTranslateError ValueError syn keyword pythonExClass WindowsError ZeroDivisionError - syn keyword pythonExClass Warning UserWarning BytesWarning DeprecationWarning + syn keyword pythonExClass Warning UserWarning DeprecationWarning syn keyword pythonExClass PendingDepricationWarning SyntaxWarning - syn keyword pythonExClass RuntimeWarning FutureWarning + syn keyword pythonExClass RuntimeWarning FutureWarning OverflowWarning syn keyword pythonExClass ImportWarning UnicodeWarning endif @@ -315,7 +266,7 @@ if version >= 508 || !exists("did_python_syn_inits") endif HiLink pythonStatement Statement - HiLink pythonPreCondit Statement + HiLink pythonImport Statement HiLink pythonFunction Function HiLink pythonConditional Conditional HiLink pythonRepeat Repeat @@ -323,8 +274,6 @@ if version >= 508 || !exists("did_python_syn_inits") HiLink pythonOperator Operator HiLink pythonDecorator Define - HiLink pythonDottedName Function - HiLink pythonDot Normal HiLink pythonComment Comment HiLink pythonCoding Special @@ -336,32 +285,30 @@ if version >= 508 || !exists("did_python_syn_inits") HiLink pythonSpaceError Error HiLink pythonString String + HiLink pythonBString String HiLink pythonUniString String HiLink pythonRawString String HiLink pythonUniRawString String HiLink pythonEscape Special + HiLink pythonBEscape Special HiLink pythonEscapeError Error + HiLink pythonBEscapeError Error HiLink pythonUniEscape Special HiLink pythonUniEscapeError Error HiLink pythonUniRawEscape Special HiLink pythonUniRawEscapeError Error - HiLink pythonStrFormatting Special - HiLink pythonStrFormat Special - HiLink pythonStrTemplate Special + HiLink pythonStrFormat 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 pythonOctalError Error HiLink pythonHexError Error - HiLink pythonBinError Error HiLink pythonBuiltinObj Structure HiLink pythonBuiltinFunc Function |