0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00

patch 9.0.0969: matchparen highlight is not updated when switching buffers

Problem:    Matchparen highlight is not updated when switching buffers.
Solution:   Listen to the BufLeave and the BufWinEnter autocmd events.
            (closes #11626)
This commit is contained in:
Bram Moolenaar 2022-11-28 22:21:12 +00:00
parent c13e998d4a
commit 28a896f54d
5 changed files with 46 additions and 3 deletions

View File

@ -1,6 +1,6 @@
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2021 Apr 08
" Last Change: 2022 Nov 28
" Exit quickly when:
" - this plugin was already loaded (or disabled)
@ -19,8 +19,8 @@ endif
augroup matchparen
" Replace all matchparen autocommands
autocmd! CursorMoved,CursorMovedI,WinEnter,WinScrolled * call s:Highlight_Matching_Pair()
autocmd! WinLeave * call s:Remove_Matches()
autocmd! CursorMoved,CursorMovedI,WinEnter,BufWinEnter,WinScrolled * call s:Highlight_Matching_Pair()
autocmd! WinLeave,BufLeave * call s:Remove_Matches()
if exists('##TextChanged')
autocmd! TextChanged,TextChangedI * call s:Highlight_Matching_Pair()
endif

View File

@ -0,0 +1,5 @@
>(+0&#40ffff15|)| +0&#ffffff0@72
|~+0#4040ff13&| @73
|~| @73
|~| @73
| +0#0000000&@56|1|,|1| @10|A|l@1|

View File

@ -0,0 +1,5 @@
>a+0&#ffffff0@1| @72
|~+0#4040ff13&| @73
|~| @73
|~| @73
| +0#0000000&@56|1|,|1| @10|A|l@1|

View File

@ -237,6 +237,37 @@ func Test_visual_block_scroll()
call StopVimInTerminal(buf)
endfunc
" Test for clearing paren highlight when switching buffers
func Test_matchparen_clear_highlight()
CheckScreendump
let lines =<< trim END
source $VIMRUNTIME/plugin/matchparen.vim
set hidden
call setline(1, ['()'])
normal 0
func OtherBuffer()
enew
exe "normal iaa\<Esc>0"
endfunc
END
call writefile(lines, 'XMatchparenClear', 'D')
let buf = RunVimInTerminal('-S XMatchparenClear', #{rows: 5})
call VerifyScreenDump(buf, 'Test_matchparen_clear_highlight_1', {})
call term_sendkeys(buf, ":call OtherBuffer()\<CR>:\<Esc>")
call VerifyScreenDump(buf, 'Test_matchparen_clear_highlight_2', {})
call term_sendkeys(buf, "\<C-^>:\<Esc>")
call VerifyScreenDump(buf, 'Test_matchparen_clear_highlight_1', {})
call term_sendkeys(buf, "\<C-^>:\<Esc>")
call VerifyScreenDump(buf, 'Test_matchparen_clear_highlight_2', {})
call StopVimInTerminal(buf)
endfunc
func Test_display_scroll_at_topline()
CheckScreendump

View File

@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
969,
/**/
968,
/**/