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) {
|
if (area_attr != 0) {
|
||||||
char_attr = hl_combine_attr(line_attr, area_attr);
|
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) {
|
} else if (search_attr != 0) {
|
||||||
char_attr = hl_combine_attr(line_attr, search_attr);
|
char_attr = hl_combine_attr(line_attr, search_attr);
|
||||||
}
|
}
|
||||||
|
@ -925,6 +925,26 @@ func Test_hlsearch_block_visual_match()
|
|||||||
call delete('Xhlsearch_block')
|
call delete('Xhlsearch_block')
|
||||||
endfunc
|
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()
|
func Test_incsearch_substitute()
|
||||||
CheckFunction test_override
|
CheckFunction test_override
|
||||||
CheckOption incsearch
|
CheckOption incsearch
|
||||||
|
@ -7,6 +7,7 @@ local eval = helpers.eval
|
|||||||
local feed = helpers.feed
|
local feed = helpers.feed
|
||||||
local funcs = helpers.funcs
|
local funcs = helpers.funcs
|
||||||
local poke_eventloop = helpers.poke_eventloop
|
local poke_eventloop = helpers.poke_eventloop
|
||||||
|
local exec = helpers.exec
|
||||||
|
|
||||||
describe('search cmdline', function()
|
describe('search cmdline', function()
|
||||||
local screen
|
local screen
|
||||||
@ -640,3 +641,34 @@ describe('search cmdline', function()
|
|||||||
feed('<esc>')
|
feed('<esc>')
|
||||||
end)
|
end)
|
||||||
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