X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/922268fbd89a49991b5b5b73e969f8daa8a10263..5f4184fb1200b329e810c1e4c866c86fdf44c135:/indent/python.vim diff --git a/indent/python.vim b/indent/python.vim index 22ca76f..86155cf 100644 --- a/indent/python.vim +++ b/indent/python.vim @@ -44,10 +44,7 @@ let s:block_rules_multiple = { \ } " Pairs to look for when searching for opening parenthesis. " The value is the maximum offset in lines. -let s:paren_pairs = {'()': 10, '[]': 100, '{}': 1000} - -" Maximum offset when looking for multiline statements (in round parenthesis). -let s:maxoff_multiline_statement = 50 +let s:paren_pairs = {'()': 50, '[]': 100, '{}': 1000} if &filetype ==# 'pyrex' || &filetype ==# 'cython' let b:control_statement = '\v^\s*(class|def|if|while|with|for|except|cdef|cpdef)>' @@ -125,21 +122,19 @@ function! s:find_opening_paren(...) return nearest endfunction -" Find the start of a multi-line statement (based on surrounding parens). +" Find the start of a multi-line statement function! s:find_start_of_multiline_statement(lnum) let lnum = a:lnum while lnum > 0 - " XXX: not tested?! if getline(lnum - 1) =~# '\\$' let lnum = prevnonblank(lnum - 1) else - call cursor(lnum, 1) - let stopline = max([1, lnum - s:maxoff_multiline_statement]) - let pos = searchpairpos('\V(', '', '\V)', 'bnW', s:skip_special_chars, stopline) - if pos[0] - return pos[0] + let [paren_lnum, _] = s:find_opening_paren(lnum) + if paren_lnum < 1 + return lnum + else + let lnum = paren_lnum endif - return lnum endif endwhile endfunction