Merge pull request #23742 from bfredl/neolight

fix(drawline): combine extmark highlight with area hl correctly
This commit is contained in:
bfredl
2023-05-26 11:48:05 +02:00
committed by GitHub
3 changed files with 108 additions and 33 deletions

View File

@@ -660,6 +660,8 @@ describe('extmark decorations', function()
[25] = {background = Screen.colors.LightRed};
[26] = {background=Screen.colors.DarkGrey, foreground=Screen.colors.LightGrey};
[27] = {background = Screen.colors.Plum1};
[28] = {underline = true, foreground = Screen.colors.SlateBlue};
[29] = {foreground = Screen.colors.SlateBlue, background = Screen.colors.LightGray, underline = true};
}
ns = meths.create_namespace 'test'
@@ -1254,8 +1256,53 @@ describe('extmark decorations', function()
meths.buf_set_extmark(0, ns, 0, 3, { end_col = 6, hl_group = 'TestBold', priority = 20 })
screen:expect_unchanged(true)
end)
end)
it('highlights the beginning of a TAB char correctly', function()
screen:try_resize(50, 3)
meths.buf_set_lines(0, 0, -1, true, {'this is the\ttab'})
meths.buf_set_extmark(0, ns, 0, 11, { end_col = 15, hl_group = 'ErrorMsg' })
screen:expect{grid=[[
^this is the{4: tab} |
{1:~ }|
|
]]}
meths.buf_clear_namespace(0, ns, 0, -1)
meths.buf_set_extmark(0, ns, 0, 12, { end_col = 15, hl_group = 'ErrorMsg' })
screen:expect{grid=[[
^this is the {4:tab} |
{1:~ }|
|
]]}
end)
pending('highlight applies to a full Tab in visual block mode #23734', function()
screen:try_resize(50, 8)
meths.buf_set_lines(0, 0, -1, true, {'asdf', '\tasdf', '\tasdf', '\tasdf', 'asdf'})
meths.buf_set_extmark(0, ns, 0, 0, {end_row = 5, end_col = 0, hl_group = 'Underlined'})
screen:expect([[
{28:^asdf} |
{28: asdf} |
{28: asdf} |
{28: asdf} |
{28:asdf} |
{1:~ }|
{1:~ }|
|
]])
feed('<C-V>Gll')
screen:expect([[
{29:asd}{28:f} |
{29: }{28: asdf} |
{29: }{28: asdf} |
{29: }{28: asdf} |
{29:as}{28:^df} |
{1:~ }|
{1:~ }|
{24:-- VISUAL BLOCK --} |
]])
end)
end)
describe('decorations: inline virtual text', function()
local screen, ns

View File

@@ -526,6 +526,41 @@ describe('highlight', function()
})
end)
it("'diff', syntax and extmark", function()
local screen = Screen.new(25,10)
screen:attach()
exec([[
new
call setline(1, ['', '01234 6789'])
windo diffthis
wincmd w
syn match WarningMsg "^.*$"
call nvim_buf_add_highlight(0, -1, 'ErrorMsg', 1, 2, 8)
]])
screen:expect([[
{1: }^ |
{1: }{2:01}{3:234 67}{2:89}{5: }|
{4:~ }|
{4:~ }|
{7:[No Name] [+] }|
{1: } |
{1: }{6:-----------------------}|
{4:~ }|
{8:[No Name] }|
|
]],{
[0] = {Screen.colors.WebGray, foreground = Screen.colors.DarkBlue},
[1] = {background = Screen.colors.Grey, foreground = Screen.colors.Blue4},
[2] = {foreground = Screen.colors.Red, background = Screen.colors.LightBlue},
[3] = {foreground = Screen.colors.Grey100, background = Screen.colors.LightBlue},
[4] = {bold = true, foreground = Screen.colors.Blue},
[5] = {background = Screen.colors.LightBlue},
[6] = {bold = true, background = Screen.colors.LightCyan, foreground = Screen.colors.Blue1},
[7] = {reverse = true, bold = true},
[8] = {reverse = true},
})
end)
end)
describe("'listchars' highlight", function()