diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-04-21 15:11:42 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-04-21 15:11:42 +0200 |
commit | 2d5f385cee3668c44089edcb9d60b0b5d751ee5d (patch) | |
tree | 0e4cac228f7a1420c78d9ca55ceb1da01f7ea4fc /src | |
parent | 753bcf8c7d7cf7b9e1572a80cc513a67020814ac (diff) |
patch 8.2.2797: Search highlight disappears in the Visual areav8.2.2797
Problem: Search highlight disappears in the Visual area.
Solution: Combine the search attributes. (closes #8134)
Diffstat (limited to 'src')
-rw-r--r-- | src/drawline.c | 3 | ||||
-rw-r--r-- | src/testdir/dumps/Test_hlsearch_visual_1.dump | 6 | ||||
-rw-r--r-- | src/testdir/test_search.vim | 20 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 31 insertions, 0 deletions
diff --git a/src/drawline.c b/src/drawline.c index fcb996b4b9..13be022a93 100644 --- a/src/drawline.c +++ b/src/drawline.c @@ -1538,6 +1538,9 @@ win_line( if (area_attr != 0) { char_attr = hl_combine_attr(line_attr, area_attr); + if (!highlight_match) + // let search highlight show in Visual area if possible + char_attr = hl_combine_attr(search_attr, char_attr); # ifdef FEAT_SYN_HL char_attr = hl_combine_attr(syntax_attr, char_attr); # endif diff --git a/src/testdir/dumps/Test_hlsearch_visual_1.dump b/src/testdir/dumps/Test_hlsearch_visual_1.dump new file mode 100644 index 0000000000..99150dbe3b --- /dev/null +++ b/src/testdir/dumps/Test_hlsearch_visual_1.dump @@ -0,0 +1,6 @@ +|x+0&#ffffff0@2| |y+2&#ffff4012|y+2&#e0e0e08@1| +0&&|z@2| | +0&#ffffff0@27 +|x+0&#e0e0e08@2| |y+2&&@2| +0&&|z@2| | +0&#ffffff0@27 +|x+0&#e0e0e08@2| |y+2&&>y+2&#ffff4012@1| +0&#ffffff0|z@2| @28 +|~+0#4040ff13&| @38 +|~| @38 +|-+2#0000000&@1| |V|I|S|U|A|L| |-@1|3+0&&| @8|3|,|6| @10|A|l@1| diff --git a/src/testdir/test_search.vim b/src/testdir/test_search.vim index 5fed81c900..e7c9ac4747 100644 --- a/src/testdir/test_search.vim +++ b/src/testdir/test_search.vim @@ -964,6 +964,26 @@ func Test_hlsearch_dump() call delete('Xhlsearch_script') endfunc +func Test_hlsearch_and_visual() + CheckOption hlsearch + CheckScreendump + + call writefile([ + \ 'set hlsearch', + \ 'call setline(1, repeat(["xxx yyy zzz"], 3))', + \ 'hi Search cterm=bold', + \ '/yyy', + \ 'call cursor(1, 6)', + \ ], 'Xhlvisual_script') + let buf = RunVimInTerminal('-S Xhlvisual_script', {'rows': 6, 'cols': 40}) + call term_sendkeys(buf, "vjj") + call VerifyScreenDump(buf, 'Test_hlsearch_visual_1', {}) + call term_sendkeys(buf, "\<Esc>") + + call StopVimInTerminal(buf) + call delete('Xhlvisual_script') +endfunc + func Test_incsearch_substitute() CheckOption incsearch diff --git a/src/version.c b/src/version.c index a72385929a..3547ef4379 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2797, +/**/ 2796, /**/ 2795, |