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}
|
||||
})
|
||||
feed('i:cq<CR>')
|
||||
|
@ -121,13 +121,12 @@ it(':terminal highlight has lower precedence than editor #9964', function()
|
||||
local screen = Screen.new(30, 4)
|
||||
screen:set_default_attr_ids({
|
||||
-- "Normal" highlight emitted by the child nvim process.
|
||||
N_child = {foreground = tonumber('0x4040ff'), background = tonumber('0xffff40')},
|
||||
-- "Search" highlight emitted by the child nvim process.
|
||||
S_child = {background = tonumber('0xffff40'), italic = true, foreground = tonumber('0x4040ff')},
|
||||
N_child = {foreground = tonumber('0x4040ff'), background = tonumber('0xffff40'), fg_indexed=true, bg_indexed=true},
|
||||
-- "Search" highlight in the parent nvim process.
|
||||
S = {background = Screen.colors.Green, italic = true, foreground = Screen.colors.Red},
|
||||
-- "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})
|
||||
-- Child nvim process in :terminal (with cterm colors).
|
||||
@ -160,6 +159,54 @@ it(':terminal highlight has lower precedence than editor #9964', function()
|
||||
]])
|
||||
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()
|
||||
local screen
|
||||
|
||||
@ -167,7 +214,7 @@ describe(':terminal highlight with custom palette', function()
|
||||
clear()
|
||||
screen = Screen.new(50, 7)
|
||||
screen:set_default_attr_ids({
|
||||
[1] = {foreground = tonumber('0x123456')},
|
||||
[1] = {foreground = tonumber('0x123456')}, -- no fg_indexed when overriden
|
||||
[2] = {foreground = 12},
|
||||
[3] = {bold = true, reverse = true},
|
||||
[5] = {background = 11},
|
||||
|
@ -680,11 +680,11 @@ describe('TUI', function()
|
||||
screen:set_option('rgb', true)
|
||||
screen:set_default_attr_ids({
|
||||
[1] = {reverse = true},
|
||||
[2] = {foreground = tonumber('0x4040ff')},
|
||||
[2] = {foreground = tonumber('0x4040ff'), fg_indexed=true},
|
||||
[3] = {bold = true, reverse = true},
|
||||
[4] = {bold = true},
|
||||
[5] = {reverse = true, foreground = tonumber('0xe0e000')},
|
||||
[6] = {foreground = tonumber('0xe0e000')},
|
||||
[5] = {reverse = true, foreground = tonumber('0xe0e000'), fg_indexed=true},
|
||||
[6] = {foreground = tonumber('0xe0e000'), fg_indexed=true},
|
||||
[7] = {reverse = true, foreground = Screen.colors.SeaGreen4},
|
||||
[8] = {foreground = Screen.colors.SeaGreen4},
|
||||
[9] = {bold = true, foreground = Screen.colors.Blue1},
|
||||
@ -728,6 +728,54 @@ describe('TUI', function()
|
||||
]])
|
||||
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()
|
||||
feed_data(':echo map(nvim_list_uis(), {k,v -> sort(items(filter(v, {k,v -> k[:3] !=# "ext_" })))})\r')
|
||||
screen:expect([=[
|
||||
|
@ -181,11 +181,11 @@ describe('ext_hlstate detailed highlights', function()
|
||||
it("work with :terminal", function()
|
||||
screen:set_default_attr_ids({
|
||||
[1] = {{}, {{hi_name = "TermCursorNC", ui_name = "TermCursorNC", kind = "ui"}}},
|
||||
[2] = {{foreground = 52479}, {{kind = "term"}}},
|
||||
[3] = {{bold = true, foreground = 52479}, {{kind = "term"}}},
|
||||
[4] = {{foreground = 52479}, {2, 1}},
|
||||
[5] = {{foreground = 4259839}, {{kind = "term"}}},
|
||||
[6] = {{foreground = 4259839}, {5, 1}},
|
||||
[2] = {{foreground = tonumber('0x00ccff'), fg_indexed=true}, {{kind = "term"}}},
|
||||
[3] = {{bold = true, foreground = tonumber('0x00ccff'), fg_indexed=true}, {{kind = "term"}}},
|
||||
[4] = {{foreground = tonumber('0x00ccff'), fg_indexed=true}, {2, 1}},
|
||||
[5] = {{foreground = tonumber('0x40ffff'), fg_indexed=true}, {{kind = "term"}}},
|
||||
[6] = {{foreground = tonumber('0x40ffff'), fg_indexed=true}, {5, 1}},
|
||||
[7] = {{}, {{hi_name = "MsgArea", ui_name = "MsgArea", kind = "ui"}}},
|
||||
})
|
||||
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.foreground == b.foreground and a.background == b.background 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
|
||||
|
||||
function Screen:_equal_info(a, b)
|
||||
|
Loading…
Reference in New Issue
Block a user