mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
terminal: add tests for palette color forwarding
This commit is contained in:
parent
33cdff1b5c
commit
f707a7ef68
@ -67,7 +67,7 @@ describe('Command-line option', function()
|
|||||||
|
|
|
|
||||||
|
|
|
|
||||||
]], {
|
]], {
|
||||||
[1] = {foreground = 4210943},
|
[1] = {foreground = tonumber('0x4040ff'), fg_indexed=true},
|
||||||
[2] = {bold = true, reverse = true}
|
[2] = {bold = true, reverse = true}
|
||||||
})
|
})
|
||||||
feed('i:cq<CR>')
|
feed('i:cq<CR>')
|
||||||
|
@ -121,13 +121,12 @@ it(':terminal highlight has lower precedence than editor #9964', function()
|
|||||||
local screen = Screen.new(30, 4)
|
local screen = Screen.new(30, 4)
|
||||||
screen:set_default_attr_ids({
|
screen:set_default_attr_ids({
|
||||||
-- "Normal" highlight emitted by the child nvim process.
|
-- "Normal" highlight emitted by the child nvim process.
|
||||||
N_child = {foreground = tonumber('0x4040ff'), background = tonumber('0xffff40')},
|
N_child = {foreground = tonumber('0x4040ff'), background = tonumber('0xffff40'), fg_indexed=true, bg_indexed=true},
|
||||||
-- "Search" highlight emitted by the child nvim process.
|
|
||||||
S_child = {background = tonumber('0xffff40'), italic = true, foreground = tonumber('0x4040ff')},
|
|
||||||
-- "Search" highlight in the parent nvim process.
|
-- "Search" highlight in the parent nvim process.
|
||||||
S = {background = Screen.colors.Green, italic = true, foreground = Screen.colors.Red},
|
S = {background = Screen.colors.Green, italic = true, foreground = Screen.colors.Red},
|
||||||
-- "Question" highlight in the parent nvim process.
|
-- "Question" highlight in the parent nvim process.
|
||||||
Q = {background = tonumber('0xffff40'), bold = true, foreground = Screen.colors.SeaGreen4},
|
-- note: bg is indexed as it comes from the (cterm) child, while fg isn't as it comes from (rgb) parent
|
||||||
|
Q = {background = tonumber('0xffff40'), bold = true, foreground = Screen.colors.SeaGreen4, bg_indexed=true},
|
||||||
})
|
})
|
||||||
screen:attach({rgb=true})
|
screen:attach({rgb=true})
|
||||||
-- Child nvim process in :terminal (with cterm colors).
|
-- Child nvim process in :terminal (with cterm colors).
|
||||||
@ -160,6 +159,54 @@ it(':terminal highlight has lower precedence than editor #9964', function()
|
|||||||
]])
|
]])
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
describe(':terminal highlight forwarding', function()
|
||||||
|
local screen
|
||||||
|
|
||||||
|
before_each(function()
|
||||||
|
clear()
|
||||||
|
screen = Screen.new(50, 7)
|
||||||
|
screen:set_rgb_cterm(true)
|
||||||
|
screen:set_default_attr_ids({
|
||||||
|
[1] = {{reverse = true}, {reverse = true}},
|
||||||
|
[2] = {{bold = true}, {bold = true}},
|
||||||
|
[3] = {{fg_indexed = true, foreground = tonumber('0xe0e000')}, {foreground = 3}},
|
||||||
|
[4] = {{foreground = tonumber('0xff8000')}, {}},
|
||||||
|
})
|
||||||
|
screen:attach()
|
||||||
|
command('enew | call termopen(["'..nvim_dir..'/tty-test"])')
|
||||||
|
feed('i')
|
||||||
|
screen:expect([[
|
||||||
|
tty ready |
|
||||||
|
{1: } |
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
{2:-- TERMINAL --} |
|
||||||
|
]])
|
||||||
|
end)
|
||||||
|
|
||||||
|
it('will handle cterm and rgb attributes', function()
|
||||||
|
if helpers.pending_win32(pending) then return end
|
||||||
|
thelpers.set_fg(3)
|
||||||
|
thelpers.feed_data('text')
|
||||||
|
thelpers.feed_termcode('[38:2:255:128:0m')
|
||||||
|
thelpers.feed_data('color')
|
||||||
|
thelpers.clear_attrs()
|
||||||
|
thelpers.feed_data('text')
|
||||||
|
screen:expect{grid=[[
|
||||||
|
tty ready |
|
||||||
|
{3:text}{4:color}text{1: } |
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
{2:-- TERMINAL --} |
|
||||||
|
]]}
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
|
||||||
describe(':terminal highlight with custom palette', function()
|
describe(':terminal highlight with custom palette', function()
|
||||||
local screen
|
local screen
|
||||||
|
|
||||||
@ -167,7 +214,7 @@ describe(':terminal highlight with custom palette', function()
|
|||||||
clear()
|
clear()
|
||||||
screen = Screen.new(50, 7)
|
screen = Screen.new(50, 7)
|
||||||
screen:set_default_attr_ids({
|
screen:set_default_attr_ids({
|
||||||
[1] = {foreground = tonumber('0x123456')},
|
[1] = {foreground = tonumber('0x123456')}, -- no fg_indexed when overriden
|
||||||
[2] = {foreground = 12},
|
[2] = {foreground = 12},
|
||||||
[3] = {bold = true, reverse = true},
|
[3] = {bold = true, reverse = true},
|
||||||
[5] = {background = 11},
|
[5] = {background = 11},
|
||||||
|
@ -680,11 +680,11 @@ describe('TUI', function()
|
|||||||
screen:set_option('rgb', true)
|
screen:set_option('rgb', true)
|
||||||
screen:set_default_attr_ids({
|
screen:set_default_attr_ids({
|
||||||
[1] = {reverse = true},
|
[1] = {reverse = true},
|
||||||
[2] = {foreground = tonumber('0x4040ff')},
|
[2] = {foreground = tonumber('0x4040ff'), fg_indexed=true},
|
||||||
[3] = {bold = true, reverse = true},
|
[3] = {bold = true, reverse = true},
|
||||||
[4] = {bold = true},
|
[4] = {bold = true},
|
||||||
[5] = {reverse = true, foreground = tonumber('0xe0e000')},
|
[5] = {reverse = true, foreground = tonumber('0xe0e000'), fg_indexed=true},
|
||||||
[6] = {foreground = tonumber('0xe0e000')},
|
[6] = {foreground = tonumber('0xe0e000'), fg_indexed=true},
|
||||||
[7] = {reverse = true, foreground = Screen.colors.SeaGreen4},
|
[7] = {reverse = true, foreground = Screen.colors.SeaGreen4},
|
||||||
[8] = {foreground = Screen.colors.SeaGreen4},
|
[8] = {foreground = Screen.colors.SeaGreen4},
|
||||||
[9] = {bold = true, foreground = Screen.colors.Blue1},
|
[9] = {bold = true, foreground = Screen.colors.Blue1},
|
||||||
@ -728,6 +728,54 @@ describe('TUI', function()
|
|||||||
]])
|
]])
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('forwards :term palette colors with termguicolors', function()
|
||||||
|
screen:set_rgb_cterm(true)
|
||||||
|
screen:set_default_attr_ids({
|
||||||
|
[1] = {{reverse = true}, {reverse = true}},
|
||||||
|
[2] = {{bold = true, reverse = true}, {bold = true, reverse = true}},
|
||||||
|
[3] = {{bold = true}, {bold = true}},
|
||||||
|
[4] = {{fg_indexed = true, foreground = tonumber('0xe0e000')}, {foreground = 3}},
|
||||||
|
[5] = {{foreground = tonumber('0xff8000')}, {}},
|
||||||
|
})
|
||||||
|
|
||||||
|
feed_data(':set statusline=^^^^^^^\n')
|
||||||
|
feed_data(':set termguicolors\n')
|
||||||
|
feed_data(':terminal '..nvim_dir..'/tty-test\n')
|
||||||
|
-- Depending on platform the above might or might not fit in the cmdline
|
||||||
|
-- so clear it for consistent behavior.
|
||||||
|
feed_data(':\027')
|
||||||
|
screen:expect{grid=[[
|
||||||
|
{1:t}ty ready |
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
{2:^^^^^^^ }|
|
||||||
|
|
|
||||||
|
{3:-- TERMINAL --} |
|
||||||
|
]]}
|
||||||
|
feed_data(':call chansend(&channel, "\\033[38;5;3mtext\\033[38:2:255:128:0mcolor\\033[0;10mtext")\n')
|
||||||
|
screen:expect{grid=[[
|
||||||
|
{1:t}ty ready |
|
||||||
|
{4:text}{5:color}text |
|
||||||
|
|
|
||||||
|
|
|
||||||
|
{2:^^^^^^^ }|
|
||||||
|
|
|
||||||
|
{3:-- TERMINAL --} |
|
||||||
|
]]}
|
||||||
|
|
||||||
|
feed_data(':set notermguicolors\n')
|
||||||
|
screen:expect{grid=[[
|
||||||
|
{1:t}ty ready |
|
||||||
|
{4:text}colortext |
|
||||||
|
|
|
||||||
|
|
|
||||||
|
{2:^^^^^^^ }|
|
||||||
|
:set notermguicolors |
|
||||||
|
{3:-- TERMINAL --} |
|
||||||
|
]]}
|
||||||
|
end)
|
||||||
|
|
||||||
it('is included in nvim_list_uis()', function()
|
it('is included in nvim_list_uis()', function()
|
||||||
feed_data(':echo map(nvim_list_uis(), {k,v -> sort(items(filter(v, {k,v -> k[:3] !=# "ext_" })))})\r')
|
feed_data(':echo map(nvim_list_uis(), {k,v -> sort(items(filter(v, {k,v -> k[:3] !=# "ext_" })))})\r')
|
||||||
screen:expect([=[
|
screen:expect([=[
|
||||||
|
@ -181,11 +181,11 @@ describe('ext_hlstate detailed highlights', function()
|
|||||||
it("work with :terminal", function()
|
it("work with :terminal", function()
|
||||||
screen:set_default_attr_ids({
|
screen:set_default_attr_ids({
|
||||||
[1] = {{}, {{hi_name = "TermCursorNC", ui_name = "TermCursorNC", kind = "ui"}}},
|
[1] = {{}, {{hi_name = "TermCursorNC", ui_name = "TermCursorNC", kind = "ui"}}},
|
||||||
[2] = {{foreground = 52479}, {{kind = "term"}}},
|
[2] = {{foreground = tonumber('0x00ccff'), fg_indexed=true}, {{kind = "term"}}},
|
||||||
[3] = {{bold = true, foreground = 52479}, {{kind = "term"}}},
|
[3] = {{bold = true, foreground = tonumber('0x00ccff'), fg_indexed=true}, {{kind = "term"}}},
|
||||||
[4] = {{foreground = 52479}, {2, 1}},
|
[4] = {{foreground = tonumber('0x00ccff'), fg_indexed=true}, {2, 1}},
|
||||||
[5] = {{foreground = 4259839}, {{kind = "term"}}},
|
[5] = {{foreground = tonumber('0x40ffff'), fg_indexed=true}, {{kind = "term"}}},
|
||||||
[6] = {{foreground = 4259839}, {5, 1}},
|
[6] = {{foreground = tonumber('0x40ffff'), fg_indexed=true}, {5, 1}},
|
||||||
[7] = {{}, {{hi_name = "MsgArea", ui_name = "MsgArea", kind = "ui"}}},
|
[7] = {{}, {{hi_name = "MsgArea", ui_name = "MsgArea", kind = "ui"}}},
|
||||||
})
|
})
|
||||||
command('enew | call termopen(["'..nvim_dir..'/tty-test"])')
|
command('enew | call termopen(["'..nvim_dir..'/tty-test"])')
|
||||||
|
@ -1515,7 +1515,8 @@ function Screen:_equal_attrs(a, b)
|
|||||||
a.italic == b.italic and a.reverse == b.reverse and
|
a.italic == b.italic and a.reverse == b.reverse and
|
||||||
a.foreground == b.foreground and a.background == b.background and
|
a.foreground == b.foreground and a.background == b.background and
|
||||||
a.special == b.special and a.blend == b.blend and
|
a.special == b.special and a.blend == b.blend and
|
||||||
a.strikethrough == b.strikethrough
|
a.strikethrough == b.strikethrough and
|
||||||
|
a.fg_indexed == b.fg_indexed and a.bg_indexed == b.bg_indexed
|
||||||
end
|
end
|
||||||
|
|
||||||
function Screen:_equal_info(a, b)
|
function Screen:_equal_info(a, b)
|
||||||
|
Loading…
Reference in New Issue
Block a user