annotate src/testdir/test_tagjump.vim @ 22099:b7cc5d8ea702 v8.2.1599

patch 8.2.1599: missing line end when skipping a long line with :cgetfile Commit: https://github.com/vim/vim/commit/59941cbd8035415d68683edc4e571306b10669ad Author: Bram Moolenaar <Bram@vim.org> Date: Sat Sep 5 17:03:40 2020 +0200 patch 8.2.1599: missing line end when skipping a long line with :cgetfile Problem: Missing line end when skipping a long line with :cgetfile. Solution: Fix off-by-one error. (closes https://github.com/vim/vim/issues/6870)
author Bram Moolenaar <Bram@vim.org>
date Sat, 05 Sep 2020 17:15:03 +0200
parents ff21e2962490
children 595ea7f099cd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8934
42c8599421e5 commit https://github.com/vim/vim/commit/8d8aa0a367380f23f0af428fcb66a1a0615bf872
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for tagjump (tags and special searches)
42c8599421e5 commit https://github.com/vim/vim/commit/8d8aa0a367380f23f0af428fcb66a1a0615bf872
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
18293
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
3 source check.vim
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
4 source screendump.vim
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
5
8934
42c8599421e5 commit https://github.com/vim/vim/commit/8d8aa0a367380f23f0af428fcb66a1a0615bf872
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 " SEGV occurs in older versions. (At least 7.4.1748 or older)
42c8599421e5 commit https://github.com/vim/vim/commit/8d8aa0a367380f23f0af428fcb66a1a0615bf872
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 func Test_ptag_with_notagstack()
18767
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18640
diff changeset
8 CheckFeature quickfix
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18640
diff changeset
9
8934
42c8599421e5 commit https://github.com/vim/vim/commit/8d8aa0a367380f23f0af428fcb66a1a0615bf872
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 set notagstack
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
11 call assert_fails('ptag does_not_exist_tag_name', 'E433:')
8934
42c8599421e5 commit https://github.com/vim/vim/commit/8d8aa0a367380f23f0af428fcb66a1a0615bf872
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 set tagstack&vim
42c8599421e5 commit https://github.com/vim/vim/commit/8d8aa0a367380f23f0af428fcb66a1a0615bf872
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 endfunc
9228
ea504064c996 commit https://github.com/vim/vim/commit/fd89d7ea81b18d32363456b16258174dc9e095dc
Christian Brabandt <cb@256bit.org>
parents: 8934
diff changeset
14
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
15 func Test_ptjump()
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
16 CheckFeature quickfix
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
17
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
18 set tags=Xtags
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
19 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
20 \ "one\tXfile\t1",
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
21 \ "three\tXfile\t3",
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
22 \ "two\tXfile\t2"],
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
23 \ 'Xtags')
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
24 call writefile(['one', 'two', 'three'], 'Xfile')
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
25
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
26 %bw!
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
27 ptjump two
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
28 call assert_equal(2, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
29 wincmd p
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
30 call assert_equal(1, &previewwindow)
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
31 call assert_equal('Xfile', expand("%:p:t"))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
32 call assert_equal(2, line('.'))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
33 call assert_equal(2, winnr('$'))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
34 call assert_equal(1, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
35 close
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
36 call setline(1, ['one', 'two', 'three'])
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
37 exe "normal 3G\<C-W>g}"
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
38 call assert_equal(2, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
39 wincmd p
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
40 call assert_equal(1, &previewwindow)
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
41 call assert_equal('Xfile', expand("%:p:t"))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
42 call assert_equal(3, line('.'))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
43 call assert_equal(2, winnr('$'))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
44 call assert_equal(1, winnr())
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
45 close
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
46 exe "normal 3G5\<C-W>\<C-G>}"
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
47 wincmd p
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
48 call assert_equal(5, winheight(0))
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
49 close
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
50
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
51 call delete('Xtags')
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
52 call delete('Xfile')
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
53 set tags&
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
54 endfunc
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
55
9949
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
56 func Test_cancel_ptjump()
18767
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18640
diff changeset
57 CheckFeature quickfix
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18640
diff changeset
58
9949
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
59 set tags=Xtags
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
60 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
61 \ "word\tfile1\tcmd1",
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
62 \ "word\tfile2\tcmd2"],
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
63 \ 'Xtags')
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
64
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
65 only!
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
66 call feedkeys(":ptjump word\<CR>\<CR>", "xt")
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
67 help
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
68 call assert_equal(2, winnr('$'))
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
69
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
70 call delete('Xtags')
17093
5cda6165a5c1 patch 8.1.1546: in some tests 'tags' is set but not restored
Bram Moolenaar <Bram@vim.org>
parents: 16178
diff changeset
71 set tags&
9949
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
72 quit
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
73 endfunc
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
74
10611
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
75 func Test_static_tagjump()
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
76 set tags=Xtags
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
77 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
78 \ "one\tXfile1\t/^one/;\"\tf\tfile:\tsignature:(void)",
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
79 \ "word\tXfile2\tcmd2"],
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
80 \ 'Xtags')
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
81 new Xfile1
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
82 call setline(1, ['empty', 'one()', 'empty'])
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
83 write
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
84 tag one
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
85 call assert_equal(2, line('.'))
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
86
11008
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
87 bwipe!
10611
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
88 set tags&
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
89 call delete('Xtags')
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
90 call delete('Xfile1')
11008
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
91 endfunc
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
92
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
93 func Test_duplicate_tagjump()
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
94 set tags=Xtags
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
95 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
96 \ "thesame\tXfile1\t1;\"\td\tfile:",
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
97 \ "thesame\tXfile1\t2;\"\td\tfile:",
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
98 \ "thesame\tXfile1\t3;\"\td\tfile:",
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
99 \ ],
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
100 \ 'Xtags')
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
101 new Xfile1
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
102 call setline(1, ['thesame one', 'thesame two', 'thesame three'])
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
103 write
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
104 tag thesame
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
105 call assert_equal(1, line('.'))
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
106 tnext
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
107 call assert_equal(2, line('.'))
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
108 tnext
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
109 call assert_equal(3, line('.'))
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
110
10611
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
111 bwipe!
11008
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
112 set tags&
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
113 call delete('Xtags')
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
114 call delete('Xfile1')
10611
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
115 endfunc
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
116
11476
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
117 func Test_tagjump_switchbuf()
18767
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18640
diff changeset
118 CheckFeature quickfix
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18640
diff changeset
119
11476
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
120 set tags=Xtags
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
121 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
122 \ "second\tXfile1\t2",
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
123 \ "third\tXfile1\t3",],
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
124 \ 'Xtags')
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
125 call writefile(['first', 'second', 'third'], 'Xfile1')
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
126
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
127 enew | only
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
128 set switchbuf=
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
129 stag second
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
130 call assert_equal(2, winnr('$'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
131 call assert_equal(2, line('.'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
132 stag third
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
133 call assert_equal(3, winnr('$'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
134 call assert_equal(3, line('.'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
135
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
136 enew | only
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
137 set switchbuf=useopen
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
138 stag second
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
139 call assert_equal(2, winnr('$'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
140 call assert_equal(2, line('.'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
141 stag third
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
142 call assert_equal(2, winnr('$'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
143 call assert_equal(3, line('.'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
144
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
145 enew | only
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
146 set switchbuf=usetab
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
147 tab stag second
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
148 call assert_equal(2, tabpagenr('$'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
149 call assert_equal(2, line('.'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
150 1tabnext | stag third
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
151 call assert_equal(2, tabpagenr('$'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
152 call assert_equal(3, line('.'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
153
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
154 tabclose!
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
155 enew | only
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
156 call delete('Xfile1')
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
157 call delete('Xtags')
17093
5cda6165a5c1 patch 8.1.1546: in some tests 'tags' is set but not restored
Bram Moolenaar <Bram@vim.org>
parents: 16178
diff changeset
158 set tags&
11476
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
159 set switchbuf&vim
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
160 endfunc
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
161
10145
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
162 " Tests for [ CTRL-I and CTRL-W CTRL-I commands
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
163 function Test_keyword_jump()
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
164 call writefile(["#include Xinclude", "",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
165 \ "",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
166 \ "/* test text test tex start here",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
167 \ " some text",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
168 \ " test text",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
169 \ " start OK if found this line",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
170 \ " start found wrong line",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
171 \ "test text"], 'Xtestfile')
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
172 call writefile(["/* test text test tex start here",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
173 \ " some text",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
174 \ " test text",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
175 \ " start OK if found this line",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
176 \ " start found wrong line",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
177 \ "test text"], 'Xinclude')
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
178 new Xtestfile
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
179 call cursor(1,1)
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
180 call search("start")
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
181 exe "normal! 5[\<C-I>"
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
182 call assert_equal(" start OK if found this line", getline('.'))
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
183 call cursor(1,1)
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
184 call search("start")
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
185 exe "normal! 5\<C-W>\<C-I>"
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
186 call assert_equal(" start OK if found this line", getline('.'))
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
187 enew! | only
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
188 call delete('Xtestfile')
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
189 call delete('Xinclude')
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
190 endfunction
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
191
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
192 " Test for jumping to a tag with 'hidden' set, with symbolic link in path of
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
193 " tag. This only works for Unix, because of the symbolic link.
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
194 func Test_tag_symbolic()
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
195 CheckUnix
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
196
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
197 set hidden
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
198 call delete("Xtest.dir", "rf")
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
199 call system("ln -s . Xtest.dir")
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
200 " Create a tags file with the current directory name inserted.
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
201 call writefile([
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
202 \ "SECTION_OFF " . getcwd() . "/Xtest.dir/Xtest.c /^#define SECTION_OFF 3$/",
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
203 \ '',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
204 \ ], 'Xtags')
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
205 call writefile(['#define SECTION_OFF 3',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
206 \ '#define NUM_SECTIONS 3'], 'Xtest.c')
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
207
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
208 " Try jumping to a tag, but with a path that contains a symbolic link. When
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
209 " wrong, this will give the ATTENTION message. The next space will then be
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
210 " eaten by hit-return, instead of moving the cursor to 'd'.
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
211 set tags=Xtags
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
212 enew!
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
213 call append(0, 'SECTION_OFF')
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
214 call cursor(1,1)
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
215 exe "normal \<C-]> "
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
216 call assert_equal('Xtest.c', expand('%:t'))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
217 call assert_equal(2, col('.'))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
218
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
219 set hidden&
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
220 set tags&
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
221 enew!
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
222 call delete('Xtags')
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
223 call delete('Xtest.c')
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
224 call delete("Xtest.dir", "rf")
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
225 %bwipe!
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
226 endfunc
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
227
12750
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
228 " Tests for tag search with !_TAG_FILE_ENCODING.
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
229 " Depends on the test83-tags2 and test83-tags3 files.
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
230 func Test_tag_file_encoding()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
231 if has('vms')
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
232 throw 'Skipped: does not work on VMS'
12750
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
233 endif
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
234
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
235 if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
236 throw 'Skipped: iconv does not work'
12750
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
237 endif
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
238
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
239 let save_enc = &encoding
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
240 set encoding=utf8
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
241
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
242 let content = ['text for tags1', 'abcdefghijklmnopqrs']
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
243 call writefile(content, 'Xtags1.txt')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
244 let content = ['text for tags2', 'ABC']
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
245 call writefile(content, 'Xtags2.txt')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
246 let content = ['text for tags3', 'ABC']
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
247 call writefile(content, 'Xtags3.txt')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
248 let content = ['!_TAG_FILE_ENCODING utf-8 //', 'abcdefghijklmnopqrs Xtags1.txt /abcdefghijklmnopqrs']
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
249 call writefile(content, 'Xtags1')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
250
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
251 " case1:
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
252 new
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
253 set tags=Xtags1
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
254 tag abcdefghijklmnopqrs
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
255 call assert_equal('Xtags1.txt', expand('%:t'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
256 call assert_equal('abcdefghijklmnopqrs', getline('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
257 close
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
258
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
259 " case2:
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
260 new
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
261 set tags=test83-tags2
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
262 tag /.BC
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
263 call assert_equal('Xtags2.txt', expand('%:t'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
264 call assert_equal('ABC', getline('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
265 close
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
266
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
267 " case3:
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
268 new
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
269 set tags=test83-tags3
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
270 tag abc50
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
271 call assert_equal('Xtags3.txt', expand('%:t'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
272 call assert_equal('ABC', getline('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
273 close
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
274
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
275 set tags&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
276 let &encoding = save_enc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
277 call delete('Xtags1.txt')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
278 call delete('Xtags2.txt')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
279 call delete('Xtags3.txt')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
280 call delete('Xtags1')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
281 endfunc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
282
20941
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
283 " Test for emacs-style tags file (TAGS)
13227
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
284 func Test_tagjump_etags()
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
285 CheckFeature emacs_tags
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
286
13227
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
287 call writefile([
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
288 \ "void foo() {}",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
289 \ "int main(int argc, char **argv)",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
290 \ "{",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
291 \ "\tfoo();",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
292 \ "\treturn 0;",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
293 \ "}",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
294 \ ], 'Xmain.c')
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
295
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
296 call writefile([
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
297 \ "\x0c",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
298 \ "Xmain.c,64",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
299 \ "void foo() {}\x7ffoo\x011,0",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
300 \ "int main(int argc, char **argv)\x7fmain\x012,14",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
301 \ ], 'Xtags')
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
302 set tags=Xtags
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
303 ta foo
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
304 call assert_equal('void foo() {}', getline('.'))
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
305
20893
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
306 " Test for including another tags file
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
307 call writefile([
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
308 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
309 \ "Xmain.c,64",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
310 \ "void foo() {}\x7ffoo\x011,0",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
311 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
312 \ "Xnonexisting,include",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
313 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
314 \ "Xtags2,include"
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
315 \ ], 'Xtags')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
316 call writefile([
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
317 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
318 \ "Xmain.c,64",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
319 \ "int main(int argc, char **argv)\x7fmain\x012,14",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
320 \ ], 'Xtags2')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
321 tag main
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
322 call assert_equal(2, line('.'))
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
323
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
324 " corrupted tag line
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
325 call writefile([
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
326 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
327 \ "Xmain.c,8",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
328 \ "int main"
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
329 \ ], 'Xtags', 'b')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
330 call assert_fails('tag foo', 'E426:')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
331
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
332 " invalid line number
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
333 call writefile([
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
334 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
335 \ "Xmain.c,64",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
336 \ "void foo() {}\x7ffoo\x0abc,0",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
337 \ ], 'Xtags')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
338 call assert_fails('tag foo', 'E426:')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
339
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
340 " invalid tag name
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
341 call writefile([
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
342 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
343 \ "Xmain.c,64",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
344 \ ";;;;\x7f1,0",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
345 \ ], 'Xtags')
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21020
diff changeset
346 call assert_fails('tag foo', 'E431:')
20893
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
347
13227
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
348 call delete('Xtags')
20893
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
349 call delete('Xtags2')
13227
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
350 call delete('Xmain.c')
20893
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
351 set tags&
13227
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
352 bwipe!
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
353 endfunc
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
354
15016
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
355 " Test for getting and modifying the tag stack
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
356 func Test_getsettagstack()
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
357 call writefile(['line1', 'line2', 'line3'], 'Xfile1')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
358 call writefile(['line1', 'line2', 'line3'], 'Xfile2')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
359 call writefile(['line1', 'line2', 'line3'], 'Xfile3')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
360
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
361 enew | only
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
362 call settagstack(1, {'items' : []})
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
363 call assert_equal(0, gettagstack(1).length)
17912
9fac6d0de69a patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents: 17093
diff changeset
364 call assert_equal([], 1->gettagstack().items)
15016
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
365 " Error cases
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
366 call assert_equal({}, gettagstack(100))
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
367 call assert_equal(-1, settagstack(100, {'items' : []}))
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
368 call assert_fails('call settagstack(1, [1, 10])', 'E715:')
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
369 call assert_fails("call settagstack(1, {'items' : 10})", 'E714:')
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
370 call assert_fails("call settagstack(1, {'items' : []}, 10)", 'E928:')
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
371 call assert_fails("call settagstack(1, {'items' : []}, 'b')", 'E962:')
20120
16460964c304 patch 8.2.0615: regexp benchmark stest is old style
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
372 call assert_equal(-1, settagstack(0, test_null_dict()))
15016
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
373
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
374 set tags=Xtags
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
375 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
376 \ "one\tXfile1\t1",
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
377 \ "three\tXfile3\t3",
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
378 \ "two\tXfile2\t2"],
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
379 \ 'Xtags')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
380
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
381 let stk = []
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
382 call add(stk, {'bufnr' : bufnr('%'), 'tagname' : 'one',
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
383 \ 'from' : [bufnr('%'), line('.'), col('.'), 0], 'matchnr' : 1})
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
384 tag one
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
385 call add(stk, {'bufnr' : bufnr('%'), 'tagname' : 'two',
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
386 \ 'from' : [bufnr('%'), line('.'), col('.'), 0], 'matchnr' : 1})
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
387 tag two
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
388 call add(stk, {'bufnr' : bufnr('%'), 'tagname' : 'three',
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
389 \ 'from' : [bufnr('%'), line('.'), col('.'), 0], 'matchnr' : 1})
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
390 tag three
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
391 call assert_equal(3, gettagstack(1).length)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
392 call assert_equal(stk, gettagstack(1).items)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
393 " Check for default - current window
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
394 call assert_equal(3, gettagstack().length)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
395 call assert_equal(stk, gettagstack().items)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
396
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
397 " Try to set current index to invalid values
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
398 call settagstack(1, {'curidx' : -1})
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
399 call assert_equal(1, gettagstack().curidx)
18000
7a19c8d6bb9e patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17912
diff changeset
400 eval {'curidx' : 50}->settagstack(1)
15016
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
401 call assert_equal(4, gettagstack().curidx)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
402
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
403 " Try pushing invalid items onto the stack
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
404 call settagstack(1, {'items' : []})
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
405 call settagstack(1, {'items' : ["plate"]}, 'a')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
406 call assert_equal(0, gettagstack().length)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
407 call assert_equal([], gettagstack().items)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
408 call settagstack(1, {'items' : [{"tagname" : "abc"}]}, 'a')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
409 call assert_equal(0, gettagstack().length)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
410 call assert_equal([], gettagstack().items)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
411 call settagstack(1, {'items' : [{"from" : 100}]}, 'a')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
412 call assert_equal(0, gettagstack().length)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
413 call assert_equal([], gettagstack().items)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
414 call settagstack(1, {'items' : [{"from" : [2, 1, 0, 0]}]}, 'a')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
415 call assert_equal(0, gettagstack().length)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
416 call assert_equal([], gettagstack().items)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
417
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
418 " Push one item at a time to the stack
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
419 call settagstack(1, {'items' : []})
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
420 call settagstack(1, {'items' : [stk[0]]}, 'a')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
421 call settagstack(1, {'items' : [stk[1]]}, 'a')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
422 call settagstack(1, {'items' : [stk[2]]}, 'a')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
423 call settagstack(1, {'curidx' : 4})
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
424 call assert_equal({'length' : 3, 'curidx' : 4, 'items' : stk},
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
425 \ gettagstack(1))
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
426
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
427 " Try pushing items onto a full stack
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
428 for i in range(7)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
429 call settagstack(1, {'items' : stk}, 'a')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
430 endfor
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
431 call assert_equal(20, gettagstack().length)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
432 call settagstack(1,
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
433 \ {'items' : [{'tagname' : 'abc', 'from' : [1, 10, 1, 0]}]}, 'a')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
434 call assert_equal('abc', gettagstack().items[19].tagname)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
435
19033
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
436 " truncate the tag stack
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
437 call settagstack(1,
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
438 \ {'curidx' : 9,
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
439 \ 'items' : [{'tagname' : 'abc', 'from' : [1, 10, 1, 0]}]}, 't')
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
440 let t = gettagstack()
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
441 call assert_equal(9, t.length)
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
442 call assert_equal(10, t.curidx)
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
443
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
444 " truncate the tag stack without pushing any new items
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
445 call settagstack(1, {'curidx' : 5}, 't')
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
446 let t = gettagstack()
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
447 call assert_equal(4, t.length)
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
448 call assert_equal(5, t.curidx)
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
449
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
450 " truncate an empty tag stack and push new items
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
451 call settagstack(1, {'items' : []})
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
452 call settagstack(1,
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
453 \ {'items' : [{'tagname' : 'abc', 'from' : [1, 10, 1, 0]}]}, 't')
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
454 let t = gettagstack()
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
455 call assert_equal(1, t.length)
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
456 call assert_equal(2, t.curidx)
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
457
15016
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
458 " Tag with multiple matches
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
459 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
460 \ "two\tXfile1\t1",
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
461 \ "two\tXfile2\t3",
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
462 \ "two\tXfile3\t2"],
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
463 \ 'Xtags')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
464 call settagstack(1, {'items' : []})
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
465 tag two
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
466 tnext
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
467 tnext
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
468 call assert_equal(1, gettagstack().length)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
469 call assert_equal(3, gettagstack().items[0].matchnr)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
470
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
471 " Memory allocation failures
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
472 call test_alloc_fail(GetAllocId('tagstack_items'), 0, 0)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
473 call assert_fails('call gettagstack()', 'E342:')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
474 call test_alloc_fail(GetAllocId('tagstack_from'), 0, 0)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
475 call assert_fails('call gettagstack()', 'E342:')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
476 call test_alloc_fail(GetAllocId('tagstack_details'), 0, 0)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
477 call assert_fails('call gettagstack()', 'E342:')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
478
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
479 call settagstack(1, {'items' : []})
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
480 call delete('Xfile1')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
481 call delete('Xfile2')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
482 call delete('Xfile3')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
483 call delete('Xtags')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
484 set tags&
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
485 endfunc
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
486
16164
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
487 func Test_tag_with_count()
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
488 call writefile([
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
489 \ 'test Xtest.h /^void test();$/;" p typeref:typename:void signature:()',
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
490 \ ], 'Xtags')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
491 call writefile([
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
492 \ 'main Xtest.c /^int main()$/;" f typeref:typename:int signature:()',
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
493 \ 'test Xtest.c /^void test()$/;" f typeref:typename:void signature:()',
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
494 \ ], 'Ytags')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
495 cal writefile([
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
496 \ 'int main()',
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
497 \ 'void test()',
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
498 \ ], 'Xtest.c')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
499 cal writefile([
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
500 \ 'void test();',
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
501 \ ], 'Xtest.h')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
502 set tags=Xtags,Ytags
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
503
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
504 new Xtest.c
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
505 let tl = taglist('test', 'Xtest.c')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
506 call assert_equal(tl[0].filename, 'Xtest.c')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
507 call assert_equal(tl[1].filename, 'Xtest.h')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
508
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
509 tag test
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
510 call assert_equal(bufname('%'), 'Xtest.c')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
511 1tag test
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
512 call assert_equal(bufname('%'), 'Xtest.c')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
513 2tag test
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
514 call assert_equal(bufname('%'), 'Xtest.h')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
515
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
516 set tags&
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
517 call delete('Xtags')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
518 call delete('Ytags')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
519 bwipe Xtest.h
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
520 bwipe Xtest.c
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
521 call delete('Xtest.h')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
522 call delete('Xtest.c')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
523 endfunc
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
524
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
525 func Test_tagnr_recall()
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
526 call writefile([
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
527 \ 'test Xtest.h /^void test();$/;" p',
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
528 \ 'main Xtest.c /^int main()$/;" f',
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
529 \ 'test Xtest.c /^void test()$/;" f',
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
530 \ ], 'Xtags')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
531 cal writefile([
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
532 \ 'int main()',
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
533 \ 'void test()',
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
534 \ ], 'Xtest.c')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
535 cal writefile([
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
536 \ 'void test();',
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
537 \ ], 'Xtest.h')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
538 set tags=Xtags
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
539
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
540 new Xtest.c
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
541 let tl = taglist('test', 'Xtest.c')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
542 call assert_equal(tl[0].filename, 'Xtest.c')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
543 call assert_equal(tl[1].filename, 'Xtest.h')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
544
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
545 2tag test
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
546 call assert_equal(bufname('%'), 'Xtest.h')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
547 pop
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
548 call assert_equal(bufname('%'), 'Xtest.c')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
549 tag
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
550 call assert_equal(bufname('%'), 'Xtest.h')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
551
17093
5cda6165a5c1 patch 8.1.1546: in some tests 'tags' is set but not restored
Bram Moolenaar <Bram@vim.org>
parents: 16178
diff changeset
552 set tags&
16164
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
553 call delete('Xtags')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
554 bwipe Xtest.h
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
555 bwipe Xtest.c
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
556 call delete('Xtest.h')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
557 call delete('Xtest.c')
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
558 endfunc
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
559
16178
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
560 func Test_tag_line_toolong()
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
561 call writefile([
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
562 \ '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 django/contrib/admin/templates/admin/edit_inline/stacked.html 16;" j line:16 language:HTML'
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
563 \ ], 'Xtags')
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
564 set tags=Xtags
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
565 let old_vbs = &verbose
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
566 set verbose=5
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
567 " ":tjump" should give "tag not found" not "Format error in tags file"
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
568 call assert_fails('tj /foo', 'E426:')
16178
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
569 try
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
570 tj /foo
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
571 catch /^Vim\%((\a\+)\)\=:E431/
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
572 call assert_report(v:exception)
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
573 catch /.*/
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
574 endtry
18550
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
575 call assert_equal('Searching tags file Xtags', split(execute('messages'), '\n')[-1])
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
576
16178
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
577 call writefile([
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
578 \ '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 django/contrib/admin/templates/admin/edit_inline/stacked.html 16;" j line:16 language:HTML'
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
579 \ ], 'Xtags')
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
580 call assert_fails('tj /foo', 'E426:')
16178
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
581 try
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
582 tj /foo
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
583 catch /^Vim\%((\a\+)\)\=:E431/
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
584 call assert_report(v:exception)
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
585 catch /.*/
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
586 endtry
18550
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
587 call assert_equal('Searching tags file Xtags', split(execute('messages'), '\n')[-1])
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
588
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
589 " binary search works in file with long line
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
590 call writefile([
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
591 \ 'asdfasfd nowhere 16',
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
592 \ 'foobar Xsomewhere 3; " 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567',
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
593 \ 'zasdfasfd nowhere 16',
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
594 \ ], 'Xtags')
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
595 call writefile([
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
596 \ 'one',
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
597 \ 'two',
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
598 \ 'trhee',
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
599 \ 'four',
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
600 \ ], 'Xsomewhere')
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
601 tag foobar
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
602 call assert_equal('Xsomewhere', expand('%'))
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
603 call assert_equal(3, getcurpos()[1])
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
604
16178
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
605 call delete('Xtags')
18550
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
606 call delete('Xsomewhere')
17093
5cda6165a5c1 patch 8.1.1546: in some tests 'tags' is set but not restored
Bram Moolenaar <Bram@vim.org>
parents: 16178
diff changeset
607 set tags&
16178
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
608 let &verbose = old_vbs
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
609 endfunc
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
610
18293
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
611 " Check that using :tselect does not run into the hit-enter prompt.
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
612 " Requires a terminal to trigger that prompt.
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
613 func Test_tselect()
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
614 CheckScreendump
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
615
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
616 call writefile([
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
617 \ 'main Xtest.h /^void test();$/;" f',
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
618 \ 'main Xtest.c /^int main()$/;" f',
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
619 \ 'main Xtest.x /^void test()$/;" f',
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
620 \ ], 'Xtags')
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
621 cal writefile([
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
622 \ 'int main()',
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
623 \ 'void test()',
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
624 \ ], 'Xtest.c')
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
625
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
626 let lines =<< trim [SCRIPT]
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
627 set tags=Xtags
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
628 [SCRIPT]
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
629 call writefile(lines, 'XTest_tselect')
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
630 let buf = RunVimInTerminal('-S XTest_tselect', {'rows': 10, 'cols': 50})
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
631
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19625
diff changeset
632 call TermWait(buf, 50)
18293
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
633 call term_sendkeys(buf, ":tselect main\<CR>2\<CR>")
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
634 call VerifyScreenDump(buf, 'Test_tselect_1', {})
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
635
18297
b0b37bd807ba patch 8.1.2143: cannot see each command even when 'verbose' is set
Bram Moolenaar <Bram@vim.org>
parents: 18293
diff changeset
636 call StopVimInTerminal(buf)
18293
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
637 call delete('Xtags')
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
638 call delete('Xtest.c')
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
639 call delete('XTest_tselect')
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
640 endfunc
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
641
18640
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
642 func Test_tagline()
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
643 call writefile([
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
644 \ 'provision Xtest.py /^ def provision(self, **kwargs):$/;" m line:1 language:Python class:Foo',
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
645 \ 'provision Xtest.py /^ def provision(self, **kwargs):$/;" m line:3 language:Python class:Bar',
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
646 \], 'Xtags')
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
647 call writefile([
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
648 \ ' def provision(self, **kwargs):',
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
649 \ ' pass',
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
650 \ ' def provision(self, **kwargs):',
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
651 \ ' pass',
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
652 \], 'Xtest.py')
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
653
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
654 set tags=Xtags
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
655
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
656 1tag provision
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
657 call assert_equal(line('.'), 1)
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
658 2tag provision
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
659 call assert_equal(line('.'), 3)
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
660
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
661 call delete('Xtags')
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
662 call delete('Xtest.py')
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
663 set tags&
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
664 endfunc
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
665
19055
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
666 " Test for expanding environment variable in a tag file name
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
667 func Test_tag_envvar()
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
668 call writefile(["Func1\t$FOO\t/^Func1/"], 'Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
669 set tags=Xtags
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
670
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
671 let $FOO='TagTestEnv'
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
672
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
673 let caught_exception = v:false
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
674 try
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
675 tag Func1
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
676 catch /E429:/
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
677 call assert_match('E429:.*"TagTestEnv".*', v:exception)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
678 let caught_exception = v:true
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
679 endtry
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
680 call assert_true(caught_exception)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
681
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
682 set tags&
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
683 call delete('Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
684 unlet $FOO
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
685 endfunc
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
686
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
687 " Test for :ptag
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
688 func Test_tag_preview()
19055
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
689 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
690 \ "second\tXfile1\t2",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
691 \ "third\tXfile1\t3",],
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
692 \ 'Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
693 set tags=Xtags
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
694 call writefile(['first', 'second', 'third'], 'Xfile1')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
695
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
696 enew | only
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
697 ptag third
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
698 call assert_equal(2, winnr())
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
699 call assert_equal(2, winnr('$'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
700 call assert_equal(1, getwinvar(1, '&previewwindow'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
701 call assert_equal(0, getwinvar(2, '&previewwindow'))
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
702 wincmd P
19055
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
703 call assert_equal(3, line('.'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
704
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
705 " jump to the tag again
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
706 wincmd w
19055
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
707 ptag third
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
708 wincmd P
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
709 call assert_equal(3, line('.'))
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
710
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
711 " jump to the newer tag
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
712 wincmd w
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
713 ptag
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
714 wincmd P
19055
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
715 call assert_equal(3, line('.'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
716
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
717 " close the preview window
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
718 pclose
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
719 call assert_equal(1, winnr('$'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
720
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
721 call delete('Xfile1')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
722 call delete('Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
723 set tags&
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
724 endfunc
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
725
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
726 " Tests for guessing the tag location
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
727 func Test_tag_guess()
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
728 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
729 \ "func1\tXfoo\t/^int func1(int x)/",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
730 \ "func2\tXfoo\t/^int func2(int y)/",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
731 \ "func3\tXfoo\t/^func3/",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
732 \ "func4\tXfoo\t/^func4/"],
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
733 \ 'Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
734 set tags=Xtags
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
735 let code =<< trim [CODE]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
736
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
737 int FUNC1 (int x) { }
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
738 int
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
739 func2 (int y) { }
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
740 int * func3 () { }
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
741
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
742 [CODE]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
743 call writefile(code, 'Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
744
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
745 let v:statusmsg = ''
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
746 ta func1
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
747 call assert_match('E435:', v:statusmsg)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
748 call assert_equal(2, line('.'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
749 let v:statusmsg = ''
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
750 ta func2
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
751 call assert_match('E435:', v:statusmsg)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
752 call assert_equal(4, line('.'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
753 let v:statusmsg = ''
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
754 ta func3
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
755 call assert_match('E435:', v:statusmsg)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
756 call assert_equal(5, line('.'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
757 call assert_fails('ta func4', 'E434:')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
758
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
759 call delete('Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
760 call delete('Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
761 set tags&
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
762 endfunc
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
763
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
764 " Test for an unsorted tags file
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
765 func Test_tag_sort()
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
766 call writefile([
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
767 \ "first\tXfoo\t1",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
768 \ "ten\tXfoo\t3",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
769 \ "six\tXfoo\t2"],
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
770 \ 'Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
771 set tags=Xtags
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
772 let code =<< trim [CODE]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
773 int first() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
774 int six() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
775 int ten() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
776 [CODE]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
777 call writefile(code, 'Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
778
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
779 call assert_fails('tag first', 'E432:')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
780
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
781 call delete('Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
782 call delete('Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
783 set tags&
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
784 %bwipe
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
785 endfunc
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
786
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
787 " Test for an unsorted tags file
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
788 func Test_tag_fold()
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
789 call writefile([
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
790 \ "!_TAG_FILE_ENCODING\tutf-8\t//",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
791 \ "!_TAG_FILE_SORTED\t2\t/0=unsorted, 1=sorted, 2=foldcase/",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
792 \ "first\tXfoo\t1",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
793 \ "second\tXfoo\t2",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
794 \ "third\tXfoo\t3"],
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
795 \ 'Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
796 set tags=Xtags
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
797 let code =<< trim [CODE]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
798 int first() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
799 int second() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
800 int third() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
801 [CODE]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
802 call writefile(code, 'Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
803
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
804 enew
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
805 tag second
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
806 call assert_equal('Xfoo', bufname(''))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
807 call assert_equal(2, line('.'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
808
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
809 call delete('Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
810 call delete('Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
811 set tags&
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
812 %bwipe
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
813 endfunc
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
814
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
815 " Test for the :ltag command
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
816 func Test_ltag()
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
817 call writefile([
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
818 \ "!_TAG_FILE_ENCODING\tutf-8\t//",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
819 \ "first\tXfoo\t1",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
820 \ "second\tXfoo\t/^int second() {}$/",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
821 \ "third\tXfoo\t3"],
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
822 \ 'Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
823 set tags=Xtags
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
824 let code =<< trim [CODE]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
825 int first() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
826 int second() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
827 int third() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
828 [CODE]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
829 call writefile(code, 'Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
830
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
831 enew
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
832 call setloclist(0, [], 'f')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
833 ltag third
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
834 call assert_equal('Xfoo', bufname(''))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
835 call assert_equal(3, line('.'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
836 call assert_equal([{'lnum': 3, 'bufnr': bufnr('Xfoo'), 'col': 0,
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
837 \ 'pattern': '', 'valid': 1, 'vcol': 0, 'nr': 0, 'type': '',
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
838 \ 'module': '', 'text': 'third'}], getloclist(0))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
839
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
840 ltag second
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
841 call assert_equal(2, line('.'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
842 call assert_equal([{'lnum': 0, 'bufnr': bufnr('Xfoo'), 'col': 0,
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
843 \ 'pattern': '^\Vint second() {}\$', 'valid': 1, 'vcol': 0, 'nr': 0,
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
844 \ 'type': '', 'module': '', 'text': 'second'}], getloclist(0))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
845
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
846 call delete('Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
847 call delete('Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
848 set tags&
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
849 %bwipe
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
850 endfunc
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
851
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
852 " Test for setting the last search pattern to the tag search pattern
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
853 " when cpoptions has 't'
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
854 func Test_tag_last_search_pat()
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
855 call writefile([
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
856 \ "!_TAG_FILE_ENCODING\tutf-8\t//",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
857 \ "first\tXfoo\t/^int first() {}/",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
858 \ "second\tXfoo\t/^int second() {}/",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
859 \ "third\tXfoo\t/^int third() {}/"],
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
860 \ 'Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
861 set tags=Xtags
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
862 let code =<< trim [CODE]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
863 int first() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
864 int second() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
865 int third() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
866 [CODE]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
867 call writefile(code, 'Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
868
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
869 enew
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
870 let save_cpo = &cpo
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
871 set cpo+=t
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
872 let @/ = ''
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
873 tag second
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
874 call assert_equal('^int second() {}', @/)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
875 let &cpo = save_cpo
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
876
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
877 call delete('Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
878 call delete('Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
879 set tags&
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
880 %bwipe
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
881 endfunc
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
882
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
883 " Tag stack tests
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
884 func Test_tag_stack()
19055
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
885 let l = []
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
886 for i in range(10, 31)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
887 let l += ["var" .. i .. "\tXfoo\t/^int var" .. i .. ";$/"]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
888 endfor
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
889 call writefile(l, 'Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
890 set tags=Xtags
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
891
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
892 let l = []
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
893 for i in range(10, 31)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
894 let l += ["int var" .. i .. ";"]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
895 endfor
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
896 call writefile(l, 'Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
897
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
898 " Jump to a tag when the tag stack is full. Oldest entry should be removed.
19055
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
899 enew
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
900 for i in range(10, 30)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
901 exe "tag var" .. i
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
902 endfor
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
903 let l = gettagstack()
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
904 call assert_equal(20, l.length)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
905 call assert_equal('var11', l.items[0].tagname)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
906 tag var31
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
907 let l = gettagstack()
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
908 call assert_equal('var12', l.items[0].tagname)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
909 call assert_equal('var31', l.items[19].tagname)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
910
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
911 " Use tnext with a single match
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
912 call assert_fails('tnext', 'E427:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
913
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
914 " Jump to newest entry from the top of the stack
19055
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
915 call assert_fails('tag', 'E556:')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
916
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
917 " Pop with zero count from the top of the stack
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
918 call assert_fails('0pop', 'E556:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
919
19055
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
920 " Pop from an unsaved buffer
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
921 enew!
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
922 call append(1, "sample text")
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
923 call assert_fails('pop', 'E37:')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
924 call assert_equal(21, gettagstack().curidx)
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
925 enew!
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
926
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
927 " Pop all the entries in the tag stack
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
928 call assert_fails('30pop', 'E555:')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
929
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
930 " Pop with a count when already at the bottom of the stack
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
931 call assert_fails('exe "normal 4\<C-T>"', 'E555:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
932 call assert_equal(1, gettagstack().curidx)
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
933
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
934 " Jump to newest entry from the bottom of the stack with zero count
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
935 call assert_fails('0tag', 'E555:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
936
19055
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
937 " Pop the tag stack when it is empty
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
938 call settagstack(1, {'items' : []})
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
939 call assert_fails('pop', 'E73:')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
940
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
941 call delete('Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
942 call delete('Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
943 set tags&
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
944 %bwipe
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
945 endfunc
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
946
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
947 " Test for browsing multiple matching tags
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
948 func Test_tag_multimatch()
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
949 call writefile([
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
950 \ "!_TAG_FILE_ENCODING\tutf-8\t//",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
951 \ "first\tXfoo\t1",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
952 \ "first\tXfoo\t2",
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
953 \ "first\tXfoo\t3"],
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
954 \ 'Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
955 set tags=Xtags
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
956 let code =<< trim [CODE]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
957 int first() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
958 int first() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
959 int first() {}
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
960 [CODE]
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
961 call writefile(code, 'Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
962
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
963 call settagstack(1, {'items' : []})
19055
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
964 tag first
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
965 tlast
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
966 call assert_equal(3, line('.'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
967 call assert_fails('tnext', 'E428:')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
968 tfirst
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
969 call assert_equal(1, line('.'))
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
970 call assert_fails('tprev', 'E425:')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
971
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
972 tlast
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
973 call feedkeys("5\<CR>", 't')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
974 tselect first
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
975 call assert_equal(2, gettagstack().curidx)
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
976
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
977 set ignorecase
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
978 tag FIRST
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
979 tnext
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
980 call assert_equal(2, line('.'))
19425
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
981 tlast
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
982 tprev
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
983 call assert_equal(2, line('.'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
984 tNext
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
985 call assert_equal(1, line('.'))
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
986 set ignorecase&
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
987
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
988 call delete('Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
989 call delete('Xfoo')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
990 set tags&
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
991 %bwipe
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
992 endfunc
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
993
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
994 " Test for previewing multiple matching tags
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
995 func Test_preview_tag_multimatch()
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
996 call writefile([
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
997 \ "!_TAG_FILE_ENCODING\tutf-8\t//",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
998 \ "first\tXfoo\t1",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
999 \ "first\tXfoo\t2",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1000 \ "first\tXfoo\t3"],
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1001 \ 'Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1002 set tags=Xtags
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1003 let code =<< trim [CODE]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1004 int first() {}
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1005 int first() {}
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1006 int first() {}
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1007 [CODE]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1008 call writefile(code, 'Xfoo')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1009
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1010 enew | only
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1011 ptag first
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1012 ptlast
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1013 wincmd P
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1014 call assert_equal(3, line('.'))
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1015 wincmd w
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1016 call assert_fails('ptnext', 'E428:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1017 ptprev
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1018 wincmd P
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1019 call assert_equal(2, line('.'))
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1020 wincmd w
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1021 ptfirst
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1022 wincmd P
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1023 call assert_equal(1, line('.'))
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1024 wincmd w
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1025 call assert_fails('ptprev', 'E425:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1026 ptnext
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1027 wincmd P
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1028 call assert_equal(2, line('.'))
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1029 wincmd w
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1030 ptlast
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1031 call feedkeys("5\<CR>", 't')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1032 ptselect first
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1033 wincmd P
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1034 call assert_equal(3, line('.'))
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1035
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1036 pclose
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1037
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1038 call delete('Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1039 call delete('Xfoo')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1040 set tags&
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1041 %bwipe
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1042 endfunc
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1043
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1044 " Test for jumping to multiple matching tags across multiple :tags commands
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1045 func Test_tnext_multimatch()
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1046 call writefile([
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1047 \ "!_TAG_FILE_ENCODING\tutf-8\t//",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1048 \ "first\tXfoo1\t1",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1049 \ "first\tXfoo2\t1",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1050 \ "first\tXfoo3\t1"],
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1051 \ 'Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1052 set tags=Xtags
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1053 let code =<< trim [CODE]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1054 int first() {}
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1055 [CODE]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1056 call writefile(code, 'Xfoo1')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1057 call writefile(code, 'Xfoo2')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1058 call writefile(code, 'Xfoo3')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1059
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1060 tag first
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1061 tag first
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1062 pop
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1063 tnext
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1064 tnext
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1065 call assert_fails('tnext', 'E428:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1066
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1067 call delete('Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1068 call delete('Xfoo1')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1069 call delete('Xfoo2')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1070 call delete('Xfoo3')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1071 set tags&
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1072 %bwipe
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1073 endfunc
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1074
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1075 " Test for jumping to multiple matching tags in non-existing files
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1076 func Test_multimatch_non_existing_files()
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1077 call writefile([
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1078 \ "!_TAG_FILE_ENCODING\tutf-8\t//",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1079 \ "first\tXfoo1\t1",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1080 \ "first\tXfoo2\t1",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1081 \ "first\tXfoo3\t1"],
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1082 \ 'Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1083 set tags=Xtags
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1084
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1085 call settagstack(1, {'items' : []})
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1086 call assert_fails('tag first', 'E429:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1087 call assert_equal(3, gettagstack().items[0].matchnr)
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1088
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1089 call delete('Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1090 set tags&
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1091 %bwipe
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1092 endfunc
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1093
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1094 func Test_tselect_listing()
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1095 call writefile([
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1096 \ "!_TAG_FILE_ENCODING\tutf-8\t//",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1097 \ "first\tXfoo\t1" .. ';"' .. "\tv\ttyperef:typename:int\tfile:",
20941
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1098 \ "first\tXfoo\t2" .. ';"' .. "\tkind:v\ttyperef:typename:char\tfile:"],
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1099 \ 'Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1100 set tags=Xtags
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1101
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1102 let code =<< trim [CODE]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1103 static int first;
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1104 static char first;
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1105 [CODE]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1106 call writefile(code, 'Xfoo')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1107
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1108 call feedkeys("\<CR>", "t")
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1109 let l = split(execute("tselect first"), "\n")
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1110 let expected =<< [DATA]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1111 # pri kind tag file
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1112 1 FS v first Xfoo
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1113 typeref:typename:int
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1114 1
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1115 2 FS v first Xfoo
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1116 typeref:typename:char
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1117 2
20796
8b775cd23555 patch 8.2.0950: tagjump test fails
Bram Moolenaar <Bram@vim.org>
parents: 20120
diff changeset
1118 Type number and <Enter> (q or empty cancels):
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1119 [DATA]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1120 call assert_equal(expected, l)
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1121
19055
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
1122 call delete('Xtags')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
1123 call delete('Xfoo')
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
1124 set tags&
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
1125 %bwipe
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
1126 endfunc
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
1127
19425
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1128 " Test for :isearch, :ilist, :ijump and :isplit commands
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1129 " Test for [i, ]i, [I, ]I, [ CTRL-I, ] CTRL-I and CTRL-W i commands
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1130 func Test_inc_search()
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1131 new
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1132 call setline(1, ['1:foo', '2:foo', 'foo', '3:foo', '4:foo'])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1133 call cursor(3, 1)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1134
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1135 " Test for [i and ]i
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1136 call assert_equal('1:foo', execute('normal [i'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1137 call assert_equal('2:foo', execute('normal 2[i'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1138 call assert_fails('normal 3[i', 'E387:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1139 call assert_equal('3:foo', execute('normal ]i'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1140 call assert_equal('4:foo', execute('normal 2]i'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1141 call assert_fails('normal 3]i', 'E389:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1142
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1143 " Test for :isearch
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1144 call assert_equal('1:foo', execute('isearch foo'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1145 call assert_equal('3:foo', execute('isearch 4 /foo/'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1146 call assert_fails('isearch 3 foo', 'E387:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1147 call assert_equal('3:foo', execute('+1,$isearch foo'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1148 call assert_fails('1,.-1isearch 3 foo', 'E389:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1149 call assert_fails('isearch bar', 'E389:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1150 call assert_fails('isearch /foo/3', 'E488:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1151
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1152 " Test for [I and ]I
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1153 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1154 \ ' 1: 1 1:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1155 \ ' 2: 2 2:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1156 \ ' 3: 3 foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1157 \ ' 4: 4 3:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1158 \ ' 5: 5 4:foo'], split(execute('normal [I'), "\n"))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1159 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1160 \ ' 1: 4 3:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1161 \ ' 2: 5 4:foo'], split(execute('normal ]I'), "\n"))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1162
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1163 " Test for :ilist
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1164 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1165 \ ' 1: 1 1:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1166 \ ' 2: 2 2:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1167 \ ' 3: 3 foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1168 \ ' 4: 4 3:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1169 \ ' 5: 5 4:foo'], split(execute('ilist foo'), "\n"))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1170 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1171 \ ' 1: 4 3:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1172 \ ' 2: 5 4:foo'], split(execute('+1,$ilist /foo/'), "\n"))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1173 call assert_fails('ilist bar', 'E389:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1174
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1175 " Test for [ CTRL-I and ] CTRL-I
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1176 exe "normal [\t"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1177 call assert_equal([1, 3], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1178 exe "normal 2j4[\t"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1179 call assert_equal([4, 3], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1180 call assert_fails("normal k3[\t", 'E387:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1181 call assert_fails("normal 6[\t", 'E389:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1182 exe "normal ]\t"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1183 call assert_equal([4, 3], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1184 exe "normal k2]\t"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1185 call assert_equal([5, 3], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1186 call assert_fails("normal 2k3]\t", 'E389:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1187
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1188 " Test for :ijump
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1189 call cursor(3, 1)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1190 ijump foo
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1191 call assert_equal([1, 3], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1192 call cursor(3, 1)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1193 ijump 4 /foo/
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1194 call assert_equal([4, 3], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1195 call cursor(3, 1)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1196 call assert_fails('ijump 3 foo', 'E387:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1197 +,$ijump 2 foo
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1198 call assert_equal([5, 3], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1199 call assert_fails('ijump bar', 'E389:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1200
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1201 " Test for CTRL-W i
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1202 call cursor(3, 1)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1203 wincmd i
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1204 call assert_equal([1, 3, 3], [line('.'), col('.'), winnr('$')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1205 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1206 5wincmd i
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1207 call assert_equal([5, 3, 3], [line('.'), col('.'), winnr('$')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1208 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1209 call assert_fails('3wincmd i', 'E387:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1210 call assert_fails('6wincmd i', 'E389:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1211
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1212 " Test for :isplit
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1213 isplit foo
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1214 call assert_equal([1, 3, 3], [line('.'), col('.'), winnr('$')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1215 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1216 isplit 5 /foo/
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1217 call assert_equal([5, 3, 3], [line('.'), col('.'), winnr('$')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1218 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1219 call assert_fails('isplit 3 foo', 'E387:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1220 call assert_fails('isplit 6 foo', 'E389:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1221 call assert_fails('isplit bar', 'E389:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1222
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1223 close!
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1224 endfunc
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1225
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1226 " Test for :dsearch, :dlist, :djump and :dsplit commands
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1227 " Test for [d, ]d, [D, ]D, [ CTRL-D, ] CTRL-D and CTRL-W d commands
19625
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1228 func Test_macro_search()
19425
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1229 new
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1230 call setline(1, ['#define FOO 1', '#define FOO 2', '#define FOO 3',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1231 \ '#define FOO 4', '#define FOO 5'])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1232 call cursor(3, 9)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1233
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1234 " Test for [d and ]d
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1235 call assert_equal('#define FOO 1', execute('normal [d'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1236 call assert_equal('#define FOO 2', execute('normal 2[d'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1237 call assert_fails('normal 3[d', 'E387:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1238 call assert_equal('#define FOO 4', execute('normal ]d'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1239 call assert_equal('#define FOO 5', execute('normal 2]d'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1240 call assert_fails('normal 3]d', 'E388:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1241
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1242 " Test for :dsearch
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1243 call assert_equal('#define FOO 1', execute('dsearch FOO'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1244 call assert_equal('#define FOO 5', execute('dsearch 5 /FOO/'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1245 call assert_fails('dsearch 3 FOO', 'E387:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1246 call assert_equal('#define FOO 4', execute('+1,$dsearch FOO'))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1247 call assert_fails('1,.-1dsearch 3 FOO', 'E388:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1248 call assert_fails('dsearch BAR', 'E388:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1249
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1250 " Test for [D and ]D
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1251 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1252 \ ' 1: 1 #define FOO 1',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1253 \ ' 2: 2 #define FOO 2',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1254 \ ' 3: 3 #define FOO 3',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1255 \ ' 4: 4 #define FOO 4',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1256 \ ' 5: 5 #define FOO 5'], split(execute('normal [D'), "\n"))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1257 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1258 \ ' 1: 4 #define FOO 4',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1259 \ ' 2: 5 #define FOO 5'], split(execute('normal ]D'), "\n"))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1260
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1261 " Test for :dlist
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1262 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1263 \ ' 1: 1 #define FOO 1',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1264 \ ' 2: 2 #define FOO 2',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1265 \ ' 3: 3 #define FOO 3',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1266 \ ' 4: 4 #define FOO 4',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1267 \ ' 5: 5 #define FOO 5'], split(execute('dlist FOO'), "\n"))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1268 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1269 \ ' 1: 4 #define FOO 4',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1270 \ ' 2: 5 #define FOO 5'], split(execute('+1,$dlist /FOO/'), "\n"))
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1271 call assert_fails('dlist BAR', 'E388:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1272
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1273 " Test for [ CTRL-D and ] CTRL-D
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1274 exe "normal [\<C-D>"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1275 call assert_equal([1, 9], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1276 exe "normal 2j4[\<C-D>"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1277 call assert_equal([4, 9], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1278 call assert_fails("normal k3[\<C-D>", 'E387:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1279 call assert_fails("normal 6[\<C-D>", 'E388:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1280 exe "normal ]\<C-D>"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1281 call assert_equal([4, 9], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1282 exe "normal k2]\<C-D>"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1283 call assert_equal([5, 9], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1284 call assert_fails("normal 2k3]\<C-D>", 'E388:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1285
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1286 " Test for :djump
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1287 call cursor(3, 9)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1288 djump FOO
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1289 call assert_equal([1, 9], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1290 call cursor(3, 9)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1291 djump 4 /FOO/
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1292 call assert_equal([4, 9], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1293 call cursor(3, 9)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1294 call assert_fails('djump 3 FOO', 'E387:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1295 +,$djump 2 FOO
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1296 call assert_equal([5, 9], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1297 call assert_fails('djump BAR', 'E388:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1298
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1299 " Test for CTRL-W d
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1300 call cursor(3, 9)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1301 wincmd d
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1302 call assert_equal([1, 9, 3], [line('.'), col('.'), winnr('$')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1303 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1304 5wincmd d
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1305 call assert_equal([5, 9, 3], [line('.'), col('.'), winnr('$')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1306 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1307 call assert_fails('3wincmd d', 'E387:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1308 call assert_fails('6wincmd d', 'E388:')
21020
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
1309 new
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
1310 call assert_fails("normal \<C-W>d", 'E349:')
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
1311 call assert_fails("normal \<C-W>\<C-D>", 'E349:')
6c634e63989c patch 8.2.1061: insufficient testing for src/window.c
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
1312 close
19425
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1313
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1314 " Test for :dsplit
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1315 dsplit FOO
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1316 call assert_equal([1, 9, 3], [line('.'), col('.'), winnr('$')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1317 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1318 dsplit 5 /FOO/
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1319 call assert_equal([5, 9, 3], [line('.'), col('.'), winnr('$')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1320 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1321 call assert_fails('dsplit 3 FOO', 'E387:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1322 call assert_fails('dsplit 6 FOO', 'E388:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1323 call assert_fails('dsplit BAR', 'E388:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1324
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1325 close!
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1326 endfunc
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1327
19625
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1328 " Test for [*, [/, ]* and ]/
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1329 func Test_comment_search()
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1330 new
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1331 call setline(1, ['', '/*', ' *', ' *', ' */'])
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1332 normal! 4gg[/
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1333 call assert_equal([2, 1], [line('.'), col('.')])
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1334 normal! 3gg[*
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1335 call assert_equal([2, 1], [line('.'), col('.')])
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1336 normal! 3gg]/
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1337 call assert_equal([5, 3], [line('.'), col('.')])
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1338 normal! 3gg]*
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1339 call assert_equal([5, 3], [line('.'), col('.')])
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1340 %d
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1341 call setline(1, ['', '/*', ' *', ' *'])
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1342 call assert_beeps('normal! 3gg]/')
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1343 %d
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1344 call setline(1, ['', ' *', ' *', ' */'])
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1345 call assert_beeps('normal! 4gg[/')
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1346 %d
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1347 call setline(1, ' /* comment */')
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1348 normal! 15|[/
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1349 call assert_equal(9, col('.'))
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1350 normal! 15|]/
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1351 call assert_equal(21, col('.'))
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1352 call setline(1, ' comment */')
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1353 call assert_beeps('normal! 15|[/')
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1354 call setline(1, ' /* comment')
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1355 call assert_beeps('normal! 15|]/')
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1356 close!
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1357 endfunc
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1358
20893
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1359 " Test for the 'taglength' option
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1360 func Test_tag_length()
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1361 set tags=Xtags
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1362 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1363 \ "tame\tXfile1\t1;",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1364 \ "tape\tXfile2\t1;"], 'Xtags')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1365 call writefile(['tame'], 'Xfile1')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1366 call writefile(['tape'], 'Xfile2')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1367
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1368 " Jumping to the tag 'tape', should instead jump to 'tame'
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1369 new
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1370 set taglength=2
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1371 tag tape
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1372 call assert_equal('Xfile1', @%)
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1373 " Tag search should jump to the right tag
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1374 enew
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1375 tag /^tape$
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1376 call assert_equal('Xfile2', @%)
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1377
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1378 call delete('Xtags')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1379 call delete('Xfile1')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1380 call delete('Xfile2')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1381 set tags& taglength&
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1382 endfunc
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1383
20941
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1384 " Tests for errors in a tags file
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1385 func Test_tagfile_errors()
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1386 set tags=Xtags
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1387
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1388 " missing search pattern or line number for a tag
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1389 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1390 \ "foo\tXfile\t"], 'Xtags', 'b')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1391 call writefile(['foo'], 'Xfile')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1392
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1393 enew
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1394 tag foo
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1395 call assert_equal('', @%)
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1396 let caught_431 = v:false
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1397 try
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1398 eval taglist('.*')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1399 catch /:E431:/
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1400 let caught_431 = v:true
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1401 endtry
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1402 call assert_equal(v:true, caught_431)
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1403
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1404 call delete('Xtags')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1405 call delete('Xfile')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1406 set tags&
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1407 endfunc
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1408
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1409 " When :stag fails to open the file, should close the new window
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1410 func Test_stag_close_window_on_error()
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1411 new | only
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1412 set tags=Xtags
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1413 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1414 \ "foo\tXfile\t1"], 'Xtags')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1415 call writefile(['foo'], 'Xfile')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1416 call writefile([], '.Xfile.swp')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1417 " Remove the catch-all that runtest.vim adds
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1418 au! SwapExists
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1419 augroup StagTest
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1420 au!
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1421 autocmd SwapExists Xfile let v:swapchoice='q'
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1422 augroup END
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1423
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1424 stag foo
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1425 call assert_equal(1, winnr('$'))
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1426 call assert_equal('', @%)
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1427
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1428 augroup StagTest
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1429 au!
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1430 augroup END
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1431 call delete('Xfile')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1432 call delete('.Xfile.swp')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1433 set tags&
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1434 endfunc
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20893
diff changeset
1435
9909
3ee84d270ea7 commit https://github.com/vim/vim/commit/9e4d8215d386100ab660d7d11e6620fd148b605e
Christian Brabandt <cb@256bit.org>
parents: 9228
diff changeset
1436 " vim: shiftwidth=2 sts=2 expandtab