neovim

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

test_tagcase.vim (2083B)


      1 " test 'tagcase' option
      2 
      3 func Test_tagcase()
      4  call writefile(["Bar\tXtext\t3", "Foo\tXtext\t2", "foo\tXtext\t4"], 'Xtags')
      5  set tags=Xtags
      6  e Xtext
      7 
      8  for &ic in [0, 1]
      9    for &scs in [0, 1]
     10      for &g:tc in ["followic", "ignore", "match", "followscs", "smart"]
     11        for &l:tc in ["", "followic", "ignore", "match", "followscs", "smart"]
     12          let smart = 0
     13          if &l:tc != ''
     14            let tc = &l:tc
     15          else
     16            let tc = &g:tc
     17          endif
     18          if tc == 'followic'
     19            let ic = &ic
     20          elseif tc == 'ignore'
     21            let ic = 1
     22          elseif tc == 'followscs'
     23            let ic = &ic
     24            let smart = &scs
     25          elseif tc == 'smart'
     26            let ic = 1
     27            let smart = 1
     28          else
     29            let ic = 0
     30          endif
     31          if ic && smart
     32            call assert_equal(['foo', 'Foo'], map(taglist("^foo$"), {i, v -> v.name}))
     33            call assert_equal(['Foo'], map(taglist("^Foo$"), {i, v -> v.name}))
     34          elseif ic
     35            call assert_equal(['foo', 'Foo'], map(taglist("^foo$"), {i, v -> v.name}))
     36            call assert_equal(['Foo', 'foo'], map(taglist("^Foo$"), {i, v -> v.name}))
     37          else
     38            call assert_equal(['foo'], map(taglist("^foo$"), {i, v -> v.name}))
     39            call assert_equal(['Foo'], map(taglist("^Foo$"), {i, v -> v.name}))
     40          endif
     41        endfor
     42      endfor
     43    endfor
     44  endfor
     45 
     46  call delete('Xtags')
     47  set tags&
     48  set ic&
     49  setg tc&
     50  setl tc&
     51  set scs&
     52 endfunc
     53 
     54 func Test_set_tagcase()
     55  " Verify default values.
     56  set ic&
     57  setg tc&
     58  setl tc&
     59  call assert_equal(0, &ic)
     60  call assert_equal('followic', &g:tc)
     61  call assert_equal('followic', &l:tc)
     62  call assert_equal('followic', &tc)
     63 
     64  " Verify that the local setting accepts <empty> but that the global setting
     65  " does not.  The first of these (setting the local value to <empty>) should
     66  " succeed; the other two should fail.
     67  setl tc=
     68  call assert_fails('setg tc=', 'E474:')
     69  call assert_fails('set tc=', 'E474:')
     70 
     71  set ic&
     72  setg tc&
     73  setl tc&
     74 endfunc