vim-patch:9.0.0969: matchparen highlight is not updated when switching buffers (#21227)

Problem:    Matchparen highlight is not updated when switching buffers.
Solution:   Listen to the BufLeave and the BufWinEnter autocmd events.
            (closes vim/vim#11626)

28a896f54d

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
zeertzjq
2022-11-29 10:17:57 +08:00
committed by GitHub
parent 615f124003
commit 65e8ed45de
8 changed files with 96 additions and 24 deletions

View File

@@ -1,31 +1,28 @@
local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
local call = helpers.call
local clear = helpers.clear
local feed = helpers.feed
local feed_command = helpers.feed_command
local funcs = helpers.funcs
local meths = helpers.meths
local eq = helpers.eq
local exec = helpers.exec
describe('visual line mode', function()
local screen
before_each(clear)
describe('visual line mode', function()
-- oldtest: Test_visual_block_scroll()
it('redraws properly after scrolling with matchparen loaded and scrolloff=1', function()
clear{args={'-u', 'NORC'}}
screen = Screen.new(30, 7)
local screen = Screen.new(30, 7)
screen:attach()
screen:set_default_attr_ids({
[1] = {bold = true},
[2] = {background = Screen.colors.LightGrey},
})
eq(1, meths.get_var('loaded_matchparen'))
feed_command('set scrolloff=1')
funcs.setline(1, {'a', 'b', 'c', 'd', 'e', '', '{', '}', '{', 'f', 'g', '}'})
call('cursor', 5, 1)
exec([[
source $VIMRUNTIME/plugin/matchparen.vim
set scrolloff=1
call setline(1, ['a', 'b', 'c', 'd', 'e', '', '{', '}', '{', 'f', 'g', '}'])
call cursor(5, 1)
]])
feed('V<c-d><c-d>')
screen:expect([[
@@ -41,8 +38,8 @@ describe('visual line mode', function()
end)
describe('visual block mode', function()
-- oldtest: Test_visual_block_with_virtualedit()
it('shows selection correctly with virtualedit=block', function()
clear()
local screen = Screen.new(30, 7)
screen:set_default_attr_ids({
[1] = {bold = true}, -- ModeMsg