annotate src/testdir/test_tagjump.vim @ 20893:c78689fa0633 v8.2.0998

patch 8.2.0998: not all tag code is tested Commit: https://github.com/vim/vim/commit/3d9207ad2fc98b4f92f77b5a3d52a3a4d25b9561 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jun 17 22:58:35 2020 +0200 patch 8.2.0998: not all tag code is tested Problem: Not all tag code is tested. Solution: Add a few more test cases. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/6284)
author Bram Moolenaar <Bram@vim.org>
date Wed, 17 Jun 2020 23:00:03 +0200
parents 8b775cd23555
children 505d97ea54da
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
42c8599421e5 commit https://github.com/vim/vim/commit/8d8aa0a367380f23f0af428fcb66a1a0615bf872
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 call assert_fails('ptag does_not_exist_tag_name', 'E426')
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
9949
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
15 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
16 CheckFeature quickfix
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18640
diff changeset
17
9949
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
18 set tags=Xtags
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
19 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
20 \ "word\tfile1\tcmd1",
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
21 \ "word\tfile2\tcmd2"],
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
22 \ 'Xtags')
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
23
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
24 only!
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
25 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
26 help
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
27 call assert_equal(2, winnr('$'))
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
28
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
29 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
30 set tags&
9949
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
31 quit
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
32 endfunc
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
33
10611
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
34 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
35 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
36 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
37 \ "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
38 \ "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
39 \ 'Xtags')
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
40 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
41 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
42 write
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
43 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
44 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
45
11008
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
46 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
47 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
48 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
49 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
50 endfunc
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
51
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
52 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
53 set tags=Xtags
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
54 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
55 \ "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
56 \ "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
57 \ "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
58 \ ],
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
59 \ 'Xtags')
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
60 new Xfile1
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
61 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
62 write
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
63 tag thesame
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
64 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
65 tnext
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
66 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
67 tnext
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
68 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
69
10611
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
70 bwipe!
11008
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
71 set tags&
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
72 call delete('Xtags')
0ecd07cd2e43 patch 8.0.0393: order of duplicate tags is not preserved
Christian Brabandt <cb@256bit.org>
parents: 10611
diff changeset
73 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
74 endfunc
6bff81438f27 patch 8.0.0195: fail to jump to static tag in current file
Christian Brabandt <cb@256bit.org>
parents: 10145
diff changeset
75
11476
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
76 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
77 CheckFeature quickfix
068337e86133 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents: 18640
diff changeset
78
11476
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
79 set tags=Xtags
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
80 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
81 \ "second\tXfile1\t2",
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
82 \ "third\tXfile1\t3",],
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
83 \ 'Xtags')
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
84 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
85
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
86 enew | only
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
87 set switchbuf=
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
88 stag second
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
89 call assert_equal(2, winnr('$'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
90 call assert_equal(2, line('.'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
91 stag third
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
92 call assert_equal(3, winnr('$'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
93 call assert_equal(3, line('.'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
94
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
95 enew | only
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
96 set switchbuf=useopen
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
97 stag second
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
98 call assert_equal(2, winnr('$'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
99 call assert_equal(2, line('.'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
100 stag third
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
101 call assert_equal(2, winnr('$'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
102 call assert_equal(3, line('.'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
103
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
104 enew | only
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
105 set switchbuf=usetab
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
106 tab stag second
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
107 call assert_equal(2, tabpagenr('$'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
108 call assert_equal(2, line('.'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
109 1tabnext | stag third
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
110 call assert_equal(2, tabpagenr('$'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
111 call assert_equal(3, line('.'))
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
112
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
113 tabclose!
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
114 enew | only
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
115 call delete('Xfile1')
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
116 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
117 set tags&
11476
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
118 set switchbuf&vim
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
119 endfunc
c45fb081391c patch 8.0.0621: :stag does not respect 'switchbuf'
Christian Brabandt <cb@256bit.org>
parents: 11008
diff changeset
120
10145
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
121 " 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
122 function Test_keyword_jump()
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
123 call writefile(["#include Xinclude", "",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
124 \ "",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
125 \ "/* test text test tex start here",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
126 \ " some text",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
127 \ " test text",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
128 \ " start OK if found this line",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
129 \ " start found wrong line",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
130 \ "test text"], 'Xtestfile')
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
131 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
132 \ " some text",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
133 \ " test text",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
134 \ " start OK if found this line",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
135 \ " start found wrong line",
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
136 \ "test text"], 'Xinclude')
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
137 new Xtestfile
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
138 call cursor(1,1)
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
139 call search("start")
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
140 exe "normal! 5[\<C-I>"
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
141 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
142 call cursor(1,1)
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
143 call search("start")
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
144 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
145 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
146 enew! | only
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
147 call delete('Xtestfile')
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
148 call delete('Xinclude')
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
149 endfunction
eb9a7296ae9f commit https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
150
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
151 " 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
152 " 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
153 func Test_tag_symbolic()
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
154 if !has('unix')
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
155 return
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
156 endif
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
157 set hidden
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
158 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
159 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
160 " 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
161 call writefile([
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
162 \ "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
163 \ '',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
164 \ ], 'Xtags')
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
165 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
166 \ '#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
167
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
168 " 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
169 " 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
170 " 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
171 set tags=Xtags
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
172 enew!
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
173 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
174 call cursor(1,1)
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
175 exe "normal \<C-]> "
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
176 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
177 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
178
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
179 set hidden&
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
180 set tags&
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
181 enew!
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
182 call delete('Xtags')
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
183 call delete('Xtest.c')
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
184 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
185 %bwipe!
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
186 endfunc
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11476
diff changeset
187
12750
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
188 " 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
189 " 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
190 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
191 if has('vms')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
192 return
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
193 endif
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
194
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
195 if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
196 return
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
197 endif
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
198
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
199 let save_enc = &encoding
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
200 set encoding=utf8
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
201
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
202 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
203 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
204 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
205 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
206 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
207 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
208 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
209 call writefile(content, 'Xtags1')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
210
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
211 " case1:
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
212 new
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
213 set tags=Xtags1
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
214 tag abcdefghijklmnopqrs
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
215 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
216 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
217 close
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
218
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
219 " case2:
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
220 new
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
221 set tags=test83-tags2
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
222 tag /.BC
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
223 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
224 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
225 close
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
226
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
227 " case3:
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
228 new
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
229 set tags=test83-tags3
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
230 tag abc50
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
231 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
232 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
233 close
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 set tags&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
236 let &encoding = save_enc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
237 call delete('Xtags1.txt')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
238 call delete('Xtags2.txt')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
239 call delete('Xtags3.txt')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
240 call delete('Xtags1')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
241 endfunc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
242
13227
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
243 func Test_tagjump_etags()
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
244 if !has('emacs_tags')
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
245 return
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
246 endif
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
247 call writefile([
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
248 \ "void foo() {}",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
249 \ "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
250 \ "{",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
251 \ "\tfoo();",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
252 \ "\treturn 0;",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
253 \ "}",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
254 \ ], 'Xmain.c')
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
255
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
256 call writefile([
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
257 \ "\x0c",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
258 \ "Xmain.c,64",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
259 \ "void foo() {}\x7ffoo\x011,0",
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
260 \ "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
261 \ ], 'Xtags')
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
262 set tags=Xtags
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
263 ta foo
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
264 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
265
20893
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
266 " 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
267 call writefile([
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
268 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
269 \ "Xmain.c,64",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
270 \ "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
271 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
272 \ "Xnonexisting,include",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
273 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
274 \ "Xtags2,include"
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
275 \ ], 'Xtags')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
276 call writefile([
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
277 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
278 \ "Xmain.c,64",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
279 \ "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
280 \ ], 'Xtags2')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
281 tag main
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
282 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
283
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
284 " corrupted tag line
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
285 call writefile([
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
286 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
287 \ "Xmain.c,8",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
288 \ "int main"
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
289 \ ], 'Xtags', 'b')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
290 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
291
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
292 " invalid line number
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
293 call writefile([
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
294 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
295 \ "Xmain.c,64",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
296 \ "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
297 \ ], 'Xtags')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
298 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
299
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
300 " invalid tag name
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
301 call writefile([
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
302 \ "\x0c",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
303 \ "Xmain.c,64",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
304 \ ";;;;\x7f1,0",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
305 \ ], 'Xtags')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
306 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
307
13227
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
308 call delete('Xtags')
20893
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
309 call delete('Xtags2')
13227
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
310 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
311 set tags&
13227
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
312 bwipe!
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
313 endfunc
b88fa651c824 patch 8.0.1488: emacs tags no longer work
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
314
15016
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
315 " 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
316 func Test_getsettagstack()
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
317 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
318 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
319 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
320
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
321 enew | only
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
322 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
323 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
324 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
325 " Error cases
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
326 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
327 call assert_equal(-1, settagstack(100, {'items' : []}))
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
328 call assert_fails('call settagstack(1, [1, 10])', 'E715')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
329 call assert_fails("call settagstack(1, {'items' : 10})", 'E714')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
330 call assert_fails("call settagstack(1, {'items' : []}, 10)", 'E928')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
331 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
332 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
333
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
334 set tags=Xtags
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
335 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
336 \ "one\tXfile1\t1",
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
337 \ "three\tXfile3\t3",
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
338 \ "two\tXfile2\t2"],
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
339 \ 'Xtags')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
340
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
341 let stk = []
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
342 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
343 \ '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
344 tag one
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
345 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
346 \ '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
347 tag two
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
348 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
349 \ '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
350 tag three
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
351 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
352 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
353 " 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
354 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
355 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
356
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
357 " 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
358 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
359 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
360 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
361 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
362
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
363 " 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
364 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
365 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
366 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
367 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
368 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
369 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
370 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
371 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
372 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
373 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
374 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
375 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
376 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
377
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
378 " 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
379 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
380 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
381 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
382 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
383 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
384 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
385 \ gettagstack(1))
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
386
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
387 " 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
388 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
389 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
390 endfor
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(20, gettagstack().length)
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
392 call settagstack(1,
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
393 \ {'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
394 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
395
19033
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
396 " truncate the tag stack
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
397 call settagstack(1,
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
398 \ {'curidx' : 9,
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
399 \ '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
400 let t = gettagstack()
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
401 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
402 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
403
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
404 " 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
405 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
406 let t = gettagstack()
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
407 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
408 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
409
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
410 " 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
411 call settagstack(1, {'items' : []})
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
412 call settagstack(1,
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
413 \ {'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
414 let t = gettagstack()
f0312cf3c792 patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents: 18767
diff changeset
415 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
416 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
417
15016
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
418 " 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
419 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
420 \ "two\tXfile1\t1",
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
421 \ "two\tXfile2\t3",
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
422 \ "two\tXfile3\t2"],
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
423 \ 'Xtags')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
424 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
425 tag two
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
426 tnext
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
427 tnext
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
428 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
429 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
430
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
431 " Memory allocation failures
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
432 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
433 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
434 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
435 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
436 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
437 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
438
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
439 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
440 call delete('Xfile1')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
441 call delete('Xfile2')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
442 call delete('Xfile3')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
443 call delete('Xtags')
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
444 set tags&
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
445 endfunc
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13227
diff changeset
446
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
447 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
448 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
449 \ '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
450 \ ], '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
451 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
452 \ '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
453 \ '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
454 \ ], '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
455 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
456 \ '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
457 \ '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
458 \ ], '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
459 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
460 \ '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
461 \ ], '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
462 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
463
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
464 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
465 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
466 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
467 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
468
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
469 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
470 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
471 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
472 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
473 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
474 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
475
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
476 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
477 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
478 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
479 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
480 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
481 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
482 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
483 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
484
213b88f89597 patch 8.1.1087: tag stack is incorrect after CTRL-T and then :tag
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
485 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
486 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
487 \ '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
488 \ '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
489 \ '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
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 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
492 \ '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
493 \ '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
494 \ ], '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
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 \ '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
497 \ ], '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
498 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
499
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 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
501 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
502 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
503 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
504
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 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
506 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
507 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
508 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
509 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
510 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
511
17093
5cda6165a5c1 patch 8.1.1546: in some tests 'tags' is set but not restored
Bram Moolenaar <Bram@vim.org>
parents: 16178
diff changeset
512 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
513 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
514 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
515 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
516 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
517 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
518 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
519
16178
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
520 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
521 call writefile([
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
522 \ '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
523 \ ], 'Xtags')
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
524 set tags=Xtags
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
525 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
526 set verbose=5
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
527 " ":tjump" should give "tag not found" not "Format error in tags file"
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
528 call assert_fails('tj /foo', 'E426')
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
529 try
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
530 tj /foo
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
531 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
532 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
533 catch /.*/
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
534 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
535 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
536
16178
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
537 call writefile([
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
538 \ '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
539 \ ], 'Xtags')
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
540 call assert_fails('tj /foo', 'E426')
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
541 try
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
542 tj /foo
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
543 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
544 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
545 catch /.*/
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
546 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
547 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
548
90e5812af76b patch 8.1.2269: tags file with very long line stops using binary search
Bram Moolenaar <Bram@vim.org>
parents: 18297
diff changeset
549 " 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
550 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
551 \ '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
552 \ '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
553 \ '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
554 \ ], '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
555 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
556 \ '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
557 \ '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
558 \ '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
559 \ '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
560 \ ], '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
561 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
562 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
563 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
564
16178
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
565 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
566 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
567 set tags&
16178
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
568 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
569 endfunc
a8689ea2e869 patch 8.1.1094: long line in tags file causes error
Bram Moolenaar <Bram@vim.org>
parents: 16164
diff changeset
570
18293
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
571 " 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
572 " 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
573 func Test_tselect()
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
574 CheckScreendump
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
575
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
576 call writefile([
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
577 \ '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
578 \ '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
579 \ '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
580 \ ], 'Xtags')
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
581 cal writefile([
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
582 \ 'int main()',
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
583 \ 'void test()',
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
584 \ ], 'Xtest.c')
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
585
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
586 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
587 set tags=Xtags
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
588 [SCRIPT]
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
589 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
590 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
591
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19625
diff changeset
592 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
593 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
594 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
595
18297
b0b37bd807ba patch 8.1.2143: cannot see each command even when 'verbose' is set
Bram Moolenaar <Bram@vim.org>
parents: 18293
diff changeset
596 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
597 call delete('Xtags')
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
598 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
599 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
600 endfunc
1c5974759bcd patch 8.1.2141: :tselect has an extra hit-enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
601
18640
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
602 func Test_tagline()
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
603 call writefile([
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
604 \ '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
605 \ '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
606 \], 'Xtags')
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
607 call writefile([
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
608 \ ' 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
609 \ ' pass',
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
610 \ ' 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
611 \ ' pass',
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
612 \], 'Xtest.py')
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
613
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
614 set tags=Xtags
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
615
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
616 1tag provision
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
617 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
618 2tag provision
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
619 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
620
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
621 call delete('Xtags')
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
622 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
623 set tags&
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
624 endfunc
b9240fe40dd4 patch 8.1.2312: "line:" field in tags file not used
Bram Moolenaar <Bram@vim.org>
parents: 18550
diff changeset
625
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
626 " 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
627 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
628 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
629 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
630
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
631 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
632
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
633 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
634 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
635 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
636 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
637 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
638 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
639 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
640 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
641
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
642 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
643 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
644 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
645 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
646
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
647 " Test for :ptag
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
648 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
649 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
650 \ "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
651 \ "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
652 \ '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
653 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
654 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
655
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
656 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
657 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
658 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
659 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
660 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
661 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
662 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
663 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
664
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
665 " jump to the tag again
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
666 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
667 ptag third
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
668 wincmd P
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
669 call assert_equal(3, line('.'))
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
670
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
671 " jump to the newer tag
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
672 wincmd w
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
673 ptag
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
674 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
675 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
676
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 " 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
678 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
679 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
680
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 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
682 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
683 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
684 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
685
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 " 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
687 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
688 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
689 \ "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
690 \ "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
691 \ "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
692 \ "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
693 \ '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 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
695 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
696
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 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
698 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
699 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
700 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
701
8645b73b3645 patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents: 19033
diff changeset
702 [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
703 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
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 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
706 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
707 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
708 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
709 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
710 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
711 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
712 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
713 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
714 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
715 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
716 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
717 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
718
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 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
720 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
721 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
722 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
723
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 " 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
725 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
726 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
727 \ "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
728 \ "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
729 \ "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
730 \ '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
731 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
732 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
733 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
734 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
735 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
736 [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
737 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
738
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 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
740
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 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
742 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
743 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
744 %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
745 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
746
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 " 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
748 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
749 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
750 \ "!_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
751 \ "!_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
752 \ "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
753 \ "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
754 \ "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
755 \ '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
756 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
757 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
758 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
759 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
760 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
761 [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
762 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
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 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
765 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
766 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
767 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
768
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 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
770 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
771 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
772 %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
773 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
774
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 " 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
776 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
777 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
778 \ "!_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
779 \ "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
780 \ "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
781 \ "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
782 \ '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
783 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
784 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
785 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
786 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
787 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
788 [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
789 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
790
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 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
792 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
793 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
794 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
795 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
796 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
797 \ '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
798 \ '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
799
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 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
801 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
802 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
803 \ '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
804 \ '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
805
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 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
807 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
808 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
809 %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
810 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
811
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 " 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
813 " 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
814 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
815 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
816 \ "!_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
817 \ "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
818 \ "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
819 \ "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
820 \ '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
821 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
822 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
823 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
824 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
825 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
826 [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
827 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
828
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 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
830 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
831 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
832 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
833 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
834 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
835 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
836
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 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
838 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
839 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
840 %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
841 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
842
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
843 " Tag stack tests
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
844 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
845 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
846 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
847 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
848 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
849 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
850 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
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 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
853 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
854 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
855 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
856 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
857
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
858 " 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
859 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
860 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
861 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
862 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
863 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
864 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
865 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
866 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
867 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
868 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
869 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
870
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
871 " Use tnext with a single match
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
872 call assert_fails('tnext', 'E427:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
873
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
874 " 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
875 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
876
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
877 " 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
878 call assert_fails('0pop', 'E556:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
879
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
880 " 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
881 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
882 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
883 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
884 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
885 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
886
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 " 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
888 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
889
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
890 " 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
891 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
892 call assert_equal(1, gettagstack().curidx)
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
893
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
894 " 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
895 call assert_fails('0tag', 'E555:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
896
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
897 " 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
898 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
899 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
900
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 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
902 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
903 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
904 %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
905 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
906
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 " 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
908 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
909 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
910 \ "!_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
911 \ "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
912 \ "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
913 \ "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
914 \ '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
915 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
916 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
917 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
918 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
919 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
920 [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
921 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
922
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
923 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
924 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
925 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
926 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
927 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
928 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
929 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
930 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
931
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
932 tlast
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
933 call feedkeys("5\<CR>", 't')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
934 tselect first
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
935 call assert_equal(2, gettagstack().curidx)
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
936
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
937 set ignorecase
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
938 tag FIRST
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
939 tnext
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
940 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
941 tlast
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
942 tprev
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
943 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
944 tNext
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
945 call assert_equal(1, line('.'))
19063
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
946 set ignorecase&
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
947
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
948 call delete('Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
949 call delete('Xfoo')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
950 set tags&
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
951 %bwipe
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
952 endfunc
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
953
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
954 " Test for previewing multiple matching tags
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
955 func Test_preview_tag_multimatch()
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
956 call writefile([
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
957 \ "!_TAG_FILE_ENCODING\tutf-8\t//",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
958 \ "first\tXfoo\t1",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
959 \ "first\tXfoo\t2",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
960 \ "first\tXfoo\t3"],
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
961 \ 'Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
962 set tags=Xtags
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
963 let code =<< trim [CODE]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
964 int first() {}
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
965 int first() {}
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
966 int first() {}
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
967 [CODE]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
968 call writefile(code, 'Xfoo')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
969
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
970 enew | only
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
971 ptag first
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
972 ptlast
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
973 wincmd P
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
974 call assert_equal(3, line('.'))
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
975 wincmd w
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
976 call assert_fails('ptnext', 'E428:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
977 ptprev
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
978 wincmd P
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
979 call assert_equal(2, line('.'))
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
980 wincmd w
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
981 ptfirst
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
982 wincmd P
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
983 call assert_equal(1, line('.'))
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
984 wincmd w
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
985 call assert_fails('ptprev', 'E425:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
986 ptnext
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
987 wincmd P
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
988 call assert_equal(2, line('.'))
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
989 wincmd w
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
990 ptlast
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
991 call feedkeys("5\<CR>", 't')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
992 ptselect first
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
993 wincmd P
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
994 call assert_equal(3, line('.'))
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
995
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
996 pclose
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
997
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
998 call delete('Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
999 call delete('Xfoo')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1000 set tags&
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1001 %bwipe
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1002 endfunc
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1003
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1004 " 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
1005 func Test_tnext_multimatch()
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1006 call writefile([
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1007 \ "!_TAG_FILE_ENCODING\tutf-8\t//",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1008 \ "first\tXfoo1\t1",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1009 \ "first\tXfoo2\t1",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1010 \ "first\tXfoo3\t1"],
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1011 \ 'Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1012 set tags=Xtags
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1013 let code =<< trim [CODE]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1014 int first() {}
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1015 [CODE]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1016 call writefile(code, 'Xfoo1')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1017 call writefile(code, 'Xfoo2')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1018 call writefile(code, 'Xfoo3')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1019
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1020 tag first
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1021 tag first
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1022 pop
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1023 tnext
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1024 tnext
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1025 call assert_fails('tnext', 'E428:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1026
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1027 call delete('Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1028 call delete('Xfoo1')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1029 call delete('Xfoo2')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1030 call delete('Xfoo3')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1031 set tags&
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1032 %bwipe
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1033 endfunc
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1034
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1035 " 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
1036 func Test_multimatch_non_existing_files()
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1037 call writefile([
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1038 \ "!_TAG_FILE_ENCODING\tutf-8\t//",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1039 \ "first\tXfoo1\t1",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1040 \ "first\tXfoo2\t1",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1041 \ "first\tXfoo3\t1"],
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1042 \ 'Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1043 set tags=Xtags
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1044
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1045 call settagstack(1, {'items' : []})
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1046 call assert_fails('tag first', 'E429:')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1047 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
1048
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1049 call delete('Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1050 set tags&
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1051 %bwipe
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1052 endfunc
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1053
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1054 func Test_tselect_listing()
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1055 call writefile([
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1056 \ "!_TAG_FILE_ENCODING\tutf-8\t//",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1057 \ "first\tXfoo\t1" .. ';"' .. "\tv\ttyperef:typename:int\tfile:",
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1058 \ "first\tXfoo\t2" .. ';"' .. "\tv\ttyperef:typename:char\tfile:"],
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1059 \ 'Xtags')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1060 set tags=Xtags
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1061
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1062 let code =<< trim [CODE]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1063 static int first;
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1064 static char first;
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1065 [CODE]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1066 call writefile(code, 'Xfoo')
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1067
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1068 call feedkeys("\<CR>", "t")
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1069 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
1070 let expected =<< [DATA]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1071 # pri kind tag file
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1072 1 FS v first Xfoo
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1073 typeref:typename:int
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1074 1
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1075 2 FS v first Xfoo
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1076 typeref:typename:char
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1077 2
20796
8b775cd23555 patch 8.2.0950: tagjump test fails
Bram Moolenaar <Bram@vim.org>
parents: 20120
diff changeset
1078 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
1079 [DATA]
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1080 call assert_equal(expected, l)
fdc8deab9b4c patch 8.2.0092: tags functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19055
diff changeset
1081
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
1082 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
1083 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
1084 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
1085 %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
1086 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
1087
19425
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1088 " 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
1089 " 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
1090 func Test_inc_search()
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1091 new
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1092 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
1093 call cursor(3, 1)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1094
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1095 " 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
1096 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
1097 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
1098 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
1099 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
1100 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
1101 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
1102
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1103 " Test for :isearch
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1104 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
1105 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
1106 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
1107 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
1108 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
1109 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
1110 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
1111
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1112 " 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
1113 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1114 \ ' 1: 1 1:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1115 \ ' 2: 2 2:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1116 \ ' 3: 3 foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1117 \ ' 4: 4 3:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1118 \ ' 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
1119 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1120 \ ' 1: 4 3:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1121 \ ' 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
1122
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1123 " Test for :ilist
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1124 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1125 \ ' 1: 1 1:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1126 \ ' 2: 2 2:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1127 \ ' 3: 3 foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1128 \ ' 4: 4 3:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1129 \ ' 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
1130 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1131 \ ' 1: 4 3:foo',
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1132 \ ' 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
1133 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
1134
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1135 " 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
1136 exe "normal [\t"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1137 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
1138 exe "normal 2j4[\t"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1139 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
1140 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
1141 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
1142 exe "normal ]\t"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1143 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
1144 exe "normal k2]\t"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1145 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
1146 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
1147
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1148 " Test for :ijump
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1149 call cursor(3, 1)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1150 ijump foo
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1151 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
1152 call cursor(3, 1)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1153 ijump 4 /foo/
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1154 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
1155 call cursor(3, 1)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1156 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
1157 +,$ijump 2 foo
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1158 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
1159 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
1160
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1161 " 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
1162 call cursor(3, 1)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1163 wincmd i
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1164 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
1165 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1166 5wincmd i
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1167 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
1168 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1169 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
1170 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
1171
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1172 " Test for :isplit
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1173 isplit foo
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1174 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
1175 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1176 isplit 5 /foo/
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1177 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
1178 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1179 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
1180 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
1181 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
1182
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1183 close!
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1184 endfunc
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1185
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1186 " 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
1187 " 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
1188 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
1189 new
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1190 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
1191 \ '#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
1192 call cursor(3, 9)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1193
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1194 " 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
1195 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
1196 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
1197 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
1198 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
1199 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
1200 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
1201
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1202 " Test for :dsearch
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1203 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
1204 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
1205 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
1206 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
1207 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
1208 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
1209
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1210 " 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
1211 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1212 \ ' 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
1213 \ ' 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
1214 \ ' 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
1215 \ ' 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
1216 \ ' 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
1217 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1218 \ ' 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
1219 \ ' 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
1220
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1221 " Test for :dlist
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1222 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1223 \ ' 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
1224 \ ' 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
1225 \ ' 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
1226 \ ' 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
1227 \ ' 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
1228 call assert_equal([
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1229 \ ' 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
1230 \ ' 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
1231 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
1232
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1233 " 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
1234 exe "normal [\<C-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([1, 9], [line('.'), col('.')])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1236 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
1237 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
1238 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
1239 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
1240 exe "normal ]\<C-D>"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1241 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
1242 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
1243 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
1244 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
1245
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1246 " Test for :djump
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1247 call cursor(3, 9)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1248 djump FOO
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1249 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
1250 call cursor(3, 9)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1251 djump 4 /FOO/
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1252 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
1253 call cursor(3, 9)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1254 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
1255 +,$djump 2 FOO
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1256 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
1257 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
1258
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1259 " 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
1260 call cursor(3, 9)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1261 wincmd d
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1262 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
1263 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1264 5wincmd d
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1265 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
1266 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1267 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
1268 call assert_fails('6wincmd d', 'E388:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1269
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1270 " Test for :dsplit
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1271 dsplit FOO
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1272 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
1273 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1274 dsplit 5 /FOO/
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1275 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
1276 close
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1277 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
1278 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
1279 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
1280
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1281 close!
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1282 endfunc
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19063
diff changeset
1283
19625
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1284 " Test for [*, [/, ]* and ]/
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1285 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
1286 new
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1287 call setline(1, ['', '/*', ' *', ' *', ' */'])
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1288 normal! 4gg[/
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1289 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
1290 normal! 3gg[*
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1291 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
1292 normal! 3gg]/
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1293 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
1294 normal! 3gg]*
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1295 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
1296 %d
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1297 call setline(1, ['', '/*', ' *', ' *'])
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1298 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
1299 %d
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1300 call setline(1, ['', ' *', ' *', ' */'])
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1301 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
1302 %d
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1303 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
1304 normal! 15|[/
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1305 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
1306 normal! 15|]/
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1307 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
1308 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
1309 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
1310 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
1311 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
1312 close!
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1313 endfunc
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
1314
20893
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1315 " 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
1316 func Test_tag_length()
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1317 set tags=Xtags
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1318 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
1319 \ "tame\tXfile1\t1;",
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1320 \ "tape\tXfile2\t1;"], 'Xtags')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1321 call writefile(['tame'], 'Xfile1')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1322 call writefile(['tape'], 'Xfile2')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1323
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1324 " 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
1325 new
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1326 set taglength=2
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1327 tag tape
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1328 call assert_equal('Xfile1', @%)
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1329 " 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
1330 enew
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1331 tag /^tape$
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1332 call assert_equal('Xfile2', @%)
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1333
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1334 call delete('Xtags')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1335 call delete('Xfile1')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1336 call delete('Xfile2')
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1337 set tags& taglength&
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1338 endfunc
c78689fa0633 patch 8.2.0998: not all tag code is tested
Bram Moolenaar <Bram@vim.org>
parents: 20796
diff changeset
1339
9909
3ee84d270ea7 commit https://github.com/vim/vim/commit/9e4d8215d386100ab660d7d11e6620fd148b605e
Christian Brabandt <cb@256bit.org>
parents: 9228
diff changeset
1340 " vim: shiftwidth=2 sts=2 expandtab