From d194380de93023c8901eb77b2820b0f74e8a5283 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sun, 16 Apr 2017 17:42:41 +0200 Subject: vim-patch:e4a3bcf28d92 Updated runtime files. Add Scala files. https://github.com/vim/vim/commit/e4a3bcf28d92d0bde9ca227ccb40d401038185e5 --- runtime/syntax/python.vim | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) (limited to 'runtime/syntax/python.vim') diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim index fa42b3e2d2..f0f03a8c8d 100644 --- a/runtime/syntax/python.vim +++ b/runtime/syntax/python.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Python " Maintainer: Zvezdan Petkovic -" Last Change: 2016 Jul 21 +" Last Change: 2016 Aug 14 " Credits: Neil Schemenauer " Dmitry Vasiliev " @@ -84,14 +84,30 @@ syn keyword pythonInclude from import syn keyword pythonAsync async await " Decorators (new in Python 2.4) -syn match pythonDecorator "@" display nextgroup=pythonFunction skipwhite -" The zero-length non-grouping match before the function name is -" extremely important in pythonFunction. Without it, everything is -" interpreted as a function inside the contained environment of -" doctests. +" Python 3.5 introduced the use of the same symbol for matrix +" multiplication. We now have to exclude the symbol from being +" highlighted when used in that context. Hence, the check that it's +" preceded by empty space only (possibly in a docstring/doctest) and +" followed by decorator name, optional parenthesized list of arguments, +" and the next line with either def, class, or another decorator. +syn match pythonDecorator + \ "\%(\%(^\s*\)\%(\%(>>>\|\.\.\.\)\s\+\)\=\)\zs@\%(\s*\h\%(\w\|\.\)*\%(([^)]*)\)\=\s*\n\s*\%(\.\.\.\s\+\)\=\%(@\s*\h\|\%(def\|class\)\s\+\)\)\@=" + \ display nextgroup=pythonDecoratorName skipwhite + " A dot must be allowed because of @MyClass.myfunc decorators. +" It must be preceded by a decorator symbol and on a separate line from +" a function/class it decorates. +syn match pythonDecoratorName + \ "\%(@\s*\)\@<=\h\%(\w\|\.\)*\%(\%(([^)]*)\)\=\s*\n\)\@=" + \ contained display nextgroup=pythonFunction skipnl + +" The zero-length non-grouping match of def or class before the function +" name is extremely important in pythonFunction. Without it, everything +" is interpreted as a function inside the contained environment of +" doctests. syn match pythonFunction - \ "\%(\%(def\s\|class\s\|@\)\s*\)\@<=\h\%(\w\|\.\)*" contained + \ "\%(\%(^\s*\)\%(\%(>>>\|\.\.\.\)\s\+\)\=\%(def\|class\)\s\+\)\@<=\h\w*" + \ contained syn match pythonComment "#.*$" contains=pythonTodo,@Spell syn keyword pythonTodo FIXME NOTE NOTES TODO XXX contained @@ -293,6 +309,7 @@ if version >= 508 || !exists("did_python_syn_inits") HiLink pythonInclude Include HiLink pythonAsync Statement HiLink pythonDecorator Define + HiLink pythonDecoratorName Function HiLink pythonFunction Function HiLink pythonComment Comment HiLink pythonTodo Todo -- cgit From a53409b564458f7a94c8fcd0725d1953dee58dce Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 28 Apr 2017 21:06:44 +0200 Subject: vim-patch:89bcfda6834a Updated runtime files. Remove version checks for Vim older than 6.0. https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5 --- runtime/syntax/python.vim | 86 +++++++++++++++++++++-------------------------- 1 file changed, 38 insertions(+), 48 deletions(-) (limited to 'runtime/syntax/python.vim') diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim index f0f03a8c8d..e44721b7fa 100644 --- a/runtime/syntax/python.vim +++ b/runtime/syntax/python.vim @@ -36,11 +36,8 @@ " 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") +" quit when a syntax file was already loaded. +if exists("b:current_syntax") finish endif @@ -292,51 +289,44 @@ endif " Sync at the beginning of class, function, or method definition. syn sync match pythonSync grouphere NONE "^\s*\%(def\|class\)\s\+\h\w*\s*(" -if version >= 508 || !exists("did_python_syn_inits") - if version <= 508 - let did_python_syn_inits = 1 - command -nargs=+ HiLink hi link - else - command -nargs=+ HiLink hi def link - endif +command -nargs=+ HiLink hi def link - " The default highlight links. Can be overridden later. - HiLink pythonStatement Statement - HiLink pythonConditional Conditional - HiLink pythonRepeat Repeat - HiLink pythonOperator Operator - HiLink pythonException Exception - HiLink pythonInclude Include - HiLink pythonAsync Statement - HiLink pythonDecorator Define - HiLink pythonDecoratorName Function - HiLink pythonFunction Function - HiLink pythonComment Comment - HiLink pythonTodo Todo - HiLink pythonString String - HiLink pythonRawString String - HiLink pythonQuotes String - HiLink pythonTripleQuotes pythonQuotes - HiLink pythonEscape Special - if !exists("python_no_number_highlight") - HiLink pythonNumber Number - endif - if !exists("python_no_builtin_highlight") - HiLink pythonBuiltin Function - endif - if !exists("python_no_exception_highlight") - HiLink pythonExceptions Structure - endif - if exists("python_space_error_highlight") - HiLink pythonSpaceError Error - endif - if !exists("python_no_doctest_highlight") - HiLink pythonDoctest Special - HiLink pythonDoctestValue Define - endif - - delcommand HiLink +" The default highlight links. Can be overridden later. +HiLink pythonStatement Statement +HiLink pythonConditional Conditional +HiLink pythonRepeat Repeat +HiLink pythonOperator Operator +HiLink pythonException Exception +HiLink pythonInclude Include +HiLink pythonAsync Statement +HiLink pythonDecorator Define +HiLink pythonDecoratorName Function +HiLink pythonFunction Function +HiLink pythonComment Comment +HiLink pythonTodo Todo +HiLink pythonString String +HiLink pythonRawString String +HiLink pythonQuotes String +HiLink pythonTripleQuotes pythonQuotes +HiLink pythonEscape Special +if !exists("python_no_number_highlight") + HiLink pythonNumber Number endif +if !exists("python_no_builtin_highlight") + HiLink pythonBuiltin Function +endif +if !exists("python_no_exception_highlight") + HiLink pythonExceptions Structure +endif +if exists("python_space_error_highlight") + HiLink pythonSpaceError Error +endif +if !exists("python_no_doctest_highlight") + HiLink pythonDoctest Special + HiLink pythonDoctestValue Define +endif + +delcommand HiLink let b:current_syntax = "python" -- cgit From 86b596dc7a49f1b148ef82a356b972b93ed0f6d4 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 28 Apr 2017 21:14:34 +0200 Subject: vim-patch:f37506f60f87 Updated runtime files. Remove HiLink commands. https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c --- runtime/syntax/python.vim | 48 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 25 deletions(-) (limited to 'runtime/syntax/python.vim') diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim index e44721b7fa..38bea3eefe 100644 --- a/runtime/syntax/python.vim +++ b/runtime/syntax/python.vim @@ -289,44 +289,42 @@ endif " Sync at the beginning of class, function, or method definition. syn sync match pythonSync grouphere NONE "^\s*\%(def\|class\)\s\+\h\w*\s*(" -command -nargs=+ HiLink hi def link " The default highlight links. Can be overridden later. -HiLink pythonStatement Statement -HiLink pythonConditional Conditional -HiLink pythonRepeat Repeat -HiLink pythonOperator Operator -HiLink pythonException Exception -HiLink pythonInclude Include -HiLink pythonAsync Statement -HiLink pythonDecorator Define -HiLink pythonDecoratorName Function -HiLink pythonFunction Function -HiLink pythonComment Comment -HiLink pythonTodo Todo -HiLink pythonString String -HiLink pythonRawString String -HiLink pythonQuotes String -HiLink pythonTripleQuotes pythonQuotes -HiLink pythonEscape Special +hi def link pythonStatement Statement +hi def link pythonConditional Conditional +hi def link pythonRepeat Repeat +hi def link pythonOperator Operator +hi def link pythonException Exception +hi def link pythonInclude Include +hi def link pythonAsync Statement +hi def link pythonDecorator Define +hi def link pythonDecoratorName Function +hi def link pythonFunction Function +hi def link pythonComment Comment +hi def link pythonTodo Todo +hi def link pythonString String +hi def link pythonRawString String +hi def link pythonQuotes String +hi def link pythonTripleQuotes pythonQuotes +hi def link pythonEscape Special if !exists("python_no_number_highlight") - HiLink pythonNumber Number + hi def link pythonNumber Number endif if !exists("python_no_builtin_highlight") - HiLink pythonBuiltin Function + hi def link pythonBuiltin Function endif if !exists("python_no_exception_highlight") - HiLink pythonExceptions Structure + hi def link pythonExceptions Structure endif if exists("python_space_error_highlight") - HiLink pythonSpaceError Error + hi def link pythonSpaceError Error endif if !exists("python_no_doctest_highlight") - HiLink pythonDoctest Special - HiLink pythonDoctestValue Define + hi def link pythonDoctest Special + hi def link pythonDoctestValue Define endif -delcommand HiLink let b:current_syntax = "python" -- cgit From 06879e2e890dd6cb7bbeb4ce6b78d0cf41500ab5 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 28 Apr 2017 22:47:40 +0200 Subject: vim-patch:d07969093a9b Updated runtime files. https://github.com/vim/vim/commit/d07969093a9b3051511c478d71c36de6fc33c0d6 --- runtime/syntax/python.vim | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) (limited to 'runtime/syntax/python.vim') diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim index 38bea3eefe..f258184b52 100644 --- a/runtime/syntax/python.vim +++ b/runtime/syntax/python.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Python " Maintainer: Zvezdan Petkovic -" Last Change: 2016 Aug 14 +" Last Change: 2016 Sep 14 " Credits: Neil Schemenauer " Dmitry Vasiliev " @@ -88,14 +88,14 @@ syn keyword pythonAsync async await " followed by decorator name, optional parenthesized list of arguments, " and the next line with either def, class, or another decorator. syn match pythonDecorator - \ "\%(\%(^\s*\)\%(\%(>>>\|\.\.\.\)\s\+\)\=\)\zs@\%(\s*\h\%(\w\|\.\)*\%(([^)]*)\)\=\s*\n\s*\%(\.\.\.\s\+\)\=\%(@\s*\h\|\%(def\|class\)\s\+\)\)\@=" + \ "\%(\%(^\s*\)\%(\%(>>>\|\.\.\.\)\s\+\)\=\)\zs@\%(\s*\h\%(\w\|\.\)*\s*\%((\_\s\{-}[^)]\_.\{-})\s*\)\=\%(#.*\)\=\n\s*\%(\.\.\.\s\+\)\=\%(@\s*\h\|\%(def\|class\)\s\+\)\)\@=" \ display nextgroup=pythonDecoratorName skipwhite " A dot must be allowed because of @MyClass.myfunc decorators. " It must be preceded by a decorator symbol and on a separate line from " a function/class it decorates. syn match pythonDecoratorName - \ "\%(@\s*\)\@<=\h\%(\w\|\.\)*\%(\%(([^)]*)\)\=\s*\n\)\@=" + \ "\%(@\s*\)\@<=\h\%(\w\|\.\)*\%(\s*\%((\_\s\{-}[^)]\_.\{-})\s*\)\=\%(#.*\)\=\n\)\@=" \ contained display nextgroup=pythonFunction skipnl " The zero-length non-grouping match of def or class before the function @@ -289,43 +289,41 @@ endif " Sync at the beginning of class, function, or method definition. syn sync match pythonSync grouphere NONE "^\s*\%(def\|class\)\s\+\h\w*\s*(" - " The default highlight links. Can be overridden later. -hi def link pythonStatement Statement -hi def link pythonConditional Conditional +hi def link pythonStatement Statement +hi def link pythonConditional Conditional hi def link pythonRepeat Repeat hi def link pythonOperator Operator -hi def link pythonException Exception +hi def link pythonException Exception hi def link pythonInclude Include -hi def link pythonAsync Statement -hi def link pythonDecorator Define -hi def link pythonDecoratorName Function +hi def link pythonAsync Statement +hi def link pythonDecorator Define +hi def link pythonDecoratorName Function hi def link pythonFunction Function hi def link pythonComment Comment -hi def link pythonTodo Todo +hi def link pythonTodo Todo hi def link pythonString String -hi def link pythonRawString String +hi def link pythonRawString String hi def link pythonQuotes String -hi def link pythonTripleQuotes pythonQuotes +hi def link pythonTripleQuotes pythonQuotes hi def link pythonEscape Special if !exists("python_no_number_highlight") hi def link pythonNumber Number endif if !exists("python_no_builtin_highlight") - hi def link pythonBuiltin Function + hi def link pythonBuiltin Function endif if !exists("python_no_exception_highlight") - hi def link pythonExceptions Structure + hi def link pythonExceptions Structure endif if exists("python_space_error_highlight") - hi def link pythonSpaceError Error + hi def link pythonSpaceError Error endif if !exists("python_no_doctest_highlight") - hi def link pythonDoctest Special + hi def link pythonDoctest Special hi def link pythonDoctestValue Define endif - let b:current_syntax = "python" let &cpo = s:cpo_save -- cgit From 789c46934b2089782fb0115493513bd0cc6f7388 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sat, 29 Apr 2017 01:50:00 +0200 Subject: vim-patch:b4ada79aa7d0 Runtime file updates. https://github.com/vim/vim/commit/b4ada79aa7d0d1e5da3a659b1a203d7cae9f7f59 Closes #5055 --- runtime/syntax/python.vim | 97 +++++++++++++++++++++++++---------------------- 1 file changed, 52 insertions(+), 45 deletions(-) (limited to 'runtime/syntax/python.vim') diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim index f258184b52..5aec2fe3d2 100644 --- a/runtime/syntax/python.vim +++ b/runtime/syntax/python.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Python " Maintainer: Zvezdan Petkovic -" Last Change: 2016 Sep 14 +" Last Change: 2016 Oct 29 " Credits: Neil Schemenauer " Dmitry Vasiliev " @@ -46,6 +46,29 @@ endif let s:cpo_save = &cpo set cpo&vim +if exists("python_no_doctest_highlight") + let python_no_doctest_code_highlight = 1 +endif + +if exists("python_highlight_all") + if exists("python_no_builtin_highlight") + unlet python_no_builtin_highlight + endif + if exists("python_no_doctest_code_highlight") + unlet python_no_doctest_code_highlight + endif + if exists("python_no_doctest_highlight") + unlet python_no_doctest_highlight + endif + if exists("python_no_exception_highlight") + unlet python_no_exception_highlight + endif + if exists("python_no_number_highlight") + unlet python_no_number_highlight + endif + let python_space_error_highlight = 1 +endif + " Keep Python keywords in alphabetical order inside groups for easy " comparison with the table in the 'Python Language Reference' " https://docs.python.org/2/reference/lexical_analysis.html#keywords, @@ -81,30 +104,31 @@ syn keyword pythonInclude from import syn keyword pythonAsync async await " Decorators (new in Python 2.4) -" Python 3.5 introduced the use of the same symbol for matrix -" multiplication. We now have to exclude the symbol from being -" highlighted when used in that context. Hence, the check that it's -" preceded by empty space only (possibly in a docstring/doctest) and -" followed by decorator name, optional parenthesized list of arguments, -" and the next line with either def, class, or another decorator. -syn match pythonDecorator - \ "\%(\%(^\s*\)\%(\%(>>>\|\.\.\.\)\s\+\)\=\)\zs@\%(\s*\h\%(\w\|\.\)*\s*\%((\_\s\{-}[^)]\_.\{-})\s*\)\=\%(#.*\)\=\n\s*\%(\.\.\.\s\+\)\=\%(@\s*\h\|\%(def\|class\)\s\+\)\)\@=" - \ display nextgroup=pythonDecoratorName skipwhite - " A dot must be allowed because of @MyClass.myfunc decorators. -" It must be preceded by a decorator symbol and on a separate line from -" a function/class it decorates. -syn match pythonDecoratorName - \ "\%(@\s*\)\@<=\h\%(\w\|\.\)*\%(\s*\%((\_\s\{-}[^)]\_.\{-})\s*\)\=\%(#.*\)\=\n\)\@=" - \ contained display nextgroup=pythonFunction skipnl +syn match pythonDecorator "@" display contained +syn match pythonDecoratorName "@\s*\h\%(\w\|\.\)*" display contains=pythonDecorator + +" Python 3.5 introduced the use of the same symbol for matrix multiplication: +" https://www.python.org/dev/peps/pep-0465/. We now have to exclude the +" symbol from highlighting when used in that context. +" Single line multiplication. +syn match pythonMatrixMultiply + \ "\%(\w\|[])]\)\s*@" + \ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue + \ transparent +" Multiplication continued on the next line after backslash. +syn match pythonMatrixMultiply + \ "[^\\]\\\s*\n\%(\s*\.\.\.\s\)\=\s\+@" + \ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue + \ transparent +" Multiplication in a parenthesized expression over multiple lines with @ at +" the start of each continued line; very similar to decorators and complex. +syn match pythonMatrixMultiply + \ "^\s*\%(\%(>>>\|\.\.\.\)\s\+\)\=\zs\%(\h\|\%(\h\|[[(]\).\{-}\%(\w\|[])]\)\)\s*\n\%(\s*\.\.\.\s\)\=\s\+@\%(.\{-}\n\%(\s*\.\.\.\s\)\=\s\+@\)*" + \ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue + \ transparent -" The zero-length non-grouping match of def or class before the function -" name is extremely important in pythonFunction. Without it, everything -" is interpreted as a function inside the contained environment of -" doctests. -syn match pythonFunction - \ "\%(\%(^\s*\)\%(\%(>>>\|\.\.\.\)\s\+\)\=\%(def\|class\)\s\+\)\@<=\h\w*" - \ contained +syn match pythonFunction "\h\w*" display contained syn match pythonComment "#.*$" contains=pythonTodo,@Spell syn keyword pythonTodo FIXME NOTE NOTES TODO XXX contained @@ -131,25 +155,6 @@ syn match pythonEscape "\%(\\u\x\{4}\|\\U\x\{8}\)" contained syn match pythonEscape "\\N{\a\+\%(\s\a\+\)*}" contained syn match pythonEscape "\\$" -if exists("python_highlight_all") - if exists("python_no_builtin_highlight") - unlet python_no_builtin_highlight - endif - if exists("python_no_doctest_code_highlight") - unlet python_no_doctest_code_highlight - endif - if exists("python_no_doctest_highlight") - unlet python_no_doctest_highlight - endif - if exists("python_no_exception_highlight") - unlet python_no_exception_highlight - endif - if exists("python_no_number_highlight") - unlet python_no_number_highlight - endif - let python_space_error_highlight = 1 -endif - " It is very important to understand all details before changing the " regular expressions below or their order. " The word boundaries are *not* the floating-point number boundaries @@ -213,7 +218,9 @@ if !exists("python_no_builtin_highlight") " non-essential built-in functions; Python 2 only syn keyword pythonBuiltin apply buffer coerce intern " avoid highlighting attributes as builtins - syn match pythonAttribute /\.\h\w*/hs=s+1 contains=ALLBUT,pythonBuiltin transparent + syn match pythonAttribute /\.\h\w*/hs=s+1 + \ contains=ALLBUT,pythonBuiltin,pythonFunction,pythonAsync + \ transparent endif " From the 'Python Library Reference' class hierarchy at the bottom. @@ -275,7 +282,7 @@ if !exists("python_no_doctest_highlight") if !exists("python_no_doctest_code_highlight") syn region pythonDoctest \ start="^\s*>>>\s" end="^\s*$" - \ contained contains=ALLBUT,pythonDoctest,@Spell + \ contained contains=ALLBUT,pythonDoctest,pythonFunction,@Spell syn region pythonDoctestValue \ start=+^\s*\%(>>>\s\|\.\.\.\s\|"""\|'''\)\@!\S\++ end="$" \ contained @@ -287,7 +294,7 @@ if !exists("python_no_doctest_highlight") endif " Sync at the beginning of class, function, or method definition. -syn sync match pythonSync grouphere NONE "^\s*\%(def\|class\)\s\+\h\w*\s*(" +syn sync match pythonSync grouphere NONE "^\%(def\|class\)\s\+\h\w*\s*[(:]" " The default highlight links. Can be overridden later. hi def link pythonStatement Statement -- cgit