neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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)