diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2018-10-30 00:02:55 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2018-10-30 00:05:25 +0100 |
commit | 18ce6c90636abae594905eecf2e225124ae8ab17 (patch) | |
tree | c7def1cc1de8c7c869560eb9770ee6067ae1323d /runtime/indent/python.vim | |
parent | 17c26d0dcfcc189cc020464ace67cc0a6f2475bd (diff) | |
download | rneovim-18ce6c90636abae594905eecf2e225124ae8ab17.tar.gz rneovim-18ce6c90636abae594905eecf2e225124ae8ab17.tar.bz2 rneovim-18ce6c90636abae594905eecf2e225124ae8ab17.zip |
vim-patch:2c64ca1802b2
Update runtime files
https://github.com/vim/vim/commit/2c64ca1802b2c99b16d2fdf581b68b5baffb082a
Diffstat (limited to 'runtime/indent/python.vim')
-rw-r--r-- | runtime/indent/python.vim | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/runtime/indent/python.vim b/runtime/indent/python.vim index 4ce3c234a5..7ab3cb9f50 100644 --- a/runtime/indent/python.vim +++ b/runtime/indent/python.vim @@ -53,6 +53,11 @@ function GetPythonIndent(lnum) return 0 endif + " searchpair() can be slow sometimes, limit the time to 100 msec or what is + " put in g:pyindent_searchpair_timeout + let searchpair_stopline = 0 + let searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150) + " If the previous line is inside parenthesis, use the indent of the starting " line. " Trick: use the non-existing "dummy" variable to break out of the loop when @@ -61,7 +66,8 @@ function GetPythonIndent(lnum) let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW', \ "line('.') < " . (plnum - s:maxoff) . " ? dummy :" \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" - \ . " =~ '\\(Comment\\|Todo\\|String\\)$'") + \ . " =~ '\\(Comment\\|Todo\\|String\\)$'", + \ searchpair_stopline, searchpair_timeout) if parlnum > 0 let plindent = indent(parlnum) let plnumstart = parlnum @@ -80,14 +86,16 @@ function GetPythonIndent(lnum) let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW', \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" - \ . " =~ '\\(Comment\\|Todo\\|String\\)$'") + \ . " =~ '\\(Comment\\|Todo\\|String\\)$'", + \ searchpair_stopline, searchpair_timeout) if p > 0 if p == plnum " When the start is inside parenthesis, only indent one 'shiftwidth'. let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW', \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" - \ . " =~ '\\(Comment\\|Todo\\|String\\)$'") + \ . " =~ '\\(Comment\\|Todo\\|String\\)$'", + \ searchpair_stopline, searchpair_timeout) if pp > 0 return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth()) endif |