diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-08-19 17:15:35 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-08-19 17:15:35 +0100 |
commit | e80086446cc20856ed8359bc8dc87c4d430da4c8 (patch) | |
tree | 2ec2710297c314efa0530ca3f24cbb99de21679c /runtime/autoload | |
parent | 13ed494bb5edc5a02d0ed0feabddb68920f88570 (diff) |
Update runtime files
Diffstat (limited to 'runtime/autoload')
-rw-r--r-- | runtime/autoload/python.vim | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/runtime/autoload/python.vim b/runtime/autoload/python.vim index 4b220708cf..e45dbd9db8 100644 --- a/runtime/autoload/python.vim +++ b/runtime/autoload/python.vim @@ -15,8 +15,9 @@ let s:maxoff = 50 " maximum number of lines to look backwards for () function s:SearchBracket(fromlnum, flags) return searchpairpos('[[({]', '', '[])}]', a:flags, - \ {-> synID('.', col('.'), v:true)->synIDattr('name') - \ =~ '\%(Comment\|Todo\|String\)$'}, + \ {-> synstack('.', col('.')) + \ ->map({_, id -> id->synIDattr('name')}) + \ ->match('\%(Comment\|Todo\|String\)$') >= 0}, \ [0, a:fromlnum - s:maxoff]->max(), s:searchpair_timeout) endfunction @@ -143,12 +144,16 @@ function python#GetIndent(lnum, ...) " If the last character in the line is a comment, do a binary search for " the start of the comment. synID() is slow, a linear search would take " too long on a long line. - if synIDattr(synID(plnum, pline_len, 1), "name") =~ "\\(Comment\\|Todo\\)" + if synstack(plnum, pline_len) + \ ->map({_, id -> id->synIDattr('name')}) + \ ->match('\%(Comment\|Todo\)$') >= 0 let min = 1 let max = pline_len while min < max let col = (min + max) / 2 - if synIDattr(synID(plnum, col, 1), "name") =~ "\\(Comment\\|Todo\\)" + if synstack(plnum, col) + \ ->map({_, id -> id->synIDattr('name')}) + \ ->match('\%(Comment\|Todo\)$') >= 0 let max = col else let min = col + 1 |