annotate src/testdir/test_usercommands.vim @ 33738:2172872dfbcd v9.0.2096

patch 9.0.2096: Vim9: confusing usage of private Commit: https://github.com/vim/vim/commit/03042a2753e3e6ac971045a8ce256d709214710e Author: Ernie Rael <errael@raelity.com> Date: Sat Nov 11 08:53:32 2023 +0100 patch 9.0.2096: Vim9: confusing usage of private Problem: Vim9: confusing usage of private Solution: clarify and use protected keyword instead [vim9class] document `_` as protected instead of private fixes #13504 closes: #13520 Signed-off-by: Ernie Rael <errael@raelity.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sat, 11 Nov 2023 09:00:06 +0100
parents 256febd1cbf0
children 1aa3500798a3
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
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27187
diff changeset
3 import './vim9.vim' as v9
25226
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
4
31085
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
5 source check.vim
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
6 source screendump.vim
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
7
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 " Test for <mods> in user defined commands
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 function Test_cmdmods()
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 let g:mods = ''
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
12 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
13
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
15 call assert_equal('', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 aboveleft MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
17 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
18 abo MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
19 call assert_equal('aboveleft', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 belowright MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
21 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
22 bel MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
23 call assert_equal('belowright', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 botright MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
25 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
26 bo MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
27 call assert_equal('botright', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28 browse MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
29 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
30 bro MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
31 call assert_equal('browse', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 confirm MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
33 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
34 conf MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
35 call assert_equal('confirm', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36 hide MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
37 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
38 hid MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
39 call assert_equal('hide', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
40 keepalt MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
41 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
42 keepa MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
43 call assert_equal('keepalt', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
44 keepjumps MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
45 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
46 keepj MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
47 call assert_equal('keepjumps', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
48 keepmarks MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
49 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
50 kee MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
51 call assert_equal('keepmarks', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
52 keeppatterns MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
53 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
54 keepp MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
55 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
56 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
57 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
58 lefta MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
59 call assert_equal('aboveleft', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
60 lockmarks MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
61 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
62 loc 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('lockmarks', g:mods)
29377
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
64 noautocmd MyCmd
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
65 call assert_equal('noautocmd', g:mods)
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
66 noa MyCmd
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
67 call assert_equal('noautocmd', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
68 noswapfile 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('noswapfile', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
70 nos MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
71 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
72 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
73 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
74 rightb MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
75 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
76 " sandbox MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
77 silent 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('silent', g:mods)
9703
1f33aece8e55 commit https://github.com/vim/vim/commit/3bcfca3ab4db415d0e750e00204dd25a91fcee77
Christian Brabandt <cb@256bit.org>
parents: 9667
diff changeset
79 sil 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('silent', g:mods)
29377
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
81 silent! MyCmd
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
82 call assert_equal('silent!', g:mods)
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
83 sil! MyCmd
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
84 call assert_equal('silent!', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
85 tab MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
86 call assert_equal('tab', g:mods)
30904
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
87 0tab MyCmd
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
88 call assert_equal('0tab', g:mods)
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
89 tab split
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
90 tab MyCmd
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
91 call assert_equal('tab', g:mods)
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
92 1tab MyCmd
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
93 call assert_equal('1tab', g:mods)
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
94 tabprev
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
95 tab MyCmd
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
96 call assert_equal('tab', g:mods)
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
97 2tab MyCmd
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
98 call assert_equal('2tab', g:mods)
8c7495056f35 patch 9.0.0786: user command does not get number from :tab modifier
Bram Moolenaar <Bram@vim.org>
parents: 30867
diff changeset
99 2tabclose
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
100 topleft MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
101 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
102 to MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
103 call assert_equal('topleft', g:mods)
29377
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
104 unsilent MyCmd
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
105 call assert_equal('unsilent', g:mods)
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
106 uns MyCmd
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
107 call assert_equal('unsilent', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
108 verbose MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
109 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
110 verb MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
111 call assert_equal('verbose', g:mods)
29377
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
112 0verbose MyCmd
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
113 call assert_equal('0verbose', g:mods)
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
114 3verbose MyCmd
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
115 call assert_equal('3verbose', g:mods)
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
116 999verbose MyCmd
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
117 call assert_equal('999verbose', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
118 vertical MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
119 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
120 vert MyCmd
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
121 call assert_equal('vertical', g:mods)
30017
578e71f924fe patch 9.0.0346: :horizontal modifier not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 29377
diff changeset
122 horizontal MyCmd
578e71f924fe patch 9.0.0346: :horizontal modifier not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 29377
diff changeset
123 call assert_equal('horizontal', g:mods)
578e71f924fe patch 9.0.0346: :horizontal modifier not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 29377
diff changeset
124 hor MyCmd
578e71f924fe patch 9.0.0346: :horizontal modifier not fully supported
Bram Moolenaar <Bram@vim.org>
parents: 29377
diff changeset
125 call assert_equal('horizontal', g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
126
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
127 aboveleft belowright botright browse confirm hide keepalt keepjumps
29377
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
128 \ keepmarks keeppatterns lockmarks noautocmd noswapfile silent
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
129 \ tab topleft unsilent verbose vertical MyCmd
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
130
20043
d13f8ae3b1de patch 8.2.0577: not all modifiers supported for :options
Bram Moolenaar <Bram@vim.org>
parents: 19724
diff changeset
131 call assert_equal('browse confirm hide keepalt keepjumps ' .
29377
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
132 \ 'keepmarks keeppatterns lockmarks noswapfile unsilent noautocmd ' .
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
133 \ 'silent verbose aboveleft belowright botright tab topleft vertical',
48b086982c01 patch 9.0.0031: <cmod> of user command does not have correct verbose value
Bram Moolenaar <Bram@vim.org>
parents: 28743
diff changeset
134 \ g:mods)
9230
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
135
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
136 let g:mods = ''
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
137 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
138
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
139 vertical MyQCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
140 call assert_equal('"vertical" ', g:mods)
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
141
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
142 delcommand MyCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
143 delcommand MyQCmd
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
144 unlet g:mods
f7fb117883ba commit https://github.com/vim/vim/commit/63a60ded3fd584847a05dccf058026e682abad90
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
145 endfunction
9667
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
146
16413
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
147 func SaveCmdArgs(...)
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
148 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
149 endfunc
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
150
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
151 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
152 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
153
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
154 TestFArgs
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
155 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
156
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
157 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
158 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
159
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
160 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
161 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
162
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
163 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
164 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
165
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
166 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
167 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
168
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
169 delcommand TestFArgs
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
170 endfunc
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
171
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
172 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
173 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
174
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
175 TestQArgs
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
176 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
177
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
178 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
179 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
180
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
181 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
182 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
183
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
184 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
185 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
186
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
187 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
188 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
189
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
190 delcommand TestQArgs
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
191 endfunc
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
192
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
193 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
194 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
195
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
196 TestRegArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
197 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
198
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
199 TestRegArg x
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
200 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
201
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
202 delcommand TestRegArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
203 endfunc
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
204
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
205 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
206 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
207
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
208 TestNoArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
209 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
210
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
211 TestNoArg one
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
212 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
213
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
214 delcommand TestNoArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
215 endfunc
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 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
218 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
219 new
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
220 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
221 let lnum = line('.')
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
222
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
223 TestRangeArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
224 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
225
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
226 99TestRangeArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
227 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
228
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
229 88,99TestRangeArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
230 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
231
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
232 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
233
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
234 bwipe!
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
235 delcommand TestRangeArg
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
236 endfunc
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
237
9667
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
238 func Test_Ambiguous()
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
239 command Doit let g:didit = 'yes'
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
240 command Dothat let g:didthat = 'also'
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
241 call assert_fails('Do', 'E464:')
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
242 Doit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
243 call assert_equal('yes', g:didit)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
244 Dothat
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
245 call assert_equal('also', g:didthat)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
246 unlet g:didit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
247 unlet g:didthat
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
248
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
249 delcommand Doit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
250 Do
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
251 call assert_equal('also', g:didthat)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
252 delcommand Dothat
16413
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
253
4734d601ebdd patch 8.1.1211: not all user command code is tested
Bram Moolenaar <Bram@vim.org>
parents: 16403
diff changeset
254 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
255 endfunc
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
256
15125
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
257 func Test_redefine_on_reload()
30867
0913cd44fdfa patch 9.0.0768: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30203
diff changeset
258 call writefile(['command ExistingCommand echo "yes"'], 'Xcommandexists', 'D')
15125
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
259 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
260 source Xcommandexists
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
261 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
262 " 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
263 source Xcommandexists
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
264 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
265
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
266 " But redefining in another script is not OK.
30867
0913cd44fdfa patch 9.0.0768: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30203
diff changeset
267 call writefile(['command ExistingCommand echo "yes"'], 'Xcommandexists2', 'D')
15125
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
268 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
269
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
270 " 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
271 delcommand ExistingCommand
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
272 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
273 call writefile([
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
274 \ '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
275 \ '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
276 \ ], 'Xcommandexists')
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
277 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
278 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
279
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
280 delcommand ExistingCommand
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
281 endfunc
b101b193d5ff patch 8.1.0573: cannot redefine user command without ! in same script
Bram Moolenaar <Bram@vim.org>
parents: 15099
diff changeset
282
9667
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
283 func Test_CmdUndefined()
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
284 call assert_fails('Doit', 'E492:')
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
285 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
286 Doit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
287 call assert_equal('yes', g:didit)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
288 delcommand Doit
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
289
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
290 call assert_fails('Dothat', 'E492:')
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
291 au CmdUndefined * let g:didnot = 'yes'
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
292 call assert_fails('Dothat', 'E492:')
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
293 call assert_equal('yes', g:didnot)
c27052511998 commit https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
Christian Brabandt <cb@256bit.org>
parents: 9230
diff changeset
294 endfunc
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
295
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
296 func Test_CmdErrors()
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
297 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
298 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
299 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
300 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
301 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
302 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
303 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
304 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
305 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
306 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
307 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
308 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
309 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
310 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
311 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
312 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
313 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
314
25226
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
315 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
316 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
317 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
318 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
319 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
320
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
321 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
322 vim9script
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
323 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
324 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27187
diff changeset
325 call v9.CheckScriptFailure(lines, 'E1208', 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
326
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
327 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
328 vim9script
a9ea83a3659a patch 8.2.3149: some plugins have a problem with the error check
Bram Moolenaar <Bram@vim.org>
parents: 25210
diff changeset
329 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
330 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27187
diff changeset
331 call v9.CheckScriptFailure(lines, 'E1208', 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
332
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
333 com! -nargs=0 DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
334 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
335
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
336 com! -nargs=1 DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
337 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
338
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
339 com! -nargs=+ DoCmd :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
340 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
341
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
342 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
343 comclear
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
344 call assert_fails('delcom DoCmd', 'E184:')
31493
6c32d1072f82 patch 9.0.1079: leaking memory when defining a user command fails
Bram Moolenaar <Bram@vim.org>
parents: 31085
diff changeset
345
6c32d1072f82 patch 9.0.1079: leaking memory when defining a user command fails
Bram Moolenaar <Bram@vim.org>
parents: 31085
diff changeset
346 " These used to leak memory
6c32d1072f82 patch 9.0.1079: leaking memory when defining a user command fails
Bram Moolenaar <Bram@vim.org>
parents: 31085
diff changeset
347 call assert_fails('com! -complete=custom,CustomComplete _ :', 'E182:')
6c32d1072f82 patch 9.0.1079: leaking memory when defining a user command fails
Bram Moolenaar <Bram@vim.org>
parents: 31085
diff changeset
348 call assert_fails('com! -complete=custom,CustomComplete docmd :', 'E183:')
6c32d1072f82 patch 9.0.1079: leaking memory when defining a user command fails
Bram Moolenaar <Bram@vim.org>
parents: 31085
diff changeset
349 call assert_fails('com! -complete=custom,CustomComplete -xxx DoCmd :', 'E181:')
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
350 endfunc
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
351
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
352 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
353 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
354 endfunc
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
355
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
356 func CustomCompleteList(A, L, P)
27700
3f57b0a8cd29 patch 8.2.4376: not enough tests for command line completion
Bram Moolenaar <Bram@vim.org>
parents: 27680
diff changeset
357 return [ "Monday", "Tuesday", "Wednesday", {}, test_null_string()]
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
358 endfunc
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
359
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
360 func Test_CmdCompletion()
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
361 call feedkeys(":com -\<C-A>\<C-B>\"\<CR>", 'tx')
26107
012faa52874b patch 8.2.3586: command completion test fails
Bram Moolenaar <Bram@vim.org>
parents: 25796
diff changeset
362 call assert_equal('"com -addr bang bar buffer complete count keepscript nargs range register', @:)
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
363
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
364 call feedkeys(":com -nargs=0 -\<C-A>\<C-B>\"\<CR>", 'tx')
26107
012faa52874b patch 8.2.3586: command completion test fails
Bram Moolenaar <Bram@vim.org>
parents: 25796
diff changeset
365 call assert_equal('"com -nargs=0 -addr bang bar buffer complete count keepscript nargs range register', @:)
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
366
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
367 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
368 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
369
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
370 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
371 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
372
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
373 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
374 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
375
27760
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
376 " try completion for unsupported argument values
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
377 call feedkeys(":com -newarg=\<Tab>\<C-B>\"\<CR>", 'tx')
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
378 call assert_equal("\"com -newarg=\t", @:)
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
379
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
380 " command completion after the name in a user defined command
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
381 call feedkeys(":com MyCmd chist\<Tab>\<C-B>\"\<CR>", 'tx')
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
382 call assert_equal("\"com MyCmd chistory", @:)
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
383
31085
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
384 " delete the Check commands to avoid them showing up
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
385 call feedkeys(":com Check\<C-A>\<C-B>\"\<CR>", 'tx')
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
386 let cmds = substitute(@:, '"com ', '', '')->split()
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
387 for cmd in cmds
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
388 exe 'delcommand ' .. cmd
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
389 endfor
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
390 delcommand MissingFeature
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
391
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
392 command! DoCmd1 :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
393 command! DoCmd2 :
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
394 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
395 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
396
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
397 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
398 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
399
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
400 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
401 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
402
27760
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
403 " try argument completion for a command without completion
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
404 call feedkeys(":DoCmd1 \<Tab>\<C-B>\"\<CR>", 'tx')
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
405 call assert_equal("\"DoCmd1 \t", @:)
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
406
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
407 delcom DoCmd1
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
408 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
409 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
410
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
411 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
412 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
413
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
414 delcom DoCmd2
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
415 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
416 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
417
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
418 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
419 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
420
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
421 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
422 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
423 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
424
27760
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
425 " Test for file name completion
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
426 com! -nargs=1 -complete=file DoCmd :
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
427 call feedkeys(":DoCmd READM\<Tab>\<C-B>\"\<CR>", 'tx')
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
428 call assert_equal('"DoCmd README.txt', @:)
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
429
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
430 " Test for buffer name completion
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
431 com! -nargs=1 -complete=buffer DoCmd :
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
432 let bnum = bufadd('BufForUserCmd')
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
433 call setbufvar(bnum, '&buflisted', 1)
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
434 call feedkeys(":DoCmd BufFor\<Tab>\<C-B>\"\<CR>", 'tx')
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
435 call assert_equal('"DoCmd BufForUserCmd', @:)
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
436 bwipe BufForUserCmd
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
437 call feedkeys(":DoCmd BufFor\<Tab>\<C-B>\"\<CR>", 'tx')
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
438 call assert_equal('"DoCmd BufFor', @:)
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
439
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
440 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
441 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
442 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
443
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
444 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
445 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
446 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
447
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
448 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
449 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
450
25210
8d816c266ceb patch 8.2.3141: no error when using :complete for :command without -nargs
Bram Moolenaar <Bram@vim.org>
parents: 20156
diff changeset
451 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
452 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
453
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
454 " 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
455 com! -nargs=? -complete=custom, DoCmd
19679
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
456 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
457
20156
49694eceaa55 patch 8.2.0633: crash when using null partial in filter()
Bram Moolenaar <Bram@vim.org>
parents: 20128
diff changeset
458 " 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
459 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
460 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
461
27680
38eab98ef5a9 patch 8.2.4366: not enough tests for command line completion
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
462 " custom completion for a pattern with a backslash
38eab98ef5a9 patch 8.2.4366: not enough tests for command line completion
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
463 let g:ArgLead = ''
38eab98ef5a9 patch 8.2.4366: not enough tests for command line completion
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
464 func! CustCompl(A, L, P)
38eab98ef5a9 patch 8.2.4366: not enough tests for command line completion
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
465 let g:ArgLead = a:A
38eab98ef5a9 patch 8.2.4366: not enough tests for command line completion
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
466 return ['one', 'two', 'three']
38eab98ef5a9 patch 8.2.4366: not enough tests for command line completion
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
467 endfunc
38eab98ef5a9 patch 8.2.4366: not enough tests for command line completion
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
468 com! -nargs=? -complete=customlist,CustCompl DoCmd
38eab98ef5a9 patch 8.2.4366: not enough tests for command line completion
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
469 call feedkeys(":DoCmd a\\\t", 'xt')
38eab98ef5a9 patch 8.2.4366: not enough tests for command line completion
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
470 call assert_equal('a\', g:ArgLead)
38eab98ef5a9 patch 8.2.4366: not enough tests for command line completion
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
471 delfunc CustCompl
38eab98ef5a9 patch 8.2.4366: not enough tests for command line completion
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
472
19679
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
473 delcom DoCmd
10704
6736cb425720 patch 8.0.0242: no tests for user command completion
Christian Brabandt <cb@256bit.org>
parents: 9703
diff changeset
474 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
475
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
476 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
477 " 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
478 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
479 endfunc
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
480
9b3f8029a326 patch 8.0.1425: execute() does not work in completion of user command
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
481 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
482 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
483 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
484 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
485 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
486 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
487
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
488 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
489 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
490 %DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
491 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
492 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
493
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
494 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
495 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
496 %DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
497 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
498 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
499
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
500 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
501 %DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
502 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
503 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
504 break
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
505 endif
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
506 endfor
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
507 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
508 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
509
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
510 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
511 %DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
512 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
513 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
514 break
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
515 endif
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
516 endfor
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
517 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
518 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
519 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
520 break
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
521 endif
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
522 endfor
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
523 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
524
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
525 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
526 new
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
527 %DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
528 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
529 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
530 bwipe
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
531
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
532 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
533 tabnew
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
534 %DoSomething
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
535 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
536 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
537 bwipe
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
538
16475
854fb0ad4be6 patch 8.1.1241: Ex command info contains confusing information
Bram Moolenaar <Bram@vim.org>
parents: 16413
diff changeset
539 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
540 DoSomething
16475
854fb0ad4be6 patch 8.1.1241: Ex command info contains confusing information
Bram Moolenaar <Bram@vim.org>
parents: 16413
diff changeset
541 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
542 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
543 %DoSomething
854fb0ad4be6 patch 8.1.1241: Ex command info contains confusing information
Bram Moolenaar <Bram@vim.org>
parents: 16413
diff changeset
544 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
545 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
546
39728d503e47 patch 8.1.0560: cannot use address type "other" with with user command
Bram Moolenaar <Bram@vim.org>
parents: 13101
diff changeset
547 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
548 endfunc
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
549
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
550 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
551 command! DoCmd :
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
552 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
553 \ .. "\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
554 \ 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
555
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
556 " 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
557 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
558 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
559 \ .. "\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
560 \ 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
561 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
562 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
563 \ .. "\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
564 \ 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
565 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
566 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
567 \ .. "\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
568 \ 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
569 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
570 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
571 \ .. "\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
572 \ 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
573
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
574 " 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
575 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
576 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
577 \ .. "\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
578 \ 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
579 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
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 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
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 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
584 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
585 \ .. "\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
586 \ 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
587 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
588 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
589 \ .. "\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
590 \ 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
591 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
592 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
593 \ .. "\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
594 \ 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
595 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
596 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
597 \ .. "\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
598 \ 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
599 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
600 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
601 \ .. "\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
602 \ 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
603
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
604 " 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
605 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
606 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
607 \ .. "\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
608 \ 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
609 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
610 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
611 \ .. "\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
612 \ 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
613 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
614 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
615 \ .. "\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
616 \ 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
617 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
618 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
619 \ .. "\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
620 \ 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
621
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
622 " 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
623 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
624 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
625 \ .. "\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
626 \ 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
627 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
628 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
629 \ .. "\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
630 \ 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
631 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
632 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
633 \ .. "\n DoCmd * :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
634 \ 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
635 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
636 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
637 \ .. "\n DoCmd ? :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
638 \ 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
639 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
640 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
641 \ .. "\n DoCmd + :",
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
642 \ 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
643
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
644 " 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
645 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
646 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
647 \ .. "\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
648 \ 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
649 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
650 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
651 \ .. "\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
652 \ 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
653 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
654 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
655 \ .. "\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
656 \ 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
657 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
658 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
659 \ .. "\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
660 \ .. "\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
661 \ 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
662 comclear
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
663
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
664 " 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
665 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
666 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
667 \ .. "\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
668 \ 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
669 comclear
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
670
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
671 " 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
672 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
673 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
674 \ .. "\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
675 \ 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
676
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
677 " Test output in verbose mode.
27187
8950a7b6cc89 patch 8.2.4122: ":command Cmd" does not show custom completion argument
Bram Moolenaar <Bram@vim.org>
parents: 26576
diff changeset
678 command! -nargs=+ -complete=customlist,SomeFunc DoCmd :ls
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
679 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
680 \ .. " Name Args Address Complete Definition\n"
27187
8950a7b6cc89 patch 8.2.4122: ":command Cmd" does not show custom completion argument
Bram Moolenaar <Bram@vim.org>
parents: 26576
diff changeset
681 \ .. " DoCmd + customlist,SomeFunc :ls\n"
16403
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
682 \ .. "\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
683 \ 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
684
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
685 comclear
250420b35b10 patch 8.1.1206: user command parsing and listing not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 15125
diff changeset
686 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
687 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
688 endfunc
19679
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
689
19724
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
690 " 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
691 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
692 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
693 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
694 endfunc
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
695 command -nargs=* -complete=customlist,T1 TCmd1
30203
a3016780f346 patch 9.0.0437: no error when custom completion function returns wrong type
Bram Moolenaar <Bram@vim.org>
parents: 30017
diff changeset
696 call assert_fails('call feedkeys(":TCmd1 \<C-A>\<C-B>\"\<CR>", "xt")', 'E1303: Custom list completion function does not return a List but a string')
20128
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 20043
diff changeset
697 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
698 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
699 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
700
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
701 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
702 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
703 endfunc
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
704 command -nargs=* -complete=customlist,T2 TCmd2
30203
a3016780f346 patch 9.0.0437: no error when custom completion function returns wrong type
Bram Moolenaar <Bram@vim.org>
parents: 30017
diff changeset
705 call assert_fails('call feedkeys(":TCmd2 \<C-A>\<C-B>\"\<CR>", "xt")', 'E1303: Custom list completion function does not return a List but a dict')
20128
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 20043
diff changeset
706 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
707 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
708 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
709 endfunc
b3e93a05c3ca patch 8.2.0418: code in eval.c not sufficiently covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19679
diff changeset
710
25382
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
711 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
712 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
713 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
714 # 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
715 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
716 }
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
717 DoSomething
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
718 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
719 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
720 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
721 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
722 delcommand DoSomething
8ecd3575bc8c patch 8.2.3235: cannot use lambda in {} block in user command
Bram Moolenaar <Bram@vim.org>
parents: 25382
diff changeset
723
8ecd3575bc8c patch 8.2.3235: cannot use lambda in {} block in user command
Bram Moolenaar <Bram@vim.org>
parents: 25382
diff changeset
724 command DoMap {
8ecd3575bc8c patch 8.2.3235: cannot use lambda in {} block in user command
Bram Moolenaar <Bram@vim.org>
parents: 25382
diff changeset
725 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
726 }
8ecd3575bc8c patch 8.2.3235: cannot use lambda in {} block in user command
Bram Moolenaar <Bram@vim.org>
parents: 25382
diff changeset
727 DoMap
8ecd3575bc8c patch 8.2.3235: cannot use lambda in {} block in user command
Bram Moolenaar <Bram@vim.org>
parents: 25382
diff changeset
728 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
729
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
730 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
731 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
732 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
733 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27187
diff changeset
734 call v9.CheckScriptFailure(lines, 'E1026:')
31085
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
735 delcommand DoesNotEnd
25521
2063b858cad9 patch 8.2.3297: cannot use all commands inside a {} block
Bram Moolenaar <Bram@vim.org>
parents: 25396
diff changeset
736
2063b858cad9 patch 8.2.3297: cannot use all commands inside a {} block
Bram Moolenaar <Bram@vim.org>
parents: 25396
diff changeset
737 let lines =<< trim END
26576
5ea6db641b5e patch 8.2.3817: Vim9: Not using NL as command end does not work for :autocmd
Bram Moolenaar <Bram@vim.org>
parents: 26498
diff changeset
738 command HelloThere {
25521
2063b858cad9 patch 8.2.3297: cannot use all commands inside a {} block
Bram Moolenaar <Bram@vim.org>
parents: 25396
diff changeset
739 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
740 }
26576
5ea6db641b5e patch 8.2.3817: Vim9: Not using NL as command end does not work for :autocmd
Bram Moolenaar <Bram@vim.org>
parents: 26498
diff changeset
741 HelloThere
25521
2063b858cad9 patch 8.2.3297: cannot use all commands inside a {} block
Bram Moolenaar <Bram@vim.org>
parents: 25396
diff changeset
742 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27187
diff changeset
743 call v9.CheckScriptSuccess(lines)
26576
5ea6db641b5e patch 8.2.3817: Vim9: Not using NL as command end does not work for :autocmd
Bram Moolenaar <Bram@vim.org>
parents: 26498
diff changeset
744 delcommand HelloThere
5ea6db641b5e patch 8.2.3817: Vim9: Not using NL as command end does not work for :autocmd
Bram Moolenaar <Bram@vim.org>
parents: 26498
diff changeset
745
5ea6db641b5e patch 8.2.3817: Vim9: Not using NL as command end does not work for :autocmd
Bram Moolenaar <Bram@vim.org>
parents: 26498
diff changeset
746 let lines =<< trim END
28690
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
747 command EchoCond {
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
748 const test: string = true
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
749 ? 'true'
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
750 : 'false'
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
751 g:result = test
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
752 }
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
753 EchoCond
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
754 END
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
755 call v9.CheckScriptSuccess(lines)
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
756 call assert_equal('true', g:result)
28743
cf6bba7a9b0f patch 8.2.4896: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28690
diff changeset
757 unlet g:result
cf6bba7a9b0f patch 8.2.4896: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28690
diff changeset
758
cf6bba7a9b0f patch 8.2.4896: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28690
diff changeset
759 call feedkeys(":EchoCond\<CR>", 'xt')
cf6bba7a9b0f patch 8.2.4896: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28690
diff changeset
760 call assert_equal('true', g:result)
cf6bba7a9b0f patch 8.2.4896: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28690
diff changeset
761
28690
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
762 delcommand EchoCond
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
763 unlet g:result
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
764
9a7a2908e1a8 patch 8.2.4869: expression in command block does not look after NL
Bram Moolenaar <Bram@vim.org>
parents: 28181
diff changeset
765 let lines =<< trim END
26576
5ea6db641b5e patch 8.2.3817: Vim9: Not using NL as command end does not work for :autocmd
Bram Moolenaar <Bram@vim.org>
parents: 26498
diff changeset
766 command BadCommand {
5ea6db641b5e patch 8.2.3817: Vim9: Not using NL as command end does not work for :autocmd
Bram Moolenaar <Bram@vim.org>
parents: 26498
diff changeset
767 echo {
5ea6db641b5e patch 8.2.3817: Vim9: Not using NL as command end does not work for :autocmd
Bram Moolenaar <Bram@vim.org>
parents: 26498
diff changeset
768 'key': 'value',
5ea6db641b5e patch 8.2.3817: Vim9: Not using NL as command end does not work for :autocmd
Bram Moolenaar <Bram@vim.org>
parents: 26498
diff changeset
769 }
5ea6db641b5e patch 8.2.3817: Vim9: Not using NL as command end does not work for :autocmd
Bram Moolenaar <Bram@vim.org>
parents: 26498
diff changeset
770 }
5ea6db641b5e patch 8.2.3817: Vim9: Not using NL as command end does not work for :autocmd
Bram Moolenaar <Bram@vim.org>
parents: 26498
diff changeset
771 BadCommand
5ea6db641b5e patch 8.2.3817: Vim9: Not using NL as command end does not work for :autocmd
Bram Moolenaar <Bram@vim.org>
parents: 26498
diff changeset
772 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27187
diff changeset
773 call v9.CheckScriptFailure(lines, 'E1128:')
31085
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
774 delcommand BadCommand
33193
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
775
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
776 let lines =<< trim END
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
777 vim9script
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
778 command Cmd {
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
779 g:result = [1,
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
780 2]
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
781 }
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
782 Cmd
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
783 END
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
784 call v9.CheckScriptSuccess(lines)
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
785 call assert_equal([1, 2], g:result)
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
786 delcommand Cmd
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
787 unlet! g:result
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
788
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
789 let lines =<< trim END
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
790 vim9script
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
791 command Cmd {
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
792 g:result = and(0x80,
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
793 0x80)
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
794 }
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
795 Cmd
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
796 END
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
797 call v9.CheckScriptSuccess(lines)
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
798 call assert_equal(128, g:result)
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
799 delcommand Cmd
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
800 unlet! g:result
256febd1cbf0 patch 9.0.1876: Vim9: parsing commands with newlines wrong
Christian Brabandt <cb@256bit.org>
parents: 32000
diff changeset
801
25382
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
802 endfunc
b80e4e9c4988 patch 8.2.3228: cannot use a simple block for the :command argument
Bram Moolenaar <Bram@vim.org>
parents: 25226
diff changeset
803
25796
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
804 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
805 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
806 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
807 new
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
808 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
809 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
810 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
811 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
812 delcommand -buffer TwoBuffer
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
813 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
814 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
815 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
816 bwipe!
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
817 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
818 delcommand -buffer OneBuffer
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
819 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
820 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
821 delcommand Global
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
822 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
823 endfunc
60e4892dfa45 patch 8.2.3433: :delcommand does not take a -buffer option
Bram Moolenaar <Bram@vim.org>
parents: 25739
diff changeset
824
26327
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
825 def Test_count_with_quotes()
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
826 command -count GetCount g:nr = <count>
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
827 execute("GetCount 1'2")
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
828 assert_equal(12, g:nr)
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
829 execute("GetCount 1'234'567")
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
830 assert_equal(1'234'567, g:nr)
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
831
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
832 execute("GetCount 1'234'567'890'123'456'789'012")
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
833 assert_equal(v:sizeoflong == 8 ? 9223372036854775807 : 2147483647, g:nr)
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
834
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
835 # TODO: test with negative number once this is supported
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
836
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
837 assert_fails("GetCount '12", "E488:")
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
838 assert_fails("GetCount 12'", "E488:")
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
839 assert_fails("GetCount 1''2", "E488:")
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
840
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
841 assert_fails(":1'2GetCount", 'E492:')
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
842 new
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
843 setline(1, 'text')
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
844 normal ma
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
845 execute(":1, 'aprint")
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
846 bwipe!
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
847
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
848 unlet g:nr
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
849 delcommand GetCount
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
850 enddef
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
851
26498
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
852 func DefCmd(name)
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
853 if len(a:name) > 30
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
854 return
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
855 endif
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
856 exe 'command ' .. a:name .. ' call DefCmd("' .. a:name .. 'x")'
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
857 echo a:name
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
858 exe a:name
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
859 endfunc
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
860
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
861 func Test_recursive_define()
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
862 call DefCmd('Command')
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
863
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
864 let name = 'Command'
31085
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
865 while len(name) <= 30
26498
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
866 exe 'delcommand ' .. name
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
867 let name ..= 'x'
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
868 endwhile
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
869 endfunc
e36aefc588c2 patch 8.2.3779: using freed memory when defining a user command recursively
Bram Moolenaar <Bram@vim.org>
parents: 26327
diff changeset
870
27760
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
871 " Test for using buffer-local ambiguous user-defined commands
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
872 func Test_buflocal_ambiguous_usercmd()
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
873 new
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
874 command -buffer -nargs=1 -complete=sign TestCmd1 echo "Hello"
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
875 command -buffer -nargs=1 -complete=sign TestCmd2 echo "World"
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
876
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
877 call assert_fails("call feedkeys(':TestCmd\<CR>', 'xt')", 'E464:')
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
878 call feedkeys(":TestCmd \<Tab>\<C-B>\"\<CR>", 'xt')
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
879 call assert_equal('"TestCmd ', @:)
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
880
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
881 delcommand TestCmd1
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
882 delcommand TestCmd2
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
883 bw!
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
884 endfunc
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
885
32000
bd01cb097120 patch 9.0.1332: crash when using buffer-local user command in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 31493
diff changeset
886 " Test for using buffer-local user command from cmdwin.
bd01cb097120 patch 9.0.1332: crash when using buffer-local user command in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 31493
diff changeset
887 func Test_buflocal_usercmd_cmdwin()
bd01cb097120 patch 9.0.1332: crash when using buffer-local user command in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 31493
diff changeset
888 new
bd01cb097120 patch 9.0.1332: crash when using buffer-local user command in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 31493
diff changeset
889 command -buffer TestCmd edit Test
bd01cb097120 patch 9.0.1332: crash when using buffer-local user command in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 31493
diff changeset
890 " This used to crash Vim
bd01cb097120 patch 9.0.1332: crash when using buffer-local user command in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 31493
diff changeset
891 call assert_fails("norm q::TestCmd\<CR>", 'E11:')
bd01cb097120 patch 9.0.1332: crash when using buffer-local user command in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 31493
diff changeset
892 bw!
bd01cb097120 patch 9.0.1332: crash when using buffer-local user command in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 31493
diff changeset
893 endfunc
bd01cb097120 patch 9.0.1332: crash when using buffer-local user command in cmdline window
Bram Moolenaar <Bram@vim.org>
parents: 31493
diff changeset
894
27760
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
895 " Test for using a multibyte character in a user command
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
896 func Test_multibyte_in_usercmd()
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
897 command SubJapanesePeriodToDot exe "%s/\u3002/./g"
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
898 new
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
899 call setline(1, "Hello\u3002")
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
900 SubJapanesePeriodToDot
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
901 call assert_equal('Hello.', getline(1))
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
902 bw!
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
903 delcommand SubJapanesePeriodToDot
010fa62d6fe2 patch 8.2.4406: expand functions use confusing argument names
Bram Moolenaar <Bram@vim.org>
parents: 27700
diff changeset
904 endfunc
26327
227543e4181f patch 8.2.3694: cannot use quotes in the count of an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 26107
diff changeset
905
28181
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
906 " Declaring a variable in a {} uses Vim9 script rules, even when defined in a
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
907 " legacy script.
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
908 func Test_block_declaration_legacy_script()
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
909 let lines =<< trim END
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
910 command -range Rename {
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
911 var save = @a
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
912 @a = 'something'
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
913 g:someExpr = @a
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
914 @a = save
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
915 }
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
916 END
30867
0913cd44fdfa patch 9.0.0768: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30203
diff changeset
917 call writefile(lines, 'Xlegacy', 'D')
28181
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
918 source Xlegacy
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
919
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
920 let lines =<< trim END
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
921 let @a = 'saved'
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
922 Rename
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
923 call assert_equal('something', g:someExpr)
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
924 call assert_equal('saved', @a)
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
925
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
926 let g:someExpr = 'xxx'
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
927 let @a = 'also'
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
928 Rename
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
929 call assert_equal('something', g:someExpr)
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
930 call assert_equal('also', @a)
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
931 END
30867
0913cd44fdfa patch 9.0.0768: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30203
diff changeset
932 call writefile(lines, 'Xother', 'D')
28181
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
933 source Xother
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
934
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
935 unlet g:someExpr
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
936 delcommand Rename
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
937 endfunc
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
938
31085
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
939 func Test_comclear_while_listing()
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
940 call CheckRunVimInTerminal()
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
941
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
942 let lines =<< trim END
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
943 set nocompatible
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
944 comclear
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
945 for i in range(1, 999)
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
946 exe 'command ' .. 'Foo' .. i .. ' bar'
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
947 endfor
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
948 au CmdlineLeave : call timer_start(0, {-> execute('comclear')})
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
949 END
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
950 call writefile(lines, 'Xcommandclear', 'D')
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
951 let buf = RunVimInTerminal('-S Xcommandclear', {'rows': 10})
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
952
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
953 " this was using freed memory
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
954 call term_sendkeys(buf, ":command\<CR>")
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
955 call TermWait(buf, 50)
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
956 call term_sendkeys(buf, "j")
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
957 call TermWait(buf, 50)
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
958 call term_sendkeys(buf, "G")
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
959 call term_sendkeys(buf, "\<CR>")
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
960
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
961 call StopVimInTerminal(buf)
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
962 endfunc
8c10a0b22015 patch 9.0.0877: using freed memory with :comclear while listing commands
Bram Moolenaar <Bram@vim.org>
parents: 30904
diff changeset
963
28181
2961a18f9cbf patch 8.2.4616: Vim9: Declarations in a {} block of a user command remain
Bram Moolenaar <Bram@vim.org>
parents: 27760
diff changeset
964
19679
9199f34d838e patch 8.2.0396: cmdexpand.c insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 16475
diff changeset
965 " vim: shiftwidth=2 sts=2 expandtab