1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
" Test for v:hlsearch
function! Test_hlsearch()
new
call setline(1, repeat(['aaa'], 10))
set hlsearch nolazyredraw
" redraw is needed to make hlsearch highlight the matches
exe "normal! /aaa\<CR>" | redraw
let r1 = screenattr(1, 1)
nohlsearch | redraw
call assert_notequal(r1, screenattr(1,1))
let v:hlsearch=1 | redraw
call assert_equal(r1, screenattr(1,1))
let v:hlsearch=0 | redraw
call assert_notequal(r1, screenattr(1,1))
set hlsearch | redraw
call assert_equal(r1, screenattr(1,1))
let v:hlsearch=0 | redraw
call assert_notequal(r1, screenattr(1,1))
exe "normal! n" | redraw
call assert_equal(r1, screenattr(1,1))
let v:hlsearch=0 | redraw
call assert_notequal(r1, screenattr(1,1))
exe "normal! /\<CR>" | redraw
call assert_equal(r1, screenattr(1,1))
set nohls
exe "normal! /\<CR>" | redraw
call assert_notequal(r1, screenattr(1,1))
call assert_fails('let v:hlsearch=[]', 'E745')
call garbagecollect(1)
call getchar(1)
enew!
endfunction
func Test_hlsearch_eol_highlight()
new
call append(1, repeat([''], 9))
set hlsearch nolazyredraw
exe "normal! /$\<CR>" | redraw
let attr = screenattr(1, 1)
for row in range(2, 10)
call assert_equal(attr, screenattr(row, 1), 'in line ' . row)
endfor
set nohlsearch
bwipe!
endfunc
|