mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
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:
parent
2875d45e79
commit
c196119acb
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -7,6 +7,7 @@ local eval = helpers.eval
|
||||
local feed = helpers.feed
|
||||
local funcs = helpers.funcs
|
||||
local poke_eventloop = helpers.poke_eventloop
|
||||
local exec = helpers.exec
|
||||
|
||||
describe('search cmdline', function()
|
||||
local screen
|
||||
@ -640,3 +641,34 @@ describe('search cmdline', function()
|
||||
feed('<esc>')
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('Search highlight', function()
|
||||
before_each(clear)
|
||||
it('Search highlight is combined with Visual highlight vim-patch:8.2.2797', function()
|
||||
local screen = Screen.new(40, 6)
|
||||
screen:set_default_attr_ids({
|
||||
[1] = {bold = true, foreground = Screen.colors.Blue}, -- NonText
|
||||
[2] = {bold = true}, -- ModeMsg, Search
|
||||
[3] = {background = Screen.colors.LightGrey}, -- Visual
|
||||
[4] = {background = Screen.colors.Yellow, bold = true}, -- Search
|
||||
[5] = {background = Screen.colors.LightGrey, bold = true}, -- Visual + Search
|
||||
})
|
||||
screen:attach()
|
||||
exec([[
|
||||
set hlsearch noincsearch
|
||||
call setline(1, repeat(["xxx yyy zzz"], 3))
|
||||
hi Search gui=bold
|
||||
/yyy
|
||||
call cursor(1, 6)
|
||||
]])
|
||||
feed('vjj')
|
||||
screen:expect([[
|
||||
xxx {4:y}{5:yy}{3: zzz} |
|
||||
{3:xxx }{5:yyy}{3: zzz} |
|
||||
{3:xxx }{5:y}{4:^yy} zzz |
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{2:-- VISUAL --} |
|
||||
]])
|
||||
end)
|
||||
end)
|
||||
|
Loading…
Reference in New Issue
Block a user