annotate src/testdir/test_usercommands.vim @ 13101:9b3f8029a326 v8.0.1425

patch 8.0.1425: execute() does not work in completion of user command commit https://github.com/vim/vim/commit/2095148277cf1c4e7b3bbaf4e34812b7cfe3011b Author: Bram Moolenaar <Bram@vim.org> Date: Mon Dec 25 13:44:43 2017 +0100 patch 8.0.1425: execute() does not work in completion of user command Problem: execute() does not work in completion of user command. (thinca) Solution: Switch off redir_off and restore it. (Ozaki Kiichi, closes https://github.com/vim/vim/issues/2492)
author Christian Brabandt <cb@256bit.org>
date Mon, 25 Dec 2017 13:45:05 +0100
parents 1fad9675d8fd
children 39728d503e47
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for user defined commands
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 " Test for <mods> in user defined commands
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4 function Test_cmdmods()
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 let g:mods = ''
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 command! -nargs=* MyCmd let g:mods .= '<mods> '
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 MyCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 aboveleft MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
11 abo MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 belowright MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
13 bel MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 botright MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
15 bo MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 browse MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
17 bro MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 confirm MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
19 conf MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 hide MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
21 hid MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 keepalt MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
23 keepa MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 keepjumps MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
25 keepj MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 keepmarks MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
27 kee MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28 keeppatterns MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
29 keepp MyCmd
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
30 leftabove MyCmd " results in :aboveleft
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
31 lefta MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 lockmarks MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
33 loc MyCmd
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
34 " noautocmd MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 noswapfile MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
36 nos MyCmd
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
37 rightbelow MyCmd " results in :belowright
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
38 rightb MyCmd
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
39 " sandbox MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
40 silent MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
41 sil MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
42 tab MyCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
43 topleft MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
44 to MyCmd
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
45 " unsilent MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46 verbose MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
47 verb MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
48 vertical MyCmd
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
49 vert MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
50
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
51 aboveleft belowright botright browse confirm hide keepalt keepjumps
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
52 \ keepmarks keeppatterns lockmarks noswapfile silent tab
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
53 \ topleft verbose vertical MyCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
54
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
55 call assert_equal(' aboveleft aboveleft belowright belowright botright ' .
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
56 \ 'botright browse browse confirm confirm hide hide ' .
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
57 \ 'keepalt keepalt keepjumps keepjumps keepmarks keepmarks ' .
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
58 \ 'keeppatterns keeppatterns aboveleft aboveleft lockmarks lockmarks noswapfile ' .
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
59 \ 'noswapfile belowright belowright silent silent tab topleft topleft verbose verbose ' .
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
60 \ 'vertical vertical ' .
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
61 \ 'aboveleft belowright botright browse confirm hide keepalt keepjumps ' .
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 \ 'keepmarks keeppatterns lockmarks noswapfile silent tab topleft ' .
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
63 \ 'verbose vertical ', g:mods)
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
64
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
65 let g:mods = ''
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
66 command! -nargs=* MyQCmd let g:mods .= '<q-mods> '
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
67
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
68 vertical MyQCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
69 call assert_equal('"vertical" ', g:mods)
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
70
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
71 delcommand MyCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
72 delcommand MyQCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
73 unlet g:mods
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
74 endfunction
9667
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
75
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
76 func Test_Ambiguous()
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
77 command Doit let g:didit = 'yes'
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
78 command Dothat let g:didthat = 'also'
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
79 call assert_fails('Do', 'E464:')
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
80 Doit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
81 call assert_equal('yes', g:didit)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
82 Dothat
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
83 call assert_equal('also', g:didthat)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
84 unlet g:didit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
85 unlet g:didthat
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
86
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
87 delcommand Doit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
88 Do
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
89 call assert_equal('also', g:didthat)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
90 delcommand Dothat
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
91 endfunc
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
92
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
93 func Test_CmdUndefined()
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
94 call assert_fails('Doit', 'E492:')
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
95 au CmdUndefined Doit :command Doit let g:didit = 'yes'
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
96 Doit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
97 call assert_equal('yes', g:didit)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
98 delcommand Doit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
99
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
100 call assert_fails('Dothat', 'E492:')
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
101 au CmdUndefined * let g:didnot = 'yes'
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
102 call assert_fails('Dothat', 'E492:')
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
103 call assert_equal('yes', g:didnot)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
104 endfunc
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
105
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
106 func Test_CmdErrors()
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
107 call assert_fails('com! docmd :', 'E183:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
108 call assert_fails('com! \<Tab> :', 'E182:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
109 call assert_fails('com! _ :', 'E182:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
110 call assert_fails('com! X :', 'E841:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
111 call assert_fails('com! - DoCmd :', 'E175:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
112 call assert_fails('com! -xxx DoCmd :', 'E181:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
113 call assert_fails('com! -addr DoCmd :', 'E179:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
114 call assert_fails('com! -complete DoCmd :', 'E179:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
115 call assert_fails('com! -complete=xxx DoCmd :', 'E180:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
116 call assert_fails('com! -complete=custom DoCmd :', 'E467:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
117 call assert_fails('com! -complete=customlist DoCmd :', 'E467:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
118 call assert_fails('com! -complete=behave,CustomComplete DoCmd :', 'E468:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
119 call assert_fails('com! -nargs=x DoCmd :', 'E176:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
120 call assert_fails('com! -count=1 -count=2 DoCmd :', 'E177:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
121 call assert_fails('com! -count=x DoCmd :', 'E178:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
122 call assert_fails('com! -range=x DoCmd :', 'E178:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
123
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
124 com! -nargs=0 DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
125 call assert_fails('DoCmd x', 'E488:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
126
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
127 com! -nargs=1 DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
128 call assert_fails('DoCmd', 'E471:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
129
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
130 com! -nargs=+ DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
131 call assert_fails('DoCmd', 'E471:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
132
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
133 call assert_fails('com DoCmd :', 'E174:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
134 comclear
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
135 call assert_fails('delcom DoCmd', 'E184:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
136 endfunc
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
137
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
138 func CustomComplete(A, L, P)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
139 return "January\nFebruary\nMars\n"
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
140 endfunc
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
141
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
142 func CustomCompleteList(A, L, P)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
143 return [ "Monday", "Tuesday", "Wednesday" ]
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
144 endfunc
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
145
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
146 func Test_CmdCompletion()
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
147 call feedkeys(":com -\<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
148 call assert_equal('"com -addr bang bar buffer complete count nargs range register', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
149
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
150 call feedkeys(":com -nargs=0 -\<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
151 call assert_equal('"com -nargs=0 -addr bang bar buffer complete count nargs range register', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
152
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
153 call feedkeys(":com -nargs=\<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
154 call assert_equal('"com -nargs=* + 0 1 ?', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
155
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
156 call feedkeys(":com -addr=\<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
157 call assert_equal('"com -addr=arguments buffers lines loaded_buffers quickfix tabs windows', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
158
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
159 call feedkeys(":com -complete=co\<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
160 call assert_equal('"com -complete=color command compiler', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
161
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
162 command! DoCmd1 :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
163 command! DoCmd2 :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
164 call feedkeys(":com \<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
165 call assert_equal('"com DoCmd1 DoCmd2', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
166
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
167 call feedkeys(":DoC\<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
168 call assert_equal('"DoCmd1 DoCmd2', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
169
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
170 call feedkeys(":delcom DoC\<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
171 call assert_equal('"delcom DoCmd1 DoCmd2', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
172
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
173 delcom DoCmd1
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
174 call feedkeys(":delcom DoC\<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
175 call assert_equal('"delcom DoCmd2', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
176
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
177 call feedkeys(":com DoC\<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
178 call assert_equal('"com DoCmd2', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
179
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
180 delcom DoCmd2
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
181 call feedkeys(":delcom DoC\<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
182 call assert_equal('"delcom DoC', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
183
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
184 call feedkeys(":com DoC\<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
185 call assert_equal('"com DoC', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
186
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
187 com! -complete=behave DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
188 call feedkeys(":DoCmd \<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
189 call assert_equal('"DoCmd mswin xterm', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
190
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
191 " This does not work. Why?
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
192 "call feedkeys(":DoCmd x\<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
193 "call assert_equal('"DoCmd xterm', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
194
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
195 com! -complete=custom,CustomComplete DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
196 call feedkeys(":DoCmd \<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
197 call assert_equal('"DoCmd January February Mars', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
198
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
199 com! -complete=customlist,CustomCompleteList DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
200 call feedkeys(":DoCmd \<C-A>\<C-B>\"\<CR>", 'tx')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
201 call assert_equal('"DoCmd Monday Tuesday Wednesday', @:)
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
202
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
203 com! -complete=custom,CustomCompleteList DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
204 call assert_fails("call feedkeys(':DoCmd \<C-D>', 'tx')", 'E730:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
205
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
206 com! -complete=customlist,CustomComp DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
207 call assert_fails("call feedkeys(':DoCmd \<C-D>', 'tx')", 'E117:')
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
208 endfunc
13101
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
209
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
210 func CallExecute(A, L, P)
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
211 " Drop first '\n'
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
212 return execute('echo "hi"')[1:]
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
213 endfunc
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
214
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
215 func Test_use_execute_in_completion()
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
216 command! -nargs=* -complete=custom,CallExecute DoExec :
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
217 call feedkeys(":DoExec \<C-A>\<C-B>\"\<CR>", 'tx')
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
218 call assert_equal('"DoExec hi', @:)
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
219 delcommand DoExec
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
220 endfunc