xref: /vim-8.2.3635/src/testdir/test_tagcase.vim (revision 6d91bcb4)
166e29d71SBram Moolenaar" test 'tagcase' option
266e29d71SBram Moolenaar
366e29d71SBram Moolenaarfunc Test_tagcase()
466e29d71SBram Moolenaar  call writefile(["Bar\tXtext\t3", "Foo\tXtext\t2", "foo\tXtext\t4"], 'Xtags')
566e29d71SBram Moolenaar  set tags=Xtags
666e29d71SBram Moolenaar  e Xtext
766e29d71SBram Moolenaar
866e29d71SBram Moolenaar  for &ic in [0, 1]
966e29d71SBram Moolenaar    for &scs in [0, 1]
1066e29d71SBram Moolenaar      for &g:tc in ["followic", "ignore", "match", "followscs", "smart"]
1166e29d71SBram Moolenaar	for &l:tc in ["", "followic", "ignore", "match", "followscs", "smart"]
1266e29d71SBram Moolenaar	  let smart = 0
1366e29d71SBram Moolenaar	  if &l:tc != ''
1466e29d71SBram Moolenaar	    let tc = &l:tc
1566e29d71SBram Moolenaar	  else
1666e29d71SBram Moolenaar	    let tc = &g:tc
1766e29d71SBram Moolenaar	  endif
1866e29d71SBram Moolenaar	  if tc == 'followic'
1966e29d71SBram Moolenaar	    let ic = &ic
2066e29d71SBram Moolenaar	  elseif tc == 'ignore'
2166e29d71SBram Moolenaar	    let ic = 1
2266e29d71SBram Moolenaar	  elseif tc == 'followscs'
2366e29d71SBram Moolenaar	    let ic = &ic
2466e29d71SBram Moolenaar	    let smart = &scs
2566e29d71SBram Moolenaar	  elseif tc == 'smart'
2666e29d71SBram Moolenaar	    let ic = 1
2766e29d71SBram Moolenaar	    let smart = 1
2866e29d71SBram Moolenaar	  else
2966e29d71SBram Moolenaar	    let ic = 0
3066e29d71SBram Moolenaar	  endif
3166e29d71SBram Moolenaar	  if ic && smart
3266e29d71SBram Moolenaar	    call assert_equal(['foo', 'Foo'], map(taglist("^foo$"), {i, v -> v.name}))
3366e29d71SBram Moolenaar	    call assert_equal(['Foo'], map(taglist("^Foo$"), {i, v -> v.name}))
3466e29d71SBram Moolenaar	  elseif ic
3566e29d71SBram Moolenaar	    call assert_equal(['foo', 'Foo'], map(taglist("^foo$"), {i, v -> v.name}))
3666e29d71SBram Moolenaar	    call assert_equal(['Foo', 'foo'], map(taglist("^Foo$"), {i, v -> v.name}))
3766e29d71SBram Moolenaar	  else
3866e29d71SBram Moolenaar	    call assert_equal(['foo'], map(taglist("^foo$"), {i, v -> v.name}))
3966e29d71SBram Moolenaar	    call assert_equal(['Foo'], map(taglist("^Foo$"), {i, v -> v.name}))
4066e29d71SBram Moolenaar	  endif
4166e29d71SBram Moolenaar	endfor
4266e29d71SBram Moolenaar      endfor
4366e29d71SBram Moolenaar    endfor
4466e29d71SBram Moolenaar  endfor
4566e29d71SBram Moolenaar
4666e29d71SBram Moolenaar  call delete('Xtags')
470331faf7SBram Moolenaar  set tags&
4866e29d71SBram Moolenaar  set ic&
4966e29d71SBram Moolenaar  setg tc&
5066e29d71SBram Moolenaar  setl tc&
5166e29d71SBram Moolenaar  set scs&
5266e29d71SBram Moolenaarendfunc
5366e29d71SBram Moolenaar
5466e29d71SBram Moolenaarfunc Test_set_tagcase()
5566e29d71SBram Moolenaar  " Verify default values.
5666e29d71SBram Moolenaar  set ic&
5766e29d71SBram Moolenaar  setg tc&
5866e29d71SBram Moolenaar  setl tc&
5966e29d71SBram Moolenaar  call assert_equal(0, &ic)
6066e29d71SBram Moolenaar  call assert_equal('followic', &g:tc)
6166e29d71SBram Moolenaar  call assert_equal('followic', &l:tc)
6266e29d71SBram Moolenaar  call assert_equal('followic', &tc)
6366e29d71SBram Moolenaar
6466e29d71SBram Moolenaar  " Verify that the local setting accepts <empty> but that the global setting
6566e29d71SBram Moolenaar  " does not.  The first of these (setting the local value to <empty>) should
6666e29d71SBram Moolenaar  " succeed; the other two should fail.
6766e29d71SBram Moolenaar  setl tc=
6866e29d71SBram Moolenaar  call assert_fails('setg tc=', 'E474:')
6966e29d71SBram Moolenaar  call assert_fails('set tc=', 'E474:')
7066e29d71SBram Moolenaar
7166e29d71SBram Moolenaar  set ic&
7266e29d71SBram Moolenaar  setg tc&
7366e29d71SBram Moolenaar  setl tc&
7466e29d71SBram Moolenaarendfunc
75*6d91bcb4SBram Moolenaar
76*6d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
77