diff options
author | Aufar Gilbran <aufargilbran@gmail.com> | 2020-08-19 00:51:16 +0800 |
---|---|---|
committer | Aufar Gilbran <aufargilbran@gmail.com> | 2020-09-11 10:37:52 +0800 |
commit | b59c293c25dce6387c939d536c4d7b0f98d83d9e (patch) | |
tree | 100db977b323bd9c922c27880c6d08878895a976 | |
parent | f2743cfb6555ad0c917a59539a97f74737479ef1 (diff) | |
download | rneovim-b59c293c25dce6387c939d536c4d7b0f98d83d9e.tar.gz rneovim-b59c293c25dce6387c939d536c4d7b0f98d83d9e.tar.bz2 rneovim-b59c293c25dce6387c939d536c4d7b0f98d83d9e.zip |
vim-patch:8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Problem: Wrong highlight when 'incsearch' set and cancelling :s.
Solution: Reset search line range. (Hirohito Higashi, Masamichi Abe)
https://github.com/vim/vim/commit/f13daa46da85a80dd05704cdde0660c2b2651a5a
-rw-r--r-- | src/nvim/ex_getln.c | 8 | ||||
-rw-r--r-- | src/nvim/testdir/test_search.vim | 9 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 49e017fda1..e89d835981 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -604,13 +604,19 @@ static void finish_incsearch_highlighting(int gotesc, incsearch_state_T *s, } restore_viewstate(&s->old_viewstate); highlight_match = false; + + // by default search all lines + search_first_line = 0; + search_last_line = MAXLNUM; + + p_magic = s->magic_save; + validate_cursor(); // needed for TAB if (call_update_screen) { update_screen(SOME_VALID); } else { redraw_all_later(SOME_VALID); } - p_magic = s->magic_save; } } diff --git a/src/nvim/testdir/test_search.vim b/src/nvim/testdir/test_search.vim index 479311e934..baa44da665 100644 --- a/src/nvim/testdir/test_search.vim +++ b/src/nvim/testdir/test_search.vim @@ -696,6 +696,15 @@ func Test_incsearch_substitute_dump() call VerifyScreenDump(buf, 'Test_incsearch_substitute_09', {}) call term_sendkeys(buf, "\<Esc>") + call term_sendkeys(buf, ":set nocursorline\<CR>") + + " All matches are highlighted for 'hlsearch' after the incsearch canceled + call term_sendkeys(buf, "1G*") + call term_sendkeys(buf, ":2,5s/foo") + sleep 100m + call term_sendkeys(buf, "\<Esc>") + call VerifyScreenDump(buf, 'Test_incsearch_substitute_10', {}) + call StopVimInTerminal(buf) call delete('Xis_subst_script') endfunc |