aboutsummaryrefslogtreecommitdiff
path: root/test/functional
diff options
context:
space:
mode:
authorEvgeni Chasnovski <evgeni.chasnovski@gmail.com>2024-06-14 12:28:49 +0300
committerGitHub <noreply@github.com>2024-06-14 17:28:49 +0800
commit458473acb8d641cadb238726539b119762050a47 (patch)
tree7d827d477191fd84109e509180daefb0ddb43807 /test/functional
parent0a9c81d70964f905112857900fbaa6aae590a96d (diff)
downloadrneovim-458473acb8d641cadb238726539b119762050a47.tar.gz
rneovim-458473acb8d641cadb238726539b119762050a47.tar.bz2
rneovim-458473acb8d641cadb238726539b119762050a47.zip
fix(highlight): add `StatusLineTerm`/`StatusLineTermNC` to `:color vim` (#29313)
Problem: both `StatusLineTerm`/`StatusLineTermNC` are now explicitly used, but `:color vim` does not set them to the values used in Vim. This might be fine if `:color vim` is treated as "the state of default color scheme prior the big update", but it seems to be better treated as "Vim's default color scheme" (how it is documented in its header). Solution: add `StatusLineTerm`/`StatusLineTermNC` definitions to 'runtime/colors/vim.lua'. Use explicit foreground colors ('Whte'/'Black') instead of `guifg=bg` used in source, as the latter caused some problems in the past (if `Normal` is not defined, `nvim_set_hl()` can't recognize `'bg'` as the foreground value). Also realign the rest of the background conditional highlight groups.
Diffstat (limited to 'test/functional')
-rw-r--r--test/functional/terminal/tui_spec.lua38
-rw-r--r--test/functional/ui/searchhl_spec.lua9
-rw-r--r--test/functional/ui/wildmode_spec.lua12
3 files changed, 51 insertions, 8 deletions
diff --git a/test/functional/terminal/tui_spec.lua b/test/functional/terminal/tui_spec.lua
index 80df336cc4..5269af760a 100644
--- a/test/functional/terminal/tui_spec.lua
+++ b/test/functional/terminal/tui_spec.lua
@@ -1056,6 +1056,11 @@ describe('TUI', function()
if is_ci('github') then
pending('tty-test complains about not owning the terminal -- actions/runner#241')
end
+ screen:set_default_attr_ids({
+ [1] = { reverse = true }, -- focused cursor
+ [3] = { bold = true },
+ [19] = { bold = true, background = 121, foreground = 0 }, -- StatusLineTerm
+ })
child_exec_lua('vim.o.statusline="^^^^^^^"')
child_exec_lua('vim.cmd.terminal(...)', testprg('tty-test'))
feed_data('i')
@@ -1063,7 +1068,7 @@ describe('TUI', function()
tty ready |
{1: } |
|*2
- {5:^^^^^^^ }|
+ {19:^^^^^^^ }|
{3:-- TERMINAL --} |*2
]])
feed_data('\027[200~')
@@ -1073,7 +1078,7 @@ describe('TUI', function()
tty ready |
hallo{1: } |
|*2
- {5:^^^^^^^ }|
+ {19:^^^^^^^ }|
{3:-- TERMINAL --} |*2
]])
end)
@@ -1548,10 +1553,32 @@ describe('TUI', 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 } },
+ [2] = {
+ { bold = true, background = Screen.colors.LightGreen, foreground = Screen.colors.Black },
+ { bold = true },
+ },
[3] = { { bold = true }, { bold = true } },
[4] = { { fg_indexed = true, foreground = tonumber('0xe0e000') }, { foreground = 3 } },
[5] = { { foreground = tonumber('0xff8000') }, {} },
+ [6] = {
+ {
+ fg_indexed = true,
+ bg_indexed = true,
+ bold = true,
+ background = tonumber('0x66ff99'),
+ foreground = Screen.colors.Black,
+ },
+ { bold = true, background = 121, foreground = 0 },
+ },
+ [7] = {
+ {
+ fg_indexed = true,
+ bg_indexed = true,
+ background = tonumber('0x66ff99'),
+ foreground = Screen.colors.Black,
+ },
+ { background = 121, foreground = 0 },
+ },
})
child_exec_lua('vim.o.statusline="^^^^^^^"')
@@ -1586,7 +1613,7 @@ describe('TUI', function()
{1:t}ty ready |
{4:text}colortext |
|*2
- {2:^^^^^^^ }|
+ {6:^^^^^^^}{7: }|
:set notermguicolors |
{3:-- TERMINAL --} |
]],
@@ -1973,6 +2000,7 @@ describe('TUI', function()
[3] = { bold = true },
[4] = { foreground = tonumber('0x4040ff'), fg_indexed = true },
[5] = { bold = true, reverse = true },
+ [6] = { foreground = Screen.colors.White, background = Screen.colors.DarkGreen },
})
screen:attach()
fn.termopen({
@@ -1998,7 +2026,7 @@ describe('TUI', function()
{2:~ }│{4:~ }|*5
{2:~ }│{5:[No Name] 0,0-1 All}|
{2:~ }│ |
- {5:new }{1:{MATCH:<.*[/\]nvim }}|
+ {5:new }{6:{MATCH:<.*[/\]nvim }}|
|
]])
end)
diff --git a/test/functional/ui/searchhl_spec.lua b/test/functional/ui/searchhl_spec.lua
index 8bdf528412..493493da60 100644
--- a/test/functional/ui/searchhl_spec.lua
+++ b/test/functional/ui/searchhl_spec.lua
@@ -345,12 +345,19 @@ describe('search highlighting', function()
bar baz foo
bar foo baz]])
feed('/foo')
+ screen:set_default_attr_ids({
+ [1] = { bold = true, foreground = Screen.colors.Blue },
+ [2] = { background = Screen.colors.Yellow }, -- Search
+ [3] = { reverse = true },
+ [4] = { bold = true, reverse = true },
+ [5] = { foreground = Screen.colors.White, background = Screen.colors.DarkGreen },
+ })
screen:expect([[
{3:foo} bar baz │{MATCH:%d+}: {2:foo}{MATCH:%s+}|
bar baz {2:foo} │{MATCH:%d+}: {2:foo}{MATCH:%s+}|
bar {2:foo} baz │{MATCH:%d+}: {2:foo}{MATCH:%s+}|
{1:~ }│{MATCH:.*}|*2
- {5:[No Name] [+] }{3:term }|
+ {4:[No Name] [+] }{5:term }|
/foo^ |
]])
end)
diff --git a/test/functional/ui/wildmode_spec.lua b/test/functional/ui/wildmode_spec.lua
index 0feec6bd03..6299852a69 100644
--- a/test/functional/ui/wildmode_spec.lua
+++ b/test/functional/ui/wildmode_spec.lua
@@ -199,9 +199,13 @@ describe("'wildmenu'", function()
feed((':terminal "%s" REP 5000 !terminal_output!<cr>'):format(testprg('shell-test')))
feed('G') -- Follow :terminal output.
feed([[:sign <Tab>]]) -- Invoke wildmenu.
+ screen:set_default_attr_ids {
+ [31] = { foreground = Screen.colors.Black, background = Screen.colors.Yellow },
+ [32] = { bold = true, foreground = Screen.colors.White, background = Screen.colors.DarkGreen },
+ }
-- NB: in earlier versions terminal output was redrawn during cmdline mode.
-- For now just assert that the screen remains unchanged.
- screen:expect { any = '{31:define}{3: jump list > }|\n:sign define^ |' }
+ screen:expect { any = '{31:define}{32: jump list > }|\n:sign define^ |' }
screen:expect_unchanged()
-- cmdline CTRL-D display should also be preserved.
@@ -259,9 +263,13 @@ describe("'wildmenu'", function()
feed([[<C-\><C-N>]])
feed([[:<Tab>]]) -- Invoke wildmenu.
+ screen:set_default_attr_ids {
+ [31] = { foreground = Screen.colors.Black, background = Screen.colors.Yellow },
+ [32] = { bold = true, foreground = Screen.colors.White, background = Screen.colors.DarkGreen },
+ }
-- Check only the last 2 lines, because the shell output is
-- system-dependent.
- screen:expect { any = '{31:!}{3: # & < = > @ > }|\n:!^' }
+ screen:expect { any = '{31:!}{32: # & < = > @ > }|\n:!^' }
-- Because this test verifies a _lack_ of activity, we must wait the full timeout.
-- So make it reasonable.
screen:expect_unchanged(false, 1000)