diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 95737d95bb..d7dcae4c57 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -556,6 +556,7 @@ static void may_do_incsearch_highlighting(int firstc, int count, incsearch_state curwin->w_cursor = s->search_start; } else if (found != 0) { curwin->w_cursor = end_pos; + curwin->w_valid_cursor = end_pos; // mark as valid for cmdline_show redraw } msg_starthere(); diff --git a/test/functional/ui/cmdline2_spec.lua b/test/functional/ui/cmdline2_spec.lua index e13ef89183..f2d0a28f5a 100644 --- a/test/functional/ui/cmdline2_spec.lua +++ b/test/functional/ui/cmdline2_spec.lua @@ -43,4 +43,15 @@ describe('cmdline2', function() ]]) n.assert_alive() end) + + it("redraw does not clear 'incsearch' highlight with conceal", function() + exec('call setline(1, ["foo", "foobar"]) | set conceallevel=1 concealcursor=c') + feed('/foo') + screen:expect([[ + {10:foo} | + {2:foo}bar | + {1:~ }|*11 + /foo^ | + ]]) + end) end)