Mercurial > vim
annotate src/testdir/test_taglist.vim @ 32417:3c2c1cb61004 v9.0.1540
patch 9.0.1540: reverse() on string doesn't work in compiled function
Commit: https://github.com/vim/vim/commit/f9dc278946d52235a0025fd347bd9ff571258470
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Thu May 11 15:02:56 2023 +0100
patch 9.0.1540: reverse() on string doesn't work in compiled function
Problem: reverse() on string doesn't work in compiled function.
Solution: Accept string in argument type check. (Yegappan Lakshmanan,
closes #12377)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 11 May 2023 16:15:08 +0200 |
parents | c8ebe35b2475 |
children | 4ab37aa5cbcf |
rev | line source |
---|---|
14232
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
1 " test taglist(), tagfiles() functions and :tags command |
11225
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
3 source check.vim |
19679
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
4 source view_util.vim |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
5 |
11225
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 func Test_taglist() |
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 call writefile([ |
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 \ "FFoo\tXfoo\t1", |
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 \ "FBar\tXfoo\t2", |
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 \ "BFoo\tXbar\t1", |
15808
37d31fc37a5a
patch 8.1.0911: tag line with Ex command cannot have extra fields
Bram Moolenaar <Bram@vim.org>
parents:
14232
diff
changeset
|
11 \ "BBar\tXbar\t2", |
37d31fc37a5a
patch 8.1.0911: tag line with Ex command cannot have extra fields
Bram Moolenaar <Bram@vim.org>
parents:
14232
diff
changeset
|
12 \ "Kindly\tXbar\t3;\"\tv\tfile:", |
19617
5ce724c60c4c
patch 8.2.0365: tag kind can't be a multi-byte character
Bram Moolenaar <Bram@vim.org>
parents:
19055
diff
changeset
|
13 \ "Lambda\tXbar\t3;\"\tλ\tfile:", |
15808
37d31fc37a5a
patch 8.1.0911: tag line with Ex command cannot have extra fields
Bram Moolenaar <Bram@vim.org>
parents:
14232
diff
changeset
|
14 \ "Command\tXbar\tcall cursor(3, 4)|;\"\td", |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
15 \ ], 'Xtags', 'D') |
11225
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 set tags=Xtags |
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 split Xtext |
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 |
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 call assert_equal(['FFoo', 'BFoo'], map(taglist("Foo"), {i, v -> v.name})) |
18031
8a2fb21c23c0
patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17093
diff
changeset
|
20 call assert_equal(['FFoo', 'BFoo'], map("Foo"->taglist("Xtext"), {i, v -> v.name})) |
11225
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 call assert_equal(['FFoo', 'BFoo'], map(taglist("Foo", "Xfoo"), {i, v -> v.name})) |
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 call assert_equal(['BFoo', 'FFoo'], map(taglist("Foo", "Xbar"), {i, v -> v.name})) |
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 |
19617
5ce724c60c4c
patch 8.2.0365: tag kind can't be a multi-byte character
Bram Moolenaar <Bram@vim.org>
parents:
19055
diff
changeset
|
24 let kindly = taglist("Kindly") |
5ce724c60c4c
patch 8.2.0365: tag kind can't be a multi-byte character
Bram Moolenaar <Bram@vim.org>
parents:
19055
diff
changeset
|
25 call assert_equal(1, len(kindly)) |
5ce724c60c4c
patch 8.2.0365: tag kind can't be a multi-byte character
Bram Moolenaar <Bram@vim.org>
parents:
19055
diff
changeset
|
26 call assert_equal('v', kindly[0]['kind']) |
5ce724c60c4c
patch 8.2.0365: tag kind can't be a multi-byte character
Bram Moolenaar <Bram@vim.org>
parents:
19055
diff
changeset
|
27 call assert_equal('3', kindly[0]['cmd']) |
5ce724c60c4c
patch 8.2.0365: tag kind can't be a multi-byte character
Bram Moolenaar <Bram@vim.org>
parents:
19055
diff
changeset
|
28 call assert_equal(1, kindly[0]['static']) |
5ce724c60c4c
patch 8.2.0365: tag kind can't be a multi-byte character
Bram Moolenaar <Bram@vim.org>
parents:
19055
diff
changeset
|
29 call assert_equal('Xbar', kindly[0]['filename']) |
5ce724c60c4c
patch 8.2.0365: tag kind can't be a multi-byte character
Bram Moolenaar <Bram@vim.org>
parents:
19055
diff
changeset
|
30 |
5ce724c60c4c
patch 8.2.0365: tag kind can't be a multi-byte character
Bram Moolenaar <Bram@vim.org>
parents:
19055
diff
changeset
|
31 let lambda = taglist("Lambda") |
5ce724c60c4c
patch 8.2.0365: tag kind can't be a multi-byte character
Bram Moolenaar <Bram@vim.org>
parents:
19055
diff
changeset
|
32 call assert_equal(1, len(lambda)) |
5ce724c60c4c
patch 8.2.0365: tag kind can't be a multi-byte character
Bram Moolenaar <Bram@vim.org>
parents:
19055
diff
changeset
|
33 call assert_equal('λ', lambda[0]['kind']) |
15808
37d31fc37a5a
patch 8.1.0911: tag line with Ex command cannot have extra fields
Bram Moolenaar <Bram@vim.org>
parents:
14232
diff
changeset
|
34 |
37d31fc37a5a
patch 8.1.0911: tag line with Ex command cannot have extra fields
Bram Moolenaar <Bram@vim.org>
parents:
14232
diff
changeset
|
35 let cmd = taglist("Command") |
37d31fc37a5a
patch 8.1.0911: tag line with Ex command cannot have extra fields
Bram Moolenaar <Bram@vim.org>
parents:
14232
diff
changeset
|
36 call assert_equal(1, len(cmd)) |
37d31fc37a5a
patch 8.1.0911: tag line with Ex command cannot have extra fields
Bram Moolenaar <Bram@vim.org>
parents:
14232
diff
changeset
|
37 call assert_equal('d', cmd[0]['kind']) |
37d31fc37a5a
patch 8.1.0911: tag line with Ex command cannot have extra fields
Bram Moolenaar <Bram@vim.org>
parents:
14232
diff
changeset
|
38 call assert_equal('call cursor(3, 4)', cmd[0]['cmd']) |
37d31fc37a5a
patch 8.1.0911: tag line with Ex command cannot have extra fields
Bram Moolenaar <Bram@vim.org>
parents:
14232
diff
changeset
|
39 |
27986
c724906134a3
patch 8.2.4518: the binary tag search feature is always enabled
Bram Moolenaar <Bram@vim.org>
parents:
26492
diff
changeset
|
40 " Use characters with value > 127 in the tag extra field. |
c724906134a3
patch 8.2.4518: the binary tag search feature is always enabled
Bram Moolenaar <Bram@vim.org>
parents:
26492
diff
changeset
|
41 call writefile([ |
c724906134a3
patch 8.2.4518: the binary tag search feature is always enabled
Bram Moolenaar <Bram@vim.org>
parents:
26492
diff
changeset
|
42 \ "vFoo\tXfoo\t4" .. ';"' .. "\ttypename:int\ta£££\tv", |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
43 \ ], 'Xtags', 'D') |
27986
c724906134a3
patch 8.2.4518: the binary tag search feature is always enabled
Bram Moolenaar <Bram@vim.org>
parents:
26492
diff
changeset
|
44 call assert_equal('v', taglist('vFoo')[0].kind) |
c724906134a3
patch 8.2.4518: the binary tag search feature is always enabled
Bram Moolenaar <Bram@vim.org>
parents:
26492
diff
changeset
|
45 |
19783
546bdeef35f1
patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents:
19679
diff
changeset
|
46 call assert_fails("let l=taglist([])", 'E730:') |
546bdeef35f1
patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents:
19679
diff
changeset
|
47 |
17093
5cda6165a5c1
patch 8.1.1546: in some tests 'tags' is set but not restored
Bram Moolenaar <Bram@vim.org>
parents:
16190
diff
changeset
|
48 set tags& |
11225
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
49 bwipe |
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
50 endfunc |
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
51 |
11329
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
52 func Test_taglist_native_etags() |
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
53 CheckFeature emacs_tags |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
54 |
11329
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
55 call writefile([ |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
56 \ "\x0c", |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
57 \ "src/os_unix.c,13491", |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
58 \ "set_signals(\x7f1335,32699", |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
59 \ "reset_signals(\x7f1407,34136", |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
60 \ ], 'Xtags', 'D') |
11329
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
61 |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
62 set tags=Xtags |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
63 |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
64 call assert_equal([['set_signals', '1335,32699'], ['reset_signals', '1407,34136']], |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
65 \ map(taglist('set_signals'), {i, v -> [v.name, v.cmd]})) |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
66 |
17093
5cda6165a5c1
patch 8.1.1546: in some tests 'tags' is set but not restored
Bram Moolenaar <Bram@vim.org>
parents:
16190
diff
changeset
|
67 set tags& |
11329
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
68 endfunc |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
69 |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
70 func Test_taglist_ctags_etags() |
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
71 CheckFeature emacs_tags |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
72 |
11329
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
73 call writefile([ |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
74 \ "\x0c", |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
75 \ "src/os_unix.c,13491", |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
76 \ "set_signals(void)\x7fset_signals\x011335,32699", |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
77 \ "reset_signals(void)\x7freset_signals\x011407,34136", |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
78 \ ], 'Xtags', 'D') |
11329
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
79 |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
80 set tags=Xtags |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
81 |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
82 call assert_equal([['set_signals', '1335,32699'], ['reset_signals', '1407,34136']], |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
83 \ map(taglist('set_signals'), {i, v -> [v.name, v.cmd]})) |
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
84 |
17093
5cda6165a5c1
patch 8.1.1546: in some tests 'tags' is set but not restored
Bram Moolenaar <Bram@vim.org>
parents:
16190
diff
changeset
|
85 set tags& |
11329
c7ba89661c39
patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
86 endfunc |
13068
63fdea6e9c6c
patch 8.0.1409: buffer overflow in :tags command
Christian Brabandt <cb@256bit.org>
parents:
11329
diff
changeset
|
87 |
63fdea6e9c6c
patch 8.0.1409: buffer overflow in :tags command
Christian Brabandt <cb@256bit.org>
parents:
11329
diff
changeset
|
88 func Test_tags_too_long() |
22087
ff21e2962490
patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
89 call assert_fails('tag ' . repeat('x', 1020), ['E433:', 'E426:']) |
13068
63fdea6e9c6c
patch 8.0.1409: buffer overflow in :tags command
Christian Brabandt <cb@256bit.org>
parents:
11329
diff
changeset
|
90 tags |
63fdea6e9c6c
patch 8.0.1409: buffer overflow in :tags command
Christian Brabandt <cb@256bit.org>
parents:
11329
diff
changeset
|
91 endfunc |
14232
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
92 |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
93 func Test_tagfiles() |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
94 call assert_equal([], tagfiles()) |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
95 |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
96 call writefile(["FFoo\tXfoo\t1"], 'Xtags1', 'D') |
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
97 call writefile(["FBar\tXbar\t1"], 'Xtags2', 'D') |
14232
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
98 set tags=Xtags1,Xtags2 |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
99 call assert_equal(['Xtags1', 'Xtags2'], tagfiles()) |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
100 |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
101 help |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
102 let tf = tagfiles() |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
103 call assert_equal(1, len(tf)) |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
104 call assert_equal(fnamemodify(expand('$VIMRUNTIME/doc/tags'), ':p:gs?\\?/?'), |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
105 \ fnamemodify(tf[0], ':p:gs?\\?/?')) |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
106 helpclose |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
107 call assert_equal(['Xtags1', 'Xtags2'], tagfiles()) |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
108 set tags& |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
109 call assert_equal([], tagfiles()) |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
110 |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
111 bd |
4afe2386aae8
patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13068
diff
changeset
|
112 endfunc |
16190
d863beec391a
patch 8.1.1100: tag file without trailing newline no longer works
Bram Moolenaar <Bram@vim.org>
parents:
15808
diff
changeset
|
113 |
d863beec391a
patch 8.1.1100: tag file without trailing newline no longer works
Bram Moolenaar <Bram@vim.org>
parents:
15808
diff
changeset
|
114 " For historical reasons we support a tags file where the last line is missing |
d863beec391a
patch 8.1.1100: tag file without trailing newline no longer works
Bram Moolenaar <Bram@vim.org>
parents:
15808
diff
changeset
|
115 " the newline. |
d863beec391a
patch 8.1.1100: tag file without trailing newline no longer works
Bram Moolenaar <Bram@vim.org>
parents:
15808
diff
changeset
|
116 func Test_tagsfile_without_trailing_newline() |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
117 call writefile(["Foo\tfoo\t1"], 'Xtags', 'bD') |
16190
d863beec391a
patch 8.1.1100: tag file without trailing newline no longer works
Bram Moolenaar <Bram@vim.org>
parents:
15808
diff
changeset
|
118 set tags=Xtags |
d863beec391a
patch 8.1.1100: tag file without trailing newline no longer works
Bram Moolenaar <Bram@vim.org>
parents:
15808
diff
changeset
|
119 |
d863beec391a
patch 8.1.1100: tag file without trailing newline no longer works
Bram Moolenaar <Bram@vim.org>
parents:
15808
diff
changeset
|
120 let tl = taglist('.*') |
d863beec391a
patch 8.1.1100: tag file without trailing newline no longer works
Bram Moolenaar <Bram@vim.org>
parents:
15808
diff
changeset
|
121 call assert_equal(1, len(tl)) |
d863beec391a
patch 8.1.1100: tag file without trailing newline no longer works
Bram Moolenaar <Bram@vim.org>
parents:
15808
diff
changeset
|
122 call assert_equal('Foo', tl[0].name) |
d863beec391a
patch 8.1.1100: tag file without trailing newline no longer works
Bram Moolenaar <Bram@vim.org>
parents:
15808
diff
changeset
|
123 |
17093
5cda6165a5c1
patch 8.1.1546: in some tests 'tags' is set but not restored
Bram Moolenaar <Bram@vim.org>
parents:
16190
diff
changeset
|
124 set tags& |
16190
d863beec391a
patch 8.1.1100: tag file without trailing newline no longer works
Bram Moolenaar <Bram@vim.org>
parents:
15808
diff
changeset
|
125 endfunc |
19055
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
126 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
127 " Test for ignoring comments in a tags file |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
128 func Test_tagfile_ignore_comments() |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
129 call writefile([ |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
130 \ "!_TAG_PROGRAM_NAME /Test tags generator/", |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
131 \ "FBar\tXfoo\t2" .. ';"' .. "\textrafield\tf", |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
132 \ "!_TAG_FILE_FORMAT 2 /extended format/", |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
133 \ ], 'Xtags', 'D') |
19055
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
134 set tags=Xtags |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
135 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
136 let l = taglist('.*') |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
137 call assert_equal(1, len(l)) |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
138 call assert_equal('FBar', l[0].name) |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
139 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
140 set tags& |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
141 endfunc |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
142 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
143 " Test for using an excmd in a tags file to position the cursor (instead of a |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
144 " search pattern or a line number) |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
145 func Test_tagfile_excmd() |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
146 call writefile([ |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
147 \ "vFoo\tXfoo\tcall cursor(3, 4)" .. '|;"' .. "\tv", |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
148 \ ], 'Xtags', 'D') |
19055
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
149 set tags=Xtags |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
150 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
151 let l = taglist('.*') |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
152 call assert_equal([{ |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
153 \ 'cmd' : 'call cursor(3, 4)', |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
154 \ 'static' : 0, |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
155 \ 'name' : 'vFoo', |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
156 \ 'kind' : 'v', |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
157 \ 'filename' : 'Xfoo'}], l) |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
158 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
159 set tags& |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
160 endfunc |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
161 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
162 " Test for duplicate fields in a tag in a tags file |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
163 func Test_duplicate_field() |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
164 call writefile([ |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
165 \ "vFoo\tXfoo\t4" .. ';"' .. "\ttypename:int\ttypename:int\tv", |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
166 \ ], 'Xtags', 'D') |
19055
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
167 set tags=Xtags |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
168 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
169 let l = taglist('.*') |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
170 call assert_equal([{ |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
171 \ 'cmd' : '4', |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
172 \ 'static' : 0, |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
173 \ 'name' : 'vFoo', |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
174 \ 'kind' : 'v', |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
175 \ 'typename' : 'int', |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
176 \ 'filename' : 'Xfoo'}], l) |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
177 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
178 set tags& |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
179 endfunc |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
180 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
181 " Test for tag address with ; |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
182 func Test_tag_addr_with_semicolon() |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
183 call writefile([ |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
184 \ "Func1\tXfoo\t6;/^Func1/" .. ';"' .. "\tf" |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
185 \ ], 'Xtags', 'D') |
19055
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
186 set tags=Xtags |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
187 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
188 let l = taglist('.*') |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
189 call assert_equal([{ |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
190 \ 'cmd' : '6;/^Func1/', |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
191 \ 'static' : 0, |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
192 \ 'name' : 'Func1', |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
193 \ 'kind' : 'f', |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
194 \ 'filename' : 'Xfoo'}], l) |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
195 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
196 set tags& |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
197 endfunc |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
198 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
199 " Test for format error in a tags file |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
200 func Test_format_error() |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
201 call writefile(['vFoo-Xfoo-4'], 'Xtags', 'D') |
19055
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
202 set tags=Xtags |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
203 |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
204 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:
18031
diff
changeset
|
205 try |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
206 let l = taglist('.*') |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
207 catch /E431:/ |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
208 " test succeeded |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
209 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:
18031
diff
changeset
|
210 catch |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
211 call assert_report('Caught ' . v:exception . ' in ' . v:throwpoint) |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
212 endtry |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
213 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:
18031
diff
changeset
|
214 |
27986
c724906134a3
patch 8.2.4518: the binary tag search feature is always enabled
Bram Moolenaar <Bram@vim.org>
parents:
26492
diff
changeset
|
215 " no field after the filename for a tag |
c724906134a3
patch 8.2.4518: the binary tag search feature is always enabled
Bram Moolenaar <Bram@vim.org>
parents:
26492
diff
changeset
|
216 call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//", |
c724906134a3
patch 8.2.4518: the binary tag search feature is always enabled
Bram Moolenaar <Bram@vim.org>
parents:
26492
diff
changeset
|
217 \ "foo\tXfile"], 'Xtags') |
c724906134a3
patch 8.2.4518: the binary tag search feature is always enabled
Bram Moolenaar <Bram@vim.org>
parents:
26492
diff
changeset
|
218 call assert_fails("echo taglist('foo')", 'E431:') |
c724906134a3
patch 8.2.4518: the binary tag search feature is always enabled
Bram Moolenaar <Bram@vim.org>
parents:
26492
diff
changeset
|
219 |
19055
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
220 set tags& |
8645b73b3645
patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
221 endfunc |
19679
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
222 |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
223 " Test for :tag command completion with 'wildoptions' set to 'tagfile' |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
224 func Test_tag_complete_wildoptions() |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
225 call writefile(["foo\ta.c\t10;\"\tf", "bar\tb.c\t20;\"\td"], 'Xtags', 'D') |
19679
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
226 set tags=Xtags |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
227 set wildoptions=tagfile |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
228 |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
229 call feedkeys(":tag \<C-D>\<C-R>=Screenline(&lines - 1)\<CR> : " |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
230 \ .. "\<C-R>=Screenline(&lines - 2)\<CR>\<C-B>\"\<CR>", 'xt') |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
231 |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
232 call assert_equal('"tag bar d b.c : foo f a.c', @:) |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
233 |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
234 set wildoptions& |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
235 set tags& |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
236 endfunc |
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
237 |
26492
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
238 func Test_tag_complete_with_overlong_line() |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
239 let tagslines =<< trim END |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
240 !_TAG_FILE_FORMAT 2 // |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
241 !_TAG_FILE_SORTED 1 // |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
242 !_TAG_FILE_ENCODING utf-8 // |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
243 inboundGSV a 1;" r |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
244 inboundGovernor a 2;" kind:⊢ type:forall (muxMode :: MuxMode) socket peerAddr versionNumber m a b. (MonadAsync m, MonadCatch m, MonadEvaluate m, MonadThrow m, MonadThrow (STM m), MonadTime m, MonadTimer m, MonadMask m, Ord peerAddr, HasResponder muxMode ~ True) => Tracer m (RemoteTransitionTrace peerAddr) -> Tracer m (InboundGovernorTrace peerAddr) -> ServerControlChannel muxMode peerAddr ByteString m a b -> DiffTime -> MuxConnectionManager muxMode socket peerAddr versionNumber ByteString m a b -> StrictTVar m InboundGovernorObservableState -> m Void |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
245 inboundGovernorCounters a 3;" kind:⊢ type:InboundGovernorState muxMode peerAddr m a b -> InboundGovernorCounters |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
246 END |
30865
c8ebe35b2475
patch 9.0.0767: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
28057
diff
changeset
|
247 call writefile(tagslines, 'Xtags', 'D') |
26492
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
248 set tags=Xtags |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
249 |
28057
bfa81ded42e2
patch 8.2.4553: linear tag search is a bit slow
Bram Moolenaar <Bram@vim.org>
parents:
27986
diff
changeset
|
250 " try with binary search |
bfa81ded42e2
patch 8.2.4553: linear tag search is a bit slow
Bram Moolenaar <Bram@vim.org>
parents:
27986
diff
changeset
|
251 set tagbsearch |
26492
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
252 call feedkeys(":tag inbou\<C-A>\<C-B>\"\<CR>", 'xt') |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
253 call assert_equal('"tag inboundGSV inboundGovernor inboundGovernorCounters', @:) |
28057
bfa81ded42e2
patch 8.2.4553: linear tag search is a bit slow
Bram Moolenaar <Bram@vim.org>
parents:
27986
diff
changeset
|
254 " try with linear search |
bfa81ded42e2
patch 8.2.4553: linear tag search is a bit slow
Bram Moolenaar <Bram@vim.org>
parents:
27986
diff
changeset
|
255 set notagbsearch |
bfa81ded42e2
patch 8.2.4553: linear tag search is a bit slow
Bram Moolenaar <Bram@vim.org>
parents:
27986
diff
changeset
|
256 call feedkeys(":tag inbou\<C-A>\<C-B>\"\<CR>", 'xt') |
bfa81ded42e2
patch 8.2.4553: linear tag search is a bit slow
Bram Moolenaar <Bram@vim.org>
parents:
27986
diff
changeset
|
257 call assert_equal('"tag inboundGSV inboundGovernor inboundGovernorCounters', @:) |
bfa81ded42e2
patch 8.2.4553: linear tag search is a bit slow
Bram Moolenaar <Bram@vim.org>
parents:
27986
diff
changeset
|
258 set tagbsearch& |
26492
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
259 |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
260 set tags& |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
261 endfunc |
08e3eee541ac
patch 8.2.3776: when a tags file line is long a tag may not be found
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
262 |
19679
9199f34d838e
patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19617
diff
changeset
|
263 " vim: shiftwidth=2 sts=2 expandtab |