aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/searchhl_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/ui/searchhl_spec.lua')
-rw-r--r--test/functional/ui/searchhl_spec.lua111
1 files changed, 95 insertions, 16 deletions
diff --git a/test/functional/ui/searchhl_spec.lua b/test/functional/ui/searchhl_spec.lua
index 18bbb56a61..dc7ef666bd 100644
--- a/test/functional/ui/searchhl_spec.lua
+++ b/test/functional/ui/searchhl_spec.lua
@@ -10,7 +10,6 @@ local testprg = helpers.testprg
describe('search highlighting', function()
local screen
- local colors = Screen.colors
before_each(function()
clear()
@@ -18,9 +17,10 @@ describe('search highlighting', function()
screen:attach()
screen:set_default_attr_ids( {
[1] = {bold=true, foreground=Screen.colors.Blue},
- [2] = {background = colors.Yellow}, -- Search
+ [2] = {background = Screen.colors.Yellow}, -- Search
[3] = {reverse = true},
- [4] = {foreground = colors.Red}, -- Message
+ [4] = {foreground = Screen.colors.Red}, -- WarningMsg
+ [5] = {bold = true, reverse = true}, -- StatusLine
[6] = {foreground = Screen.colors.Blue4, background = Screen.colors.LightGrey}, -- Folded
})
end)
@@ -53,11 +53,11 @@ describe('search highlighting', function()
{1:~ }|
/text^ |
]], win_viewport={
- [2] = {win = {id = 1000}, topline = 0, botline = 3, curline = 0, curcol = 9, linecount = 2};
+ [2] = {win = {id = 1000}, topline = 0, botline = 3, curline = 0, curcol = 8, linecount = 2, sum_scroll_delta = 0};
}}
end)
- it('works', function()
+ local function test_search_hl()
insert([[
some text
more textstuff
@@ -110,6 +110,26 @@ describe('search highlighting', function()
{1:~ }|
:nohlsearch |
]])
+ end
+
+ it("works when 'winhighlight' is not set", function()
+ test_search_hl()
+ end)
+
+ it("works when 'winhighlight' doesn't change Search highlight", function()
+ command('setlocal winhl=NonText:Underlined')
+ local attrs = screen:get_default_attr_ids()
+ attrs[1] = {foreground = Screen.colors.SlateBlue, underline = true}
+ screen:set_default_attr_ids(attrs)
+ test_search_hl()
+ end)
+
+ it("works when 'winhighlight' changes Search highlight", function()
+ command('setlocal winhl=Search:Underlined')
+ local attrs = screen:get_default_attr_ids()
+ attrs[2] = {foreground = Screen.colors.SlateBlue, underline = true}
+ screen:set_default_attr_ids(attrs)
+ test_search_hl()
end)
describe('CurSearch highlight', function()
@@ -307,18 +327,33 @@ describe('search highlighting', function()
it('is preserved during :terminal activity', function()
feed((':terminal "%s" REP 5000 foo<cr>'):format(testprg('shell-test')))
-
feed(':file term<CR>')
+ screen:expect([[
+ ^0: foo |
+ 1: foo |
+ 2: foo |
+ 3: foo |
+ 4: foo |
+ 5: foo |
+ :file term |
+ ]])
+
feed('G') -- Follow :terminal output.
feed(':vnew<CR>')
insert([[
foo bar baz
bar baz foo
- bar foo baz
- ]])
+ bar foo baz]])
feed('/foo')
- helpers.poke_eventloop()
- screen:expect_unchanged()
+ 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:.*}|
+ {1:~ }│{MATCH:.*}|
+ {5:[No Name] [+] }{3:term }|
+ /foo^ |
+ ]])
end)
it('works with incsearch', function()
@@ -498,6 +533,50 @@ describe('search highlighting', function()
{1:~ }│{1:~ }|
//^ |
]])
+ feed('<Esc>')
+
+ -- incsearch works after c_CTRL-R_CTRL-R
+ command('let @" = "file"')
+ feed('/<C-R><C-R>"')
+ screen:expect([[
+ the first line │the first line |
+ in a little {3:file} │in a little {2:file} |
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ /file^ |
+ ]])
+ feed('<Esc>')
+
+ command('set rtp^=test/functional/fixtures')
+ -- incsearch works after c_CTRL-R inserts clipboard register
+
+ command('let @* = "first"')
+ feed('/<C-R>*')
+ screen:expect([[
+ the {3:first} line │the {2:first} line |
+ in a little file │in a little file |
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ /first^ |
+ ]])
+ feed('<Esc>')
+
+ command('let @+ = "little"')
+ feed('/<C-R>+')
+ screen:expect([[
+ the first line │the first line |
+ in a {3:little} file │in a {2:little} file |
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ {1:~ }│{1:~ }|
+ /little^ |
+ ]])
+ feed('<Esc>')
end)
it('works with incsearch and offset', function()
@@ -572,12 +651,12 @@ describe('search highlighting', function()
it('works with matchadd and syntax', function()
screen:set_default_attr_ids {
[1] = {bold=true, foreground=Screen.colors.Blue};
- [2] = {background = colors.Yellow};
+ [2] = {background = Screen.colors.Yellow};
[3] = {reverse = true};
- [4] = {foreground = colors.Red};
- [5] = {bold = true, background = colors.Green};
- [6] = {italic = true, background = colors.Magenta};
- [7] = {bold = true, background = colors.Yellow};
+ [4] = {foreground = Screen.colors.Red};
+ [5] = {bold = true, background = Screen.colors.Green};
+ [6] = {italic = true, background = Screen.colors.Magenta};
+ [7] = {bold = true, background = Screen.colors.Yellow};
[8] = {foreground = Screen.colors.Blue4, background = Screen.colors.LightGray};
}
feed_command('set hlsearch')
@@ -602,7 +681,7 @@ describe('search highlighting', function()
{1:~ }|
{4:search hit BOTTOM, continuing at TOP} |
]], win_viewport={
- [2] = {win = {id = 1000}, topline = 0, botline = 3, curline = 0, curcol = 11, linecount = 2};
+ [2] = {win = {id = 1000}, topline = 0, botline = 3, curline = 0, curcol = 11, linecount = 2, sum_scroll_delta = 0};
}}
-- check highlights work also in folds