annotate src/testdir/test_usercommands.vim @ 25895:8e9864b98846 v8.2.3481

patch 8.2.3481: failures when char is unsigned Commit: https://github.com/vim/vim/commit/2e258bd79f403bcccb1336bea70803957a83808f Author: James McCoy <jamessan@jamessan.com> Date: Tue Oct 5 19:44:04 2021 +0100 patch 8.2.3481: failures when char is unsigned Problem: Failures when char is unsigned. Solution: Use int8_T. Make a CI run with unsigned char. (James McCoy, closes #8936)
author Bram Moolenaar <Bram@vim.org>
date Tue, 05 Oct 2021 20:45:03 +0200
parents 60e4892dfa45
children 012faa52874b
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
25226
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
3 source vim9.vim
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
4
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 " Test for <mods> in user defined commands
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 function Test_cmdmods()
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 let g:mods = ''
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
9 command! -nargs=* MyCmd let g:mods = '<mods>'
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
12 call assert_equal('', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 aboveleft MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
14 call assert_equal('aboveleft', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
15 abo MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
16 call assert_equal('aboveleft', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 belowright MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
18 call assert_equal('belowright', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
19 bel MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
20 call assert_equal('belowright', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 botright MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
22 call assert_equal('botright', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
23 bo MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
24 call assert_equal('botright', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 browse MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
26 call assert_equal('browse', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
27 bro MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
28 call assert_equal('browse', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 confirm MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
30 call assert_equal('confirm', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
31 conf MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
32 call assert_equal('confirm', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 hide MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
34 call assert_equal('hide', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
35 hid MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
36 call assert_equal('hide', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37 keepalt MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
38 call assert_equal('keepalt', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
39 keepa MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
40 call assert_equal('keepalt', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
41 keepjumps MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
42 call assert_equal('keepjumps', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
43 keepj MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
44 call assert_equal('keepjumps', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
45 keepmarks MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
46 call assert_equal('keepmarks', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
47 kee MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
48 call assert_equal('keepmarks', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
49 keeppatterns MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
50 call assert_equal('keeppatterns', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
51 keepp MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
52 call assert_equal('keeppatterns', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
53 leftabove MyCmd " results in :aboveleft
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
54 call assert_equal('aboveleft', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
55 lefta MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
56 call assert_equal('aboveleft', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
57 lockmarks MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
58 call assert_equal('lockmarks', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
59 loc MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
60 call assert_equal('lockmarks', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
61 " noautocmd MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 noswapfile MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
63 call assert_equal('noswapfile', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
64 nos MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
65 call assert_equal('noswapfile', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
66 rightbelow MyCmd " results in :belowright
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
67 call assert_equal('belowright', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
68 rightb MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
69 call assert_equal('belowright', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
70 " sandbox MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
71 silent MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
72 call assert_equal('silent', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
73 sil MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
74 call assert_equal('silent', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
75 tab MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
76 call assert_equal('tab', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
77 topleft MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
78 call assert_equal('topleft', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
79 to MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
80 call assert_equal('topleft', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
81 " unsilent MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
82 verbose MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
83 call assert_equal('verbose', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
84 verb MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
85 call assert_equal('verbose', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
86 vertical MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
87 call assert_equal('vertical', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
88 vert MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
89 call assert_equal('vertical', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
90
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
91 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
92 \ keepmarks keeppatterns lockmarks noswapfile silent tab
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
93 \ topleft verbose vertical MyCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
94
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
95 call assert_equal('browse confirm hide keepalt keepjumps ' .
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
96 \ 'keepmarks keeppatterns lockmarks noswapfile silent ' .
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
97 \ 'verbose aboveleft belowright botright tab topleft vertical', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
98
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
99 let g:mods = ''
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
100 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
101
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
102 vertical MyQCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
103 call assert_equal('"vertical" ', g:mods)
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
104
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
105 delcommand MyCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
106 delcommand MyQCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
107 unlet g:mods
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
108 endfunction
9667
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
109
16413
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
110 func SaveCmdArgs(...)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
111 let g:args = a:000
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
112 endfunc
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
113
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
114 func Test_f_args()
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
115 command -nargs=* TestFArgs call SaveCmdArgs(<f-args>)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
116
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
117 TestFArgs
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
118 call assert_equal([], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
119
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
120 TestFArgs one two three
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
121 call assert_equal(['one', 'two', 'three'], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
122
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
123 TestFArgs one\\two three
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
124 call assert_equal(['one\two', 'three'], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
125
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
126 TestFArgs one\ two three
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
127 call assert_equal(['one two', 'three'], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
128
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
129 TestFArgs one\"two three
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
130 call assert_equal(['one\"two', 'three'], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
131
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
132 delcommand TestFArgs
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
133 endfunc
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
134
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
135 func Test_q_args()
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
136 command -nargs=* TestQArgs call SaveCmdArgs(<q-args>)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
137
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
138 TestQArgs
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
139 call assert_equal([''], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
140
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
141 TestQArgs one two three
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
142 call assert_equal(['one two three'], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
143
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
144 TestQArgs one\\two three
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
145 call assert_equal(['one\\two three'], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
146
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
147 TestQArgs one\ two three
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
148 call assert_equal(['one\ two three'], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
149
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
150 TestQArgs one\"two three
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
151 call assert_equal(['one\"two three'], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
152
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
153 delcommand TestQArgs
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
154 endfunc
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
155
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
156 func Test_reg_arg()
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
157 command -nargs=* -reg TestRegArg call SaveCmdArgs("<reg>", "<register>")
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
158
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
159 TestRegArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
160 call assert_equal(['', ''], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
161
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
162 TestRegArg x
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
163 call assert_equal(['x', 'x'], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
164
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
165 delcommand TestRegArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
166 endfunc
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
167
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
168 func Test_no_arg()
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
169 command -nargs=* TestNoArg call SaveCmdArgs("<args>", "<>", "<x>", "<lt>")
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
170
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
171 TestNoArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
172 call assert_equal(['', '<>', '<x>', '<'], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
173
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
174 TestNoArg one
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
175 call assert_equal(['one', '<>', '<x>', '<'], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
176
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
177 delcommand TestNoArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
178 endfunc
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
179
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
180 func Test_range_arg()
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
181 command -range TestRangeArg call SaveCmdArgs(<range>, <line1>, <line2>)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
182 new
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
183 call setline(1, range(100))
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
184 let lnum = line('.')
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
185
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
186 TestRangeArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
187 call assert_equal([0, lnum, lnum], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
188
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
189 99TestRangeArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
190 call assert_equal([1, 99, 99], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
191
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
192 88,99TestRangeArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
193 call assert_equal([2, 88, 99], g:args)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
194
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
195 call assert_fails('102TestRangeArg', 'E16:')
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
196
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
197 bwipe!
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
198 delcommand TestRangeArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
199 endfunc
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
200
9667
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
201 func Test_Ambiguous()
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
202 command Doit let g:didit = 'yes'
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
203 command Dothat let g:didthat = 'also'
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
204 call assert_fails('Do', 'E464:')
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
205 Doit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
206 call assert_equal('yes', g:didit)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
207 Dothat
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
208 call assert_equal('also', g:didthat)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
209 unlet g:didit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
210 unlet g:didthat
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
211
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
212 delcommand Doit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
213 Do
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
214 call assert_equal('also', g:didthat)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
215 delcommand Dothat
16413
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
216
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
217 call assert_fails("\x4ei\041", ' you demand a ')
9667
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
218 endfunc
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
219
15125
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
220 func Test_redefine_on_reload()
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
221 call writefile(['command ExistingCommand echo "yes"'], 'Xcommandexists')
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
222 call assert_equal(0, exists(':ExistingCommand'))
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
223 source Xcommandexists
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
224 call assert_equal(2, exists(':ExistingCommand'))
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
225 " Redefining a command when reloading a script is OK.
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
226 source Xcommandexists
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
227 call assert_equal(2, exists(':ExistingCommand'))
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
228
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
229 " But redefining in another script is not OK.
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
230 call writefile(['command ExistingCommand echo "yes"'], 'Xcommandexists2')
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
231 call assert_fails('source Xcommandexists2', 'E174:')
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
232 call delete('Xcommandexists2')
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
233
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
234 " And defining twice in one script is not OK.
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
235 delcommand ExistingCommand
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
236 call assert_equal(0, exists(':ExistingCommand'))
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
237 call writefile([
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
238 \ 'command ExistingCommand echo "yes"',
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
239 \ 'command ExistingCommand echo "no"',
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
240 \ ], 'Xcommandexists')
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
241 call assert_fails('source Xcommandexists', 'E174:')
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
242 call assert_equal(2, exists(':ExistingCommand'))
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
243
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
244 call delete('Xcommandexists')
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
245 delcommand ExistingCommand
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
246 endfunc
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
247
9667
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
248 func Test_CmdUndefined()
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
249 call assert_fails('Doit', 'E492:')
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
250 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
251 Doit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
252 call assert_equal('yes', g:didit)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
253 delcommand Doit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
254
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
255 call assert_fails('Dothat', 'E492:')
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
256 au CmdUndefined * let g:didnot = 'yes'
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
257 call assert_fails('Dothat', 'E492:')
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
258 call assert_equal('yes', g:didnot)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
259 endfunc
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
260
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
261 func Test_CmdErrors()
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
262 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
263 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
264 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
265 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
266 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
267 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
268 call assert_fails('com! -addr DoCmd :', 'E179:')
16413
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
269 call assert_fails('com! -addr=asdf DoCmd :', 'E180:')
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
270 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
271 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
272 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
273 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
274 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
275 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
276 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
277 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
278 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
279
25226
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
280 com! -complete=file DoCmd :
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
281 call assert_match('E1208:', v:warningmsg)
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
282 let v:warningmsg = ''
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
283 com! -nargs=0 -complete=file DoCmd :
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
284 call assert_match('E1208:', v:warningmsg)
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
285
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
286 let lines =<< trim END
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
287 vim9script
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
288 com! -complete=file DoCmd :
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
289 END
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
290 call CheckScriptFailure(lines, 'E1208', 2)
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
291
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
292 let lines =<< trim END
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
293 vim9script
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
294 com! -nargs=0 -complete=file DoCmd :
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
295 END
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
296 call CheckScriptFailure(lines, 'E1208', 2)
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
297
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
298 com! -nargs=0 DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
299 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
300
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
301 com! -nargs=1 DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
302 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
303
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
304 com! -nargs=+ DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
305 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
306
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
307 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
308 comclear
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
309 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
310 endfunc
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
311
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
312 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
313 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
314 endfunc
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
315
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
316 func CustomCompleteList(A, L, P)
19679
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
317 return [ "Monday", "Tuesday", "Wednesday", {}]
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
318 endfunc
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
319
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
320 func Test_CmdCompletion()
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
321 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
322 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
323
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
324 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
325 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
326
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
327 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
328 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
329
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
330 call feedkeys(":com -addr=\<C-A>\<C-B>\"\<CR>", 'tx')
15099
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
331 call assert_equal('"com -addr=arguments buffers lines loaded_buffers other quickfix tabs windows', @:)
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
332
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
333 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
334 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
335
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
336 command! DoCmd1 :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
337 command! DoCmd2 :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
338 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
339 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
340
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
341 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
342 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
343
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
344 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
345 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
346
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
347 delcom DoCmd1
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
348 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
349 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
350
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
351 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
352 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
353
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
354 delcom DoCmd2
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
355 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
356 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
357
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
358 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
359 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
360
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
361 com! -nargs=1 -complete=behave DoCmd :
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
362 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
363 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
364
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
365 com! -nargs=* -complete=custom,CustomComplete DoCmd :
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
366 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
367 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
368
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
369 com! -nargs=? -complete=customlist,CustomCompleteList DoCmd :
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
370 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
371 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
372
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
373 com! -nargs=+ -complete=custom,CustomCompleteList DoCmd :
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
374 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
375
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
376 com! -nargs=+ -complete=customlist,CustomComp DoCmd :
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
377 call assert_fails("call feedkeys(':DoCmd \<C-D>', 'tx')", 'E117:')
19679
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
378
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
379 " custom completion without a function
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
380 com! -nargs=? -complete=custom, DoCmd
19679
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
381 call assert_beeps("call feedkeys(':DoCmd \t', 'tx')")
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
382
20156
49694eceaa55 patch 8.2.0633: crash when using null partial in filter()
Bram Moolenaar <Bram@vim.org>
parents: 20128
diff changeset
383 " custom completion failure with the wrong function
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
384 com! -nargs=? -complete=custom,min DoCmd
20156
49694eceaa55 patch 8.2.0633: crash when using null partial in filter()
Bram Moolenaar <Bram@vim.org>
parents: 20128
diff changeset
385 call assert_fails("call feedkeys(':DoCmd \t', 'tx')", 'E118:')
49694eceaa55 patch 8.2.0633: crash when using null partial in filter()
Bram Moolenaar <Bram@vim.org>
parents: 20128
diff changeset
386
19679
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
387 delcom DoCmd
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
388 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
389
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
390 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
391 " 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
392 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
393 endfunc
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
394
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
395 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
396 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
397 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
398 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
399 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
400 endfunc
15099
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
401
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
402 func Test_addr_all()
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
403 command! -addr=lines DoSomething let g:a1 = <line1> | let g:a2 = <line2>
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
404 %DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
405 call assert_equal(1, g:a1)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
406 call assert_equal(line('$'), g:a2)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
407
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
408 command! -addr=arguments DoSomething let g:a1 = <line1> | let g:a2 = <line2>
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
409 args one two three
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
410 %DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
411 call assert_equal(1, g:a1)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
412 call assert_equal(3, g:a2)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
413
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
414 command! -addr=buffers DoSomething let g:a1 = <line1> | let g:a2 = <line2>
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
415 %DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
416 for low in range(1, bufnr('$'))
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
417 if buflisted(low)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
418 break
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
419 endif
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
420 endfor
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
421 call assert_equal(low, g:a1)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
422 call assert_equal(bufnr('$'), g:a2)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
423
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
424 command! -addr=loaded_buffers DoSomething let g:a1 = <line1> | let g:a2 = <line2>
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
425 %DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
426 for low in range(1, bufnr('$'))
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
427 if bufloaded(low)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
428 break
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
429 endif
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
430 endfor
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
431 call assert_equal(low, g:a1)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
432 for up in range(bufnr('$'), 1, -1)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
433 if bufloaded(up)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
434 break
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
435 endif
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
436 endfor
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
437 call assert_equal(up, g:a2)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
438
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
439 command! -addr=windows DoSomething let g:a1 = <line1> | let g:a2 = <line2>
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
440 new
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
441 %DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
442 call assert_equal(1, g:a1)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
443 call assert_equal(winnr('$'), g:a2)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
444 bwipe
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
445
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
446 command! -addr=tabs DoSomething let g:a1 = <line1> | let g:a2 = <line2>
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
447 tabnew
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
448 %DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
449 call assert_equal(1, g:a1)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
450 call assert_equal(len(gettabinfo()), g:a2)
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
451 bwipe
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
452
16475
854fb0ad4be6 patch 8.1.1241: Ex command info contains confusing information
Bram Moolenaar <Bram@vim.org>
parents: 16413
diff changeset
453 command! -addr=other DoSomething let g:a1 = <line1> | let g:a2 = <line2>
15099
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
454 DoSomething
16475
854fb0ad4be6 patch 8.1.1241: Ex command info contains confusing information
Bram Moolenaar <Bram@vim.org>
parents: 16413
diff changeset
455 call assert_equal(line('.'), g:a1)
854fb0ad4be6 patch 8.1.1241: Ex command info contains confusing information
Bram Moolenaar <Bram@vim.org>
parents: 16413
diff changeset
456 call assert_equal(line('.'), g:a2)
854fb0ad4be6 patch 8.1.1241: Ex command info contains confusing information
Bram Moolenaar <Bram@vim.org>
parents: 16413
diff changeset
457 %DoSomething
854fb0ad4be6 patch 8.1.1241: Ex command info contains confusing information
Bram Moolenaar <Bram@vim.org>
parents: 16413
diff changeset
458 call assert_equal(1, g:a1)
854fb0ad4be6 patch 8.1.1241: Ex command info contains confusing information
Bram Moolenaar <Bram@vim.org>
parents: 16413
diff changeset
459 call assert_equal(line('$'), g:a2)
15099
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
460
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
461 delcommand DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
462 endfunc
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
463
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
464 func Test_command_list()
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
465 command! DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
466 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
467 \ .. "\n DoCmd 0 :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
468 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
469
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
470 " Test with various -range= and -count= argument values.
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
471 command! -range DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
472 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
473 \ .. "\n DoCmd 0 . :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
474 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
475 command! -range=% DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
476 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
477 \ .. "\n DoCmd 0 % :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
478 \ execute('command! DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
479 command! -range=2 DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
480 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
481 \ .. "\n DoCmd 0 2 :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
482 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
483 command! -count=2 DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
484 call assert_equal("\n Name Args Address Complete Definition"
16475
854fb0ad4be6 patch 8.1.1241: Ex command info contains confusing information
Bram Moolenaar <Bram@vim.org>
parents: 16413
diff changeset
485 \ .. "\n DoCmd 0 2c ? :",
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
486 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
487
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
488 " Test with various -addr= argument values.
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
489 command! -addr=lines DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
490 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
491 \ .. "\n DoCmd 0 . :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
492 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
493 command! -addr=arguments DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
494 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
495 \ .. "\n DoCmd 0 . arg :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
496 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
497 command! -addr=buffers DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
498 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
499 \ .. "\n DoCmd 0 . buf :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
500 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
501 command! -addr=loaded_buffers DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
502 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
503 \ .. "\n DoCmd 0 . load :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
504 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
505 command! -addr=windows DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
506 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
507 \ .. "\n DoCmd 0 . win :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
508 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
509 command! -addr=tabs DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
510 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
511 \ .. "\n DoCmd 0 . tab :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
512 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
513 command! -addr=other DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
514 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
515 \ .. "\n DoCmd 0 . ? :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
516 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
517
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
518 " Test with various -complete= argument values (non-exhaustive list)
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
519 command! -nargs=1 -complete=arglist DoCmd :
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
520 call assert_equal("\n Name Args Address Complete Definition"
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
521 \ .. "\n DoCmd 1 arglist :",
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
522 \ execute('command DoCmd'))
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
523 command! -nargs=* -complete=augroup DoCmd :
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
524 call assert_equal("\n Name Args Address Complete Definition"
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
525 \ .. "\n DoCmd * augroup :",
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
526 \ execute('command DoCmd'))
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
527 command! -nargs=? -complete=custom,CustomComplete DoCmd :
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
528 call assert_equal("\n Name Args Address Complete Definition"
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
529 \ .. "\n DoCmd ? custom :",
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
530 \ execute('command DoCmd'))
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
531 command! -nargs=+ -complete=customlist,CustomComplete DoCmd :
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
532 call assert_equal("\n Name Args Address Complete Definition"
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
533 \ .. "\n DoCmd + customlist :",
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
534 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
535
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
536 " Test with various -narg= argument values.
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
537 command! -nargs=0 DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
538 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
539 \ .. "\n DoCmd 0 :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
540 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
541 command! -nargs=1 DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
542 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
543 \ .. "\n DoCmd 1 :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
544 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
545 command! -nargs=* DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
546 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
547 \ .. "\n DoCmd * :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
548 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
549 command! -nargs=? DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
550 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
551 \ .. "\n DoCmd ? :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
552 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
553 command! -nargs=+ DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
554 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
555 \ .. "\n DoCmd + :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
556 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
557
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
558 " Test with other arguments.
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
559 command! -bang DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
560 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
561 \ .. "\n! DoCmd 0 :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
562 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
563 command! -bar DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
564 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
565 \ .. "\n| DoCmd 0 :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
566 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
567 command! -register DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
568 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
569 \ .. "\n\" DoCmd 0 :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
570 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
571 command! -buffer DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
572 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
573 \ .. "\nb DoCmd 0 :"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
574 \ .. "\n\" DoCmd 0 :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
575 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
576 comclear
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
577
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
578 " Test with many args.
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
579 command! -bang -bar -register -buffer -nargs=+ -complete=environment -addr=windows -count=3 DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
580 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
581 \ .. "\n!\"b|DoCmd + 3c win environment :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
582 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
583 comclear
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
584
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
585 " Test with special characters in command definition.
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
586 command! DoCmd :<cr><tab><c-d>
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
587 call assert_equal("\n Name Args Address Complete Definition"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
588 \ .. "\n DoCmd 0 :<CR><Tab><C-D>",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
589 \ execute('command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
590
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
591 " Test output in verbose mode.
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
592 command! DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
593 call assert_match("^\n"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
594 \ .. " Name Args Address Complete Definition\n"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
595 \ .. " DoCmd 0 :\n"
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
596 \ .. "\tLast set from .*/test_usercommands.vim line \\d\\+$",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
597 \ execute('verbose command DoCmd'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
598
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
599 comclear
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
600 call assert_equal("\nNo user-defined commands found", execute(':command Xxx'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
601 call assert_equal("\nNo user-defined commands found", execute('command'))
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
602 endfunc
19679
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
603
19724
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
604 " Test for a custom user completion returning the wrong value type
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
605 func Test_usercmd_custom()
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
606 func T1(a, c, p)
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
607 return "a\nb\n"
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
608 endfunc
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
609 command -nargs=* -complete=customlist,T1 TCmd1
20128
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 20043
diff changeset
610 call feedkeys(":TCmd1 \<C-A>\<C-B>\"\<CR>", 'xt')
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 20043
diff changeset
611 call assert_equal('"TCmd1 ', @:)
19724
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
612 delcommand TCmd1
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
613 delfunc T1
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
614
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
615 func T2(a, c, p)
20128
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 20043
diff changeset
616 return {}
19724
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
617 endfunc
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
618 command -nargs=* -complete=customlist,T2 TCmd2
20128
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 20043
diff changeset
619 call feedkeys(":TCmd2 \<C-A>\<C-B>\"\<CR>", 'xt')
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 20043
diff changeset
620 call assert_equal('"TCmd2 ', @:)
19724
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
621 delcommand TCmd2
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
622 delfunc T2
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
623 endfunc
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
624
25382
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
625 func Test_usercmd_with_block()
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
626 command DoSomething {
25739
8c4dee4d1ac6 patch 8.2.3405: cannot have a comment line in a {} block of a user command
Bram Moolenaar <Bram@vim.org>
parents: 25521
diff changeset
627 g:didit = 'yes' # comment
8c4dee4d1ac6 patch 8.2.3405: cannot have a comment line in a {} block of a user command
Bram Moolenaar <Bram@vim.org>
parents: 25521
diff changeset
628 # comment line
25382
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
629 g:didmore = 'more'
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
630 }
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
631 DoSomething
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
632 call assert_equal('yes', g:didit)
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
633 call assert_equal('more', g:didmore)
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
634 unlet g:didit
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
635 unlet g:didmore
25396
8ecd3575bc8c patch 8.2.3235: cannot use lambda in {} block in user command
Bram Moolenaar <Bram@vim.org>
parents: 25382
diff changeset
636 delcommand DoSomething
8ecd3575bc8c patch 8.2.3235: cannot use lambda in {} block in user command
Bram Moolenaar <Bram@vim.org>
parents: 25382
diff changeset
637
8ecd3575bc8c patch 8.2.3235: cannot use lambda in {} block in user command
Bram Moolenaar <Bram@vim.org>
parents: 25382
diff changeset
638 command DoMap {
8ecd3575bc8c patch 8.2.3235: cannot use lambda in {} block in user command
Bram Moolenaar <Bram@vim.org>
parents: 25382
diff changeset
639 echo [1, 2, 3]->map((_, v) => v + 1)
8ecd3575bc8c patch 8.2.3235: cannot use lambda in {} block in user command
Bram Moolenaar <Bram@vim.org>
parents: 25382
diff changeset
640 }
8ecd3575bc8c patch 8.2.3235: cannot use lambda in {} block in user command
Bram Moolenaar <Bram@vim.org>
parents: 25382
diff changeset
641 DoMap
8ecd3575bc8c patch 8.2.3235: cannot use lambda in {} block in user command
Bram Moolenaar <Bram@vim.org>
parents: 25382
diff changeset
642 delcommand DoMap
25382
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
643
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
644 let lines =<< trim END
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
645 command DoesNotEnd {
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
646 echo 'hello'
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
647 END
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
648 call CheckScriptFailure(lines, 'E1026:')
25521
2063b858cad9 patch 8.2.3297: cannot use all commands inside a {} block
Bram Moolenaar <Bram@vim.org>
parents: 25396
diff changeset
649
2063b858cad9 patch 8.2.3297: cannot use all commands inside a {} block
Bram Moolenaar <Bram@vim.org>
parents: 25396
diff changeset
650 let lines =<< trim END
2063b858cad9 patch 8.2.3297: cannot use all commands inside a {} block
Bram Moolenaar <Bram@vim.org>
parents: 25396
diff changeset
651 command BarCommand {
2063b858cad9 patch 8.2.3297: cannot use all commands inside a {} block
Bram Moolenaar <Bram@vim.org>
parents: 25396
diff changeset
652 echo 'hello' | echo 'there'
2063b858cad9 patch 8.2.3297: cannot use all commands inside a {} block
Bram Moolenaar <Bram@vim.org>
parents: 25396
diff changeset
653 }
2063b858cad9 patch 8.2.3297: cannot use all commands inside a {} block
Bram Moolenaar <Bram@vim.org>
parents: 25396
diff changeset
654 BarCommand
2063b858cad9 patch 8.2.3297: cannot use all commands inside a {} block
Bram Moolenaar <Bram@vim.org>
parents: 25396
diff changeset
655 END
2063b858cad9 patch 8.2.3297: cannot use all commands inside a {} block
Bram Moolenaar <Bram@vim.org>
parents: 25396
diff changeset
656 call CheckScriptFailure(lines, 'E1231:')
25382
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
657 endfunc
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
658
25796
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
659 func Test_delcommand_buffer()
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
660 command Global echo 'global'
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
661 command -buffer OneBuffer echo 'one'
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
662 new
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
663 command -buffer TwoBuffer echo 'two'
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
664 call assert_equal(0, exists(':OneBuffer'))
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
665 call assert_equal(2, exists(':Global'))
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
666 call assert_equal(2, exists(':TwoBuffer'))
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
667 delcommand -buffer TwoBuffer
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
668 call assert_equal(0, exists(':TwoBuffer'))
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
669 call assert_fails('delcommand -buffer Global', 'E1237:')
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
670 call assert_fails('delcommand -buffer OneBuffer', 'E1237:')
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
671 bwipe!
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
672 call assert_equal(2, exists(':OneBuffer'))
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
673 delcommand -buffer OneBuffer
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
674 call assert_equal(0, exists(':OneBuffer'))
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
675 call assert_fails('delcommand -buffer Global', 'E1237:')
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
676 delcommand Global
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
677 call assert_equal(0, exists(':Global'))
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
678 endfunc
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
679
19679
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
680 " vim: shiftwidth=2 sts=2 expandtab