101_hlsearch_spec.lua (1954B)
1 -- Test for v:hlsearch 2 3 local n = require('test.functional.testnvim')() 4 5 local clear, feed = n.clear, n.feed 6 local feed_command, expect = n.feed_command, n.expect 7 8 describe('v:hlsearch', function() 9 setup(clear) 10 11 it('is working', function() 12 -- Last abc: Q 13 feed_command('new') 14 feed_command([[call setline(1, repeat(['aaa'], 10))]]) 15 feed_command('set hlsearch nolazyredraw') 16 feed_command('let r=[]') 17 feed_command('command -nargs=0 -bar AddR :call add(r, [screenattr(1, 1), v:hlsearch])') 18 feed_command('/aaa') 19 feed_command('AddR') 20 feed_command('nohlsearch') 21 feed_command('AddR') 22 feed_command('let v:hlsearch=1') 23 feed_command('AddR') 24 feed_command('let v:hlsearch=0') 25 feed_command('AddR') 26 feed_command('set hlsearch') 27 feed_command('AddR') 28 feed_command('let v:hlsearch=0') 29 feed_command('AddR') 30 feed('n:AddR<cr>') 31 feed_command('let v:hlsearch=0') 32 feed_command('AddR') 33 feed_command('/') 34 feed_command('AddR') 35 feed_command('set nohls') 36 feed_command('/') 37 feed_command('AddR') 38 feed_command('let r1=r[0][0]') 39 40 -- I guess it is not guaranteed that screenattr outputs always the same character 41 feed_command([[call map(r, 'v:val[1].":".(v:val[0]==r1?"highlighted":"not highlighted")')]]) 42 feed_command('try') 43 feed_command(' let v:hlsearch=[]') 44 feed_command('catch') 45 feed_command([[ call add(r, matchstr(v:exception,'^Vim(let):E\d\+:'))]]) 46 feed_command('endtry') 47 feed_command('bwipeout!') 48 feed_command('$put=r') 49 feed_command('call garbagecollect(1)') 50 feed_command('call getchar()') 51 feed_command('1d', '1d') 52 53 -- Assert buffer contents. 54 expect([[ 55 1:highlighted 56 0:not highlighted 57 1:highlighted 58 0:not highlighted 59 1:highlighted 60 0:not highlighted 61 1:highlighted 62 0:not highlighted 63 1:highlighted 64 0:not highlighted 65 Vim(let):E745:]]) 66 end) 67 end)