From 66c384d4e806a5e8de53bc57a05f0ddd8c8a9d1c Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 28 Feb 2023 09:34:27 +0100 Subject: vim-patch:partial:dd60c365cd26 (#22437) vim-patch:partial:dd60c365cd26 Update runtime files https://github.com/vim/vim/commit/dd60c365cd2630794be84d63c4fe287124a30b97 Co-authored-by: Bram Moolenaar Skip: eval.txt, repeat.txt (needs `getscriptinfo()`) --- runtime/plugin/matchparen.vim | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'runtime/plugin/matchparen.vim') diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim index 3982489b92..e19b283228 100644 --- a/runtime/plugin/matchparen.vim +++ b/runtime/plugin/matchparen.vim @@ -108,8 +108,9 @@ func s:Highlight_Matching_Pair() " searchpairpos()'s skip argument. " We match "escape" for special items, such as lispEscapeSpecial, and " match "symbol" for lispBarSymbol. - let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' . - \ '''v:val =~? "string\\|character\\|singlequote\\|escape\\|symbol\\|comment"''))' + let s_skip = 'synstack(".", col("."))' + \ . '->indexof({_, id -> synIDattr(id, "name") =~? ' + \ . '"string\\|character\\|singlequote\\|escape\\|symbol\\|comment"}) >= 0' " If executing the expression determines that the cursor is currently in " one of the syntax types, then we want searchpairpos() to find the pair " within those syntax types (i.e., not skip). Otherwise, the cursor is -- cgit From cbf54ec2a5aaa1a00ff89e26bab44a30d09d4631 Mon Sep 17 00:00:00 2001 From: Sean Dewar Date: Sun, 13 Aug 2023 13:25:10 +0100 Subject: vim-patch:e978b4534a5e (#24697) Farewell to Bram and dedicate upcoming Vim 9.1 to him (vim/vim#12749) https://github.com/vim/vim/commit/e978b4534a5e10471108259118c0ef791106fd92 Also update the header for the following files that were converted to Vim9 script upstream: - autoload/ccomplete.lua (vim9jitted) - ftplugin.vim - ftplugof.vim - indent.vim - indent/vim.vim - makemenu.vim This also updates the "Last Change" dates, even if some changes (due to rewrites to Vim9 script) were not ported. There's still a few other places where Bram is still mentioned as a maintainer in the files we and Vim have: - ftplugin/bash.vim - indent/bash.vim - indent/html.vim - indent/mail.vim - macros/accents.vim - macros/editexisting.vim - syntax/bash.vim - syntax/shared/typescriptcommon.vim - syntax/tar.vim - syntax/typescript.vim - syntax/typescriptreact.vim - syntax/zimbu.vim Maybe future patches will address that. Also exclude changes to .po files that didn't apply automatically (the `:messages` maintainer string isn't used in Nvim anyway). Co-authored-by: Christian Brabandt --- runtime/plugin/matchparen.vim | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'runtime/plugin/matchparen.vim') diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim index e19b283228..b33ecd557c 100644 --- a/runtime/plugin/matchparen.vim +++ b/runtime/plugin/matchparen.vim @@ -1,6 +1,7 @@ " Vim plugin for showing matching parens -" Maintainer: Bram Moolenaar -" Last Change: 2022 Dec 01 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Exit quickly when: " - this plugin was already loaded (or disabled) -- cgit From fc02908c97fa850964a1f15a32eb7a872449b7e7 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 21 Oct 2023 18:04:08 +0800 Subject: vim-patch:d3e277f279ed (#25734) matchparen: do not use hard-coded match id (vim/vim#13393) * matchparen: do not use hard-coded match id Instead of using the hard-coded match id 3, which may also be used by other plugins, let the matchparen plugin use whatever ids are automatically returned when calling matchaddpos(). For backwards-compatibility, keep the `:3match` call, which will still use the hard-coded id 3 (as mentioned in :h :3match). closes: vim/vim#13381 https://github.com/vim/vim/commit/d3e277f279ed628809eb6857ea3ebcfca566ca2a Co-authored-by: Christian Brabandt --- runtime/plugin/matchparen.vim | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'runtime/plugin/matchparen.vim') diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim index b33ecd557c..9d57545ee8 100644 --- a/runtime/plugin/matchparen.vim +++ b/runtime/plugin/matchparen.vim @@ -1,6 +1,6 @@ " Vim plugin for showing matching parens " Maintainer: The Vim Project -" Last Change: 2023 Aug 10 +" Last Change: 2023 Oct 20 " Former Maintainer: Bram Moolenaar " Exit quickly when: @@ -18,6 +18,8 @@ if !exists("g:matchparen_insert_timeout") let g:matchparen_insert_timeout = 60 endif +let s:has_matchaddpos = exists('*matchaddpos') + augroup matchparen " Replace all matchparen autocommands autocmd! CursorMoved,CursorMovedI,WinEnter,BufWinEnter,WinScrolled * call s:Highlight_Matching_Pair() @@ -38,6 +40,9 @@ set cpo-=C " The function that is invoked (very often) to define a ":match" highlighting " for any matching paren. func s:Highlight_Matching_Pair() + if !exists("w:matchparen_ids") + let w:matchparen_ids = [] + endif " Remove any previous match. call s:Remove_Matches() @@ -185,11 +190,12 @@ func s:Highlight_Matching_Pair() " If a match is found setup match highlighting. if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom - if exists('*matchaddpos') - call matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10, 3) + if s:has_matchaddpos + call add(w:matchparen_ids, matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10)) else exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) . \ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/' + call add(w:matchparen_ids, 3) endif let w:paren_hl_on = 1 endif @@ -197,12 +203,13 @@ endfunction func s:Remove_Matches() if exists('w:paren_hl_on') && w:paren_hl_on - silent! call matchdelete(3) + while !empty(w:matchparen_ids) + silent! call remove(w:matchparen_ids, 0)->matchdelete() + endwhile let w:paren_hl_on = 0 endif endfunc - " Define commands that will disable and enable the plugin. command DoMatchParen call s:DoMatchParen() command NoMatchParen call s:NoMatchParen() -- cgit From 2a58aa57098a4876afa8d865d6d9ec32407d7f11 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Mon, 13 Nov 2023 10:47:12 +0800 Subject: vim-patch:9.0.2102: matchparen highlight not cleared in completion mode (#26019) Problem: matchparen highlight not cleared in completion mode Solution: Clear matchparen highlighting in completion mode Remove hard-coded hack in insexpand.c to clear the :3match before displaying the completion menu. Add a test for matchparen highlighting. While at it, move all test tests related to the matchparen plugin into a separate test file. closes: vim/vim#13493 closes: vim/vim#13524 https://github.com/vim/vim/commit/9588666360e94de3ff58d4bc79aa9148fbf5fc44 Co-authored-by: Christian Brabandt --- runtime/plugin/matchparen.vim | 1 + 1 file changed, 1 insertion(+) (limited to 'runtime/plugin/matchparen.vim') diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim index 9d57545ee8..4235a0d39b 100644 --- a/runtime/plugin/matchparen.vim +++ b/runtime/plugin/matchparen.vim @@ -26,6 +26,7 @@ augroup matchparen autocmd! WinLeave,BufLeave * call s:Remove_Matches() if exists('##TextChanged') autocmd! TextChanged,TextChangedI * call s:Highlight_Matching_Pair() + autocmd! TextChangedP * call s:Remove_Matches() endif augroup END -- cgit