Mercurial > vim
annotate src/testdir/test_filter_cmd.vim @ 19245:5ed8297121fa v8.2.0181
patch 8.2.0181: problems parsing :term arguments
Commit: https://github.com/vim/vim/commit/21109272f5b0d32c408dc292561c0b1f2f8ebc53
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jan 30 16:27:20 2020 +0100
patch 8.2.0181: problems parsing :term arguments
Problem: Problems parsing :term arguments.
Solution: Improve parsing, fix memory leak, add tests. (Ozaki Kiichi,
closes #5536)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 30 Jan 2020 16:30:04 +0100 |
parents | 068337e86133 |
children | cb73f4ae6b7c |
rev | line source |
---|---|
9941
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " Test the :filter command modifier |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
18767
068337e86133
patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents:
18454
diff
changeset
|
3 source check.vim |
068337e86133
patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents:
18454
diff
changeset
|
4 |
9941
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 func Test_filter() |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 edit Xdoesnotmatch |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 edit Xwillmatch |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 call assert_equal('"Xwillmatch"', substitute(execute('filter willma ls'), '[^"]*\(".*"\)[^"]*', '\1', '')) |
9980
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
9 bwipe Xdoesnotmatch |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
10 bwipe Xwillmatch |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
11 |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
12 new |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
13 call setline(1, ['foo1', 'foo2', 'foo3', 'foo4', 'foo5']) |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
14 call assert_equal("\nfoo2\nfoo4", execute('filter /foo[24]/ 1,$print')) |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
15 call assert_equal("\n 2 foo2\n 4 foo4", execute('filter /foo[24]/ 1,$number')) |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
16 call assert_equal("\nfoo2$\nfoo4$", execute('filter /foo[24]/ 1,$list')) |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
17 |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
18 call assert_equal("\nfoo1$\nfoo3$\nfoo5$", execute('filter! /foo[24]/ 1,$list')) |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
19 bwipe! |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
20 |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
21 command XTryThis echo 'this' |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
22 command XTryThat echo 'that' |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
23 command XDoThat echo 'that' |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
24 let lines = split(execute('filter XTry command'), "\n") |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
25 call assert_equal(3, len(lines)) |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
26 call assert_match("XTryThat", lines[1]) |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
27 call assert_match("XTryThis", lines[2]) |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
28 delcommand XTryThis |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
29 delcommand XTryThat |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
30 delcommand XDoThat |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
31 |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
32 map f1 the first key |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
33 map f2 the second key |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
34 map f3 not a key |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
35 let lines = split(execute('filter the map f'), "\n") |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
36 call assert_equal(2, len(lines)) |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
37 call assert_match("f2", lines[0]) |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
38 call assert_match("f1", lines[1]) |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
39 unmap f1 |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
40 unmap f2 |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
41 unmap f3 |
9941
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
42 endfunc |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 func Test_filter_fails() |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
45 call assert_fails('filter', 'E471:') |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
46 call assert_fails('filter pat', 'E476:') |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
47 call assert_fails('filter /pat', 'E476:') |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
48 call assert_fails('filter /pat/', 'E476:') |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
49 call assert_fails('filter /pat/ asdf', 'E492:') |
9980
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
50 |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
51 call assert_fails('filter!', 'E471:') |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
52 call assert_fails('filter! pat', 'E476:') |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
53 call assert_fails('filter! /pat', 'E476:') |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
54 call assert_fails('filter! /pat/', 'E476:') |
b222552cf0c4
commit https://github.com/vim/vim/commit/d29459baa61819e59961804ed258efac5733ec70
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
55 call assert_fails('filter! /pat/ asdf', 'E492:') |
9941
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
56 endfunc |
10520
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
57 |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
58 function s:complete_filter_cmd(filtcmd) |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
59 let keystroke = "\<TAB>\<C-R>=execute('let cmdline = getcmdline()')\<CR>\<C-C>" |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
60 let cmdline = '' |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
61 call feedkeys(':' . a:filtcmd . keystroke, 'ntx') |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
62 return cmdline |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
63 endfunction |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
64 |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
65 func Test_filter_cmd_completion() |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
66 " Do not complete pattern |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
67 call assert_equal("filter \t", s:complete_filter_cmd('filter ')) |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
68 call assert_equal("filter pat\t", s:complete_filter_cmd('filter pat')) |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
69 call assert_equal("filter /pat\t", s:complete_filter_cmd('filter /pat')) |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
70 call assert_equal("filter /pat/\t", s:complete_filter_cmd('filter /pat/')) |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
71 |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
72 " Complete after string pattern |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
73 call assert_equal('filter pat print', s:complete_filter_cmd('filter pat pri')) |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
74 |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
75 " Complete after regexp pattern |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
76 call assert_equal('filter /pat/ print', s:complete_filter_cmd('filter /pat/ pri')) |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
77 call assert_equal('filter #pat# print', s:complete_filter_cmd('filter #pat# pri')) |
4b152b5f414f
commit https://github.com/vim/vim/commit/7069bf18e1b1b7bc7640335e07d1022b5acc9048
Christian Brabandt <cb@256bit.org>
parents:
9980
diff
changeset
|
78 endfunc |
14913
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
79 |
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
80 func Test_filter_cmd_with_filter() |
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
81 new |
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
82 set shelltemp |
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
83 %!echo "a|b" |
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
84 let out = getline(1) |
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
85 bw! |
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
86 if has('win32') |
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
87 let out = trim(out, '" ') |
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
88 endif |
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
89 call assert_equal('a|b', out) |
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
90 set shelltemp& |
d4777be849d0
patch 8.1.0468: MS-Windows: filter command with pipe character fails
Bram Moolenaar <Bram@vim.org>
parents:
10520
diff
changeset
|
91 endfunction |
14968
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
92 |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
93 func Test_filter_commands() |
18767
068337e86133
patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents:
18454
diff
changeset
|
94 CheckFeature quickfix |
068337e86133
patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents:
18454
diff
changeset
|
95 |
14968
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
96 let g:test_filter_a = 1 |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
97 let b:test_filter_b = 2 |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
98 let test_filter_c = 3 |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
99 |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
100 " Test filtering :let command |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
101 let res = split(execute("filter /^test_filter/ let"), "\n") |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
102 call assert_equal(["test_filter_a #1"], res) |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
103 |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
104 let res = split(execute("filter /\\v^(b:)?test_filter/ let"), "\n") |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
105 call assert_equal(["test_filter_a #1", "b:test_filter_b #2"], res) |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
106 |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
107 unlet g:test_filter_a |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
108 unlet b:test_filter_b |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
109 unlet test_filter_c |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
110 |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
111 " Test filtering :set command |
14987
5b06b642fbee
patch 8.1.0505: filter command test may fail if helplang is not set
Bram Moolenaar <Bram@vim.org>
parents:
14968
diff
changeset
|
112 let helplang=&helplang |
5b06b642fbee
patch 8.1.0505: filter command test may fail if helplang is not set
Bram Moolenaar <Bram@vim.org>
parents:
14968
diff
changeset
|
113 set helplang=en |
14968
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
114 let res = join(split(execute("filter /^help/ set"), "\n")[1:], " ") |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
115 call assert_match('^\s*helplang=\w*$', res) |
14987
5b06b642fbee
patch 8.1.0505: filter command test may fail if helplang is not set
Bram Moolenaar <Bram@vim.org>
parents:
14968
diff
changeset
|
116 let &helplang=helplang |
14968
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
117 |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
118 " Test filtering :llist command |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
119 call setloclist(0, [{"filename": "/path/vim.c"}, {"filename": "/path/vim.h"}, {"module": "Main.Test"}]) |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
120 let res = split(execute("filter /\\.c$/ llist"), "\n") |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
121 call assert_equal([" 1 /path/vim.c: "], res) |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
122 |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
123 let res = split(execute("filter /\\.Test$/ llist"), "\n") |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
124 call assert_equal([" 3 Main.Test: "], res) |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
125 |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
126 " Test filtering :jump command |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
127 e file.c |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
128 e file.h |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
129 e file.hs |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
130 let res = split(execute("filter /\.c$/ jumps"), "\n")[1:] |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
131 call assert_equal([" 2 1 0 file.c", ">"], res) |
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
132 |
16433
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
133 " Test filtering :marks command |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
134 b file.c |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
135 mark A |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
136 b file.h |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
137 mark B |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
138 let res = split(execute("filter /\.c$/ marks"), "\n")[1:] |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
139 call assert_equal([" A 1 0 file.c"], res) |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
140 |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
141 call setline(1, ['one', 'two', 'three']) |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
142 1mark a |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
143 2mark b |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
144 3mark c |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
145 let res = split(execute("filter /two/ marks abc"), "\n")[1:] |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
146 call assert_equal([" b 2 0 two"], res) |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
147 |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
148 bwipe! file.c |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
149 bwipe! file.h |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
14987
diff
changeset
|
150 bwipe! file.hs |
14968
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14913
diff
changeset
|
151 endfunc |
18454
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
152 |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
153 func Test_filter_display() |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
154 edit Xdoesnotmatch |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
155 let @a = '!!willmatch' |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
156 let @b = '!!doesnotmatch' |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
157 let @c = "oneline\ntwoline\nwillmatch\n" |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
158 let @/ = '!!doesnotmatch' |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
159 call feedkeys(":echo '!!doesnotmatch:'\<CR>", 'ntx') |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
160 let lines = map(split(execute('filter /willmatch/ display'), "\n"), 'v:val[5:6]') |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
161 |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
162 call assert_true(index(lines, '"a') >= 0) |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
163 call assert_false(index(lines, '"b') >= 0) |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
164 call assert_true(index(lines, '"c') >= 0) |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
165 call assert_false(index(lines, '"/') >= 0) |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
166 call assert_false(index(lines, '":') >= 0) |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
167 call assert_false(index(lines, '"%') >= 0) |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
168 |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
169 let lines = map(split(execute('filter /doesnotmatch/ display'), "\n"), 'v:val[5:6]') |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
170 call assert_true(index(lines, '"a') < 0) |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
171 call assert_false(index(lines, '"b') < 0) |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
172 call assert_true(index(lines, '"c') < 0) |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
173 call assert_false(index(lines, '"/') < 0) |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
174 call assert_false(index(lines, '":') < 0) |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
175 call assert_false(index(lines, '"%') < 0) |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
176 |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
177 bwipe! |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
178 endfunc |