diff --git a/README.md b/README.md index c1b6b0d..37062f7 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ let g:python_highlight_all = 1 | `g:python_highlight_indent_errors` | Highlight indentation errors | `0` | | `g:python_highlight_space_errors` | Highlight trailing spaces | `0` | | `g:python_highlight_doctests` | Highlight doc-tests | `0` | +| `g:python_highlight_func_calls` | Highlight functions calls | `0` | | `g:python_highlight_class_vars` | Highlight class variables `self` and `cls` | `0` | | `g:python_highlight_operators` | Highlight all operators | `0` | | `g:python_highlight_all` | Enable all highlight options above, except for previously set. | `0` | diff --git a/doc/python-syntax.txt b/doc/python-syntax.txt index 01bd1fe..8c8f8f2 100644 --- a/doc/python-syntax.txt +++ b/doc/python-syntax.txt @@ -92,6 +92,9 @@ following command to your `~/.config/nvim/init.vim` or `~/.vimrc`: > `g:python_highlight_doctests` (default `0`) Highlight doc-tests +`g:python_highlight_func_calls` (default `0`) + Highlight functions calls + `g:python_highlight_class_vars` (default `0`) Highlight class variables `self` and `cls` diff --git a/syntax/python.vim b/syntax/python.vim index 8fc77e3..0a29486 100644 --- a/syntax/python.vim +++ b/syntax/python.vim @@ -54,6 +54,7 @@ if s:Enabled('g:python_highlight_all') call s:EnableByDefault('g:python_highlight_space_errors') call s:EnableByDefault('g:python_highlight_doctests') call s:EnableByDefault('g:python_print_as_function') + call s:EnableByDefault('g:python_highlight_func_calls') call s:EnableByDefault('g:python_highlight_class_vars') call s:EnableByDefault('g:python_highlight_operators') endif @@ -64,7 +65,7 @@ endif syn keyword pythonStatement break continue del return pass yield global assert lambda with syn keyword pythonStatement raise nextgroup=pythonExClass skipwhite -syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite +syn keyword pythonStatement def class nextgroup=pythonFunctionContained skipwhite if s:Enabled('g:python_highlight_class_vars') syn keyword pythonClassVar self cls endif @@ -85,12 +86,12 @@ if s:Python2Syntax() endif syn keyword pythonStatement exec syn keyword pythonImport as - syn match pythonFunction '[a-zA-Z_][a-zA-Z0-9_]*' display contained + syn match pythonFunctionContained '[a-zA-Z_][a-zA-Z0-9_]*' display contained else syn keyword pythonStatement as nonlocal syn match pythonStatement '\v\.@' - syn match pythonFunction '\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*' display contained - syn match pythonStatement '\' nextgroup=pythonFunction skipwhite + syn match pythonFunctionContained '\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*' display contained + syn match pythonStatement '\' nextgroup=pythonFunctionContained skipwhite syn match pythonStatement '\' syn match pythonStatement '\' syn cluster pythonExpression contains=pythonStatement,pythonRepeat,pythonConditional,pythonOperator,pythonNumber,pythonHexNumber,pythonOctNumber,pythonBinNumber,pythonFloat,pythonString,pythonBytes,pythonBoolean,pythonNone,pythonSingleton,pythonBuiltinObj,pythonBuiltinFunc,pythonBuiltinType @@ -394,6 +395,18 @@ if s:Enabled('g:python_highlight_exceptions') unlet s:exs_re endif +" +" Function calls +" + +if s:Enabled('g:python_highlight_func_calls') + syn match pythonFunctionCall '\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\ze\%(\s*(\)' +endif + +" +" Misc +" + if s:Enabled('g:python_slow_sync') syn sync minlines=2000 else @@ -415,7 +428,8 @@ if v:version >= 508 || !exists('did_python_syn_inits') HiLink pythonStatement Statement HiLink pythonRaiseFromStatement Statement HiLink pythonImport Include - HiLink pythonFunction Function + HiLink pythonFunctionContained Function + HiLink pythonFunctionCall Function HiLink pythonConditional Conditional HiLink pythonRepeat Repeat HiLink pythonException Exception diff --git a/tests/test.py b/tests/test.py index 5c494fd..e6e8d1b 100644 --- a/tests/test.py +++ b/tests/test.py @@ -18,8 +18,14 @@ raise Exception from ex yield from def functionname +functionname() +functionname () +functionname () +test.functionname() +test.functionname () class Classname def функция +функция() class Класс # Keywords: Python 2