vim-patch:8.2.2797: Search highlight disappears in the Visual area (#17947)

Problem:    Search highlight disappears in the Visual area.
Solution:   Combine the search attributes. (closes vim/vim#8134)
2d5f385cee
This commit is contained in:
zeertzjq
2022-05-13 21:20:15 +08:00
committed by GitHub
parent 2875d45e79
commit c196119acb
3 changed files with 56 additions and 0 deletions

View File

@@ -3006,6 +3006,10 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool noc
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);
}
} else if (search_attr != 0) {
char_attr = hl_combine_attr(line_attr, search_attr);
}

View File

@@ -925,6 +925,26 @@ func Test_hlsearch_block_visual_match()
call delete('Xhlsearch_block')
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()
CheckFunction test_override
CheckOption incsearch