diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-12-30 16:24:21 -0500 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-12-30 16:26:43 -0500 |
commit | 6e6544d645f9a9c151a2e027e23d8f79ecd8f7c9 (patch) | |
tree | 0bdbfd3481841a9c22ed6128e7ed5215c62e0003 | |
parent | 22a92a59a68e2b0928a6243c0888b56608a8f8d8 (diff) | |
download | rneovim-6e6544d645f9a9c151a2e027e23d8f79ecd8f7c9.tar.gz rneovim-6e6544d645f9a9c151a2e027e23d8f79ecd8f7c9.tar.bz2 rneovim-6e6544d645f9a9c151a2e027e23d8f79ecd8f7c9.zip |
vim-patch:8.1.1739: deleted match highlighting not updated in other window
Problem: Deleted match highlighting not updated in other window.
Solution: Mark the window for refresh. (closes vim/vim#4720) Also fix that
ambi-width check clears with wrong attributes.
https://github.com/vim/vim/commit/06029a857a3d4d90b3162090506c1e00dc84c60b
-rw-r--r-- | src/nvim/testdir/test_match.vim | 24 | ||||
-rw-r--r-- | src/nvim/window.c | 2 |
2 files changed, 25 insertions, 1 deletions
diff --git a/src/nvim/testdir/test_match.vim b/src/nvim/testdir/test_match.vim index 90dfcf952d..921c3e3c55 100644 --- a/src/nvim/testdir/test_match.vim +++ b/src/nvim/testdir/test_match.vim @@ -1,6 +1,8 @@ " Test for :match, :2match, :3match, clearmatches(), getmatches(), matchadd(), " matchaddpos(), matcharg(), matchdelete(), and setmatches(). +source screendump.vim + function Test_match() highlight MyGroup1 term=bold ctermbg=red guibg=red highlight MyGroup2 term=italic ctermbg=green guibg=green @@ -248,4 +250,26 @@ func Test_matchaddpos_using_negative_priority() set hlsearch& endfunc +func Test_matchdelete_other_window() + if !CanRunVimInTerminal() + throw 'Skipped: cannot make screendumps' + endif + + let lines =<< trim END + call setline(1, 'Hello Vim world') + let mid = matchadd('Error', 'world', 1) + let winid = win_getid() + new + END + call writefile(lines, 'XscriptMatchDelete') + let buf = RunVimInTerminal('-S XscriptMatchDelete', #{rows: 12}) + call term_wait(buf) + call term_sendkeys(buf, ":call matchdelete(mid, winid)\<CR>") + call VerifyScreenDump(buf, 'Test_matchdelete_1', {}) + + call StopVimInTerminal(buf) + call delete('XscriptMatchDelete') +endfunc + + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/nvim/window.c b/src/nvim/window.c index af78c89618..5d4332c75a 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -6680,7 +6680,7 @@ int match_delete(win_T *wp, int id, int perr) rtype = VALID; } xfree(cur); - redraw_later(rtype); + redraw_win_later(wp, rtype); return 0; } |