annotate src/testdir/test_vim9_cmd.vim @ 24834:adcd50a18236 v8.2.2955

patch 8.2.2955: Vim9: using filter in compiled command does not work Commit: https://github.com/vim/vim/commit/e729ce294f9756165020ad86e3b98b4112e1a6ab Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jun 6 21:38:09 2021 +0200 patch 8.2.2955: Vim9: using filter in compiled command does not work Problem: Vim9: using filter in compiled command does not work. Solution: Generate EXEC including the command modifier.
author Bram Moolenaar <Bram@vim.org>
date Sun, 06 Jun 2021 21:45:03 +0200
parents 1bed37e82c2e
children 7124992f26ef
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20170
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1 " Test commands that are not compiled in a :def function
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2
20172
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
3 source check.vim
20170
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
4 source vim9.vim
22772
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
5 source term_util.vim
21156
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
6 source view_util.vim
20170
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
7
23938
2a885d095bff patch 8.2.2511: Vim9: cannot use Vim9 script syntax in some places
Bram Moolenaar <Bram@vim.org>
parents: 23823
diff changeset
8 def Test_vim9cmd()
2a885d095bff patch 8.2.2511: Vim9: cannot use Vim9 script syntax in some places
Bram Moolenaar <Bram@vim.org>
parents: 23823
diff changeset
9 var lines =<< trim END
2a885d095bff patch 8.2.2511: Vim9: cannot use Vim9 script syntax in some places
Bram Moolenaar <Bram@vim.org>
parents: 23823
diff changeset
10 vim9cmd var x = 123
2a885d095bff patch 8.2.2511: Vim9: cannot use Vim9 script syntax in some places
Bram Moolenaar <Bram@vim.org>
parents: 23823
diff changeset
11 let s:y = 'yes'
2a885d095bff patch 8.2.2511: Vim9: cannot use Vim9 script syntax in some places
Bram Moolenaar <Bram@vim.org>
parents: 23823
diff changeset
12 vim9c assert_equal(123, x)
2a885d095bff patch 8.2.2511: Vim9: cannot use Vim9 script syntax in some places
Bram Moolenaar <Bram@vim.org>
parents: 23823
diff changeset
13 vim9cm assert_equal('yes', y)
2a885d095bff patch 8.2.2511: Vim9: cannot use Vim9 script syntax in some places
Bram Moolenaar <Bram@vim.org>
parents: 23823
diff changeset
14 END
2a885d095bff patch 8.2.2511: Vim9: cannot use Vim9 script syntax in some places
Bram Moolenaar <Bram@vim.org>
parents: 23823
diff changeset
15 CheckScriptSuccess(lines)
24596
acd9220bdd0b patch 8.2.2837: various code lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24545
diff changeset
16 assert_fails('vim9cmd', 'E1164:')
23938
2a885d095bff patch 8.2.2511: Vim9: cannot use Vim9 script syntax in some places
Bram Moolenaar <Bram@vim.org>
parents: 23823
diff changeset
17 enddef
2a885d095bff patch 8.2.2511: Vim9: cannot use Vim9 script syntax in some places
Bram Moolenaar <Bram@vim.org>
parents: 23823
diff changeset
18
20170
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
19 def Test_edit_wildcards()
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
20 var filename = 'Xtest'
20170
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
21 edit `=filename`
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
22 assert_equal('Xtest', bufname())
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
23
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
24 var filenr = 123
20170
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
25 edit Xtest`=filenr`
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
26 assert_equal('Xtest123', bufname())
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
27
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
28 filenr = 77
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
29 edit `=filename``=filenr`
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
30 assert_equal('Xtest77', bufname())
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
31
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
32 edit X`=filename`xx`=filenr`yy
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
33 assert_equal('XXtestxx77yy', bufname())
23197
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
34
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
35 CheckDefFailure(['edit `=xxx`'], 'E1001:')
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
36 CheckDefFailure(['edit `="foo"'], 'E1083:')
24806
28127371aa18 patch 8.2.2941: Vim9: using does not handle a list of strings
Bram Moolenaar <Bram@vim.org>
parents: 24614
diff changeset
37
28127371aa18 patch 8.2.2941: Vim9: using does not handle a list of strings
Bram Moolenaar <Bram@vim.org>
parents: 24614
diff changeset
38 var files = ['file 1', 'file%2', 'file# 3']
28127371aa18 patch 8.2.2941: Vim9: using does not handle a list of strings
Bram Moolenaar <Bram@vim.org>
parents: 24614
diff changeset
39 args `=files`
28127371aa18 patch 8.2.2941: Vim9: using does not handle a list of strings
Bram Moolenaar <Bram@vim.org>
parents: 24614
diff changeset
40 assert_equal(files, argv())
20170
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
41 enddef
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
42
23370
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
43 def Test_expand_alternate_file()
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
44 var lines =<< trim END
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
45 edit Xfileone
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
46 var bone = bufnr()
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
47 edit Xfiletwo
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
48 var btwo = bufnr()
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
49 edit Xfilethree
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
50 var bthree = bufnr()
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
51
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
52 edit #
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
53 assert_equal(bthree, bufnr())
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
54 edit %%
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
55 assert_equal(btwo, bufnr())
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
56 edit %% # comment
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
57 assert_equal(bthree, bufnr())
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
58 edit %%yy
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
59 assert_equal('Xfiletwoyy', bufname())
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
60
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
61 exe "edit %%" .. bone
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
62 assert_equal(bone, bufnr())
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
63 exe "edit %%" .. btwo .. "xx"
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
64 assert_equal('Xfiletwoxx', bufname())
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
65
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
66 next Xfileone Xfiletwo Xfilethree
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
67 assert_equal('Xfileone', argv(0))
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
68 assert_equal('Xfiletwo', argv(1))
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
69 assert_equal('Xfilethree', argv(2))
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
70 next %%%zz
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
71 assert_equal('Xfileone', argv(0))
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
72 assert_equal('Xfiletwo', argv(1))
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
73 assert_equal('Xfilethreezz', argv(2))
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
74
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
75 v:oldfiles = ['Xonefile', 'Xtwofile']
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
76 edit %%<1
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
77 assert_equal('Xonefile', bufname())
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
78 edit %%<2
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
79 assert_equal('Xtwofile', bufname())
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
80 assert_fails('edit %%<3', 'E684:')
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
81
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
82 edit Xfileone.vim
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
83 edit Xfiletwo
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
84 edit %%:r
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
85 assert_equal('Xfileone', bufname())
23711
29eccef07e2f patch 8.2.2397: Vim9: "%%" not seen as alternate file name for ":bdel"
Bram Moolenaar <Bram@vim.org>
parents: 23709
diff changeset
86
29eccef07e2f patch 8.2.2397: Vim9: "%%" not seen as alternate file name for ":bdel"
Bram Moolenaar <Bram@vim.org>
parents: 23709
diff changeset
87 assert_false(bufexists('altfoo'))
29eccef07e2f patch 8.2.2397: Vim9: "%%" not seen as alternate file name for ":bdel"
Bram Moolenaar <Bram@vim.org>
parents: 23709
diff changeset
88 edit altfoo
29eccef07e2f patch 8.2.2397: Vim9: "%%" not seen as alternate file name for ":bdel"
Bram Moolenaar <Bram@vim.org>
parents: 23709
diff changeset
89 edit bar
29eccef07e2f patch 8.2.2397: Vim9: "%%" not seen as alternate file name for ":bdel"
Bram Moolenaar <Bram@vim.org>
parents: 23709
diff changeset
90 assert_true(bufexists('altfoo'))
29eccef07e2f patch 8.2.2397: Vim9: "%%" not seen as alternate file name for ":bdel"
Bram Moolenaar <Bram@vim.org>
parents: 23709
diff changeset
91 assert_true(buflisted('altfoo'))
29eccef07e2f patch 8.2.2397: Vim9: "%%" not seen as alternate file name for ":bdel"
Bram Moolenaar <Bram@vim.org>
parents: 23709
diff changeset
92 bdel %%
29eccef07e2f patch 8.2.2397: Vim9: "%%" not seen as alternate file name for ":bdel"
Bram Moolenaar <Bram@vim.org>
parents: 23709
diff changeset
93 assert_true(bufexists('altfoo'))
29eccef07e2f patch 8.2.2397: Vim9: "%%" not seen as alternate file name for ":bdel"
Bram Moolenaar <Bram@vim.org>
parents: 23709
diff changeset
94 assert_false(buflisted('altfoo'))
29eccef07e2f patch 8.2.2397: Vim9: "%%" not seen as alternate file name for ":bdel"
Bram Moolenaar <Bram@vim.org>
parents: 23709
diff changeset
95 bwipe! altfoo
29eccef07e2f patch 8.2.2397: Vim9: "%%" not seen as alternate file name for ":bdel"
Bram Moolenaar <Bram@vim.org>
parents: 23709
diff changeset
96 bwipe! bar
23370
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
97 END
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
98 CheckDefAndScriptSuccess(lines)
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
99 enddef
622e90acea5d patch 8.2.2228: Vim9: cannot use ":e #" because # starts a comment
Bram Moolenaar <Bram@vim.org>
parents: 23348
diff changeset
100
23344
1f37fd20f851 patch 8.2.2215: Vim9: not recognized in global command
Bram Moolenaar <Bram@vim.org>
parents: 23274
diff changeset
101 def Test_global_backtick_expansion()
1f37fd20f851 patch 8.2.2215: Vim9: not recognized in global command
Bram Moolenaar <Bram@vim.org>
parents: 23274
diff changeset
102 new
1f37fd20f851 patch 8.2.2215: Vim9: not recognized in global command
Bram Moolenaar <Bram@vim.org>
parents: 23274
diff changeset
103 setline(1, 'xx')
1f37fd20f851 patch 8.2.2215: Vim9: not recognized in global command
Bram Moolenaar <Bram@vim.org>
parents: 23274
diff changeset
104 var name = 'foobar'
1f37fd20f851 patch 8.2.2215: Vim9: not recognized in global command
Bram Moolenaar <Bram@vim.org>
parents: 23274
diff changeset
105 g/^xx/s/.*/`=name`
1f37fd20f851 patch 8.2.2215: Vim9: not recognized in global command
Bram Moolenaar <Bram@vim.org>
parents: 23274
diff changeset
106 assert_equal('foobar', getline(1))
1f37fd20f851 patch 8.2.2215: Vim9: not recognized in global command
Bram Moolenaar <Bram@vim.org>
parents: 23274
diff changeset
107 bwipe!
1f37fd20f851 patch 8.2.2215: Vim9: not recognized in global command
Bram Moolenaar <Bram@vim.org>
parents: 23274
diff changeset
108 enddef
1f37fd20f851 patch 8.2.2215: Vim9: not recognized in global command
Bram Moolenaar <Bram@vim.org>
parents: 23274
diff changeset
109
23521
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
110 def Test_folddo_backtick_expansion()
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
111 new
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
112 var name = 'xxx'
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
113 folddoopen edit `=name`
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
114 assert_equal('xxx', bufname())
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
115 bwipe!
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
116
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
117 new
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
118 setline(1, ['one', 'two'])
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
119 set nomodified
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
120 :1,2fold
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
121 foldclose
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
122 folddoclose edit `=name`
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
123 assert_equal('xxx', bufname())
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
124 bwipe!
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
125 enddef
0ef920a03380 patch 8.2.2303: Vim9: backtick expansion doesn't work for :foldopen
Bram Moolenaar <Bram@vim.org>
parents: 23513
diff changeset
126
20172
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
127 def Test_hardcopy_wildcards()
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
128 CheckUnix
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
129 CheckFeature postscript
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
130
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
131 var outfile = 'print'
20172
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
132 hardcopy > X`=outfile`.ps
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
133 assert_true(filereadable('Xprint.ps'))
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
134
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
135 delete('Xprint.ps')
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
136 enddef
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
137
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
138 def Test_syn_include_wildcards()
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
139 writefile(['syn keyword Found found'], 'Xthemine.vim')
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
140 var save_rtp = &rtp
20172
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
141 &rtp = '.'
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
142
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
143 var fname = 'mine'
20172
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
144 syn include @Group Xthe`=fname`.vim
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
145 assert_match('Found.* contained found', execute('syn list Found'))
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
146
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
147 &rtp = save_rtp
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
148 delete('Xthemine.vim')
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
149 enddef
1d84eaed0ec8 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Bram Moolenaar <Bram@vim.org>
parents: 20170
diff changeset
150
21048
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
151 def Test_echo_linebreak()
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
152 var lines =<< trim END
21048
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
153 vim9script
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
154 redir @a
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
155 echo 'one'
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
156 .. 'two'
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
157 redir END
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
158 assert_equal("\nonetwo", @a)
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
159 END
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
160 CheckScriptSuccess(lines)
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
161
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
162 lines =<< trim END
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
163 vim9script
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
164 redir @a
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
165 echo 11 +
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
166 77
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
167 - 22
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
168 redir END
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
169 assert_equal("\n66", @a)
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
170 END
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
171 CheckScriptSuccess(lines)
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
172 enddef
524fa1d42e1e patch 8.2.1075: Vim9: no line break allowed in :echo expression
Bram Moolenaar <Bram@vim.org>
parents: 20353
diff changeset
173
22500
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
174 def Test_condition_types()
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
175 var lines =<< trim END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
176 if 'text'
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
177 endif
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
178 END
22860
53acb89ec9f2 patch 8.2.1977: Vim9: error for using a string in a condition is confusing
Bram Moolenaar <Bram@vim.org>
parents: 22814
diff changeset
179 CheckDefAndScriptFailure(lines, 'E1135:', 1)
22500
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
180
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
181 lines =<< trim END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
182 if [1]
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
183 endif
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
184 END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
185 CheckDefFailure(lines, 'E1012:', 1)
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
186 CheckScriptFailure(['vim9script'] + lines, 'E745:', 2)
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
187
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
188 lines =<< trim END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
189 g:cond = 'text'
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
190 if g:cond
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
191 endif
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
192 END
22860
53acb89ec9f2 patch 8.2.1977: Vim9: error for using a string in a condition is confusing
Bram Moolenaar <Bram@vim.org>
parents: 22814
diff changeset
193 CheckDefExecAndScriptFailure(lines, 'E1135:', 2)
22500
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
194
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
195 lines =<< trim END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
196 g:cond = 0
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
197 if g:cond
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
198 elseif 'text'
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
199 endif
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
200 END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
201 CheckDefFailure(lines, 'E1012:', 3)
22860
53acb89ec9f2 patch 8.2.1977: Vim9: error for using a string in a condition is confusing
Bram Moolenaar <Bram@vim.org>
parents: 22814
diff changeset
202 CheckScriptFailure(['vim9script'] + lines, 'E1135:', 4)
22500
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
203
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
204 lines =<< trim END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
205 if g:cond
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
206 elseif [1]
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
207 endif
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
208 END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
209 CheckDefFailure(lines, 'E1012:', 2)
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
210 CheckScriptFailure(['vim9script'] + lines, 'E745:', 3)
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
211
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
212 lines =<< trim END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
213 g:cond = 'text'
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
214 if 0
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
215 elseif g:cond
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
216 endif
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
217 END
22860
53acb89ec9f2 patch 8.2.1977: Vim9: error for using a string in a condition is confusing
Bram Moolenaar <Bram@vim.org>
parents: 22814
diff changeset
218 CheckDefExecAndScriptFailure(lines, 'E1135:', 3)
22500
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
219
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
220 lines =<< trim END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
221 while 'text'
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
222 endwhile
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
223 END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
224 CheckDefFailure(lines, 'E1012:', 1)
22860
53acb89ec9f2 patch 8.2.1977: Vim9: error for using a string in a condition is confusing
Bram Moolenaar <Bram@vim.org>
parents: 22814
diff changeset
225 CheckScriptFailure(['vim9script'] + lines, 'E1135:', 2)
22500
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
226
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
227 lines =<< trim END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
228 while [1]
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
229 endwhile
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
230 END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
231 CheckDefFailure(lines, 'E1012:', 1)
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
232 CheckScriptFailure(['vim9script'] + lines, 'E745:', 2)
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
233
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
234 lines =<< trim END
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
235 g:cond = 'text'
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
236 while g:cond
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
237 endwhile
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
238 END
22860
53acb89ec9f2 patch 8.2.1977: Vim9: error for using a string in a condition is confusing
Bram Moolenaar <Bram@vim.org>
parents: 22814
diff changeset
239 CheckDefExecAndScriptFailure(lines, 'E1135:', 2)
22500
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
240 enddef
ef8a3177edc1 patch 8.2.1798: Vim9: trinary operator condition is too permissive
Bram Moolenaar <Bram@vim.org>
parents: 22494
diff changeset
241
21050
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
242 def Test_if_linebreak()
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
243 var lines =<< trim END
21050
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
244 vim9script
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
245 if 1 &&
22494
4c21f7f6f9e3 patch 8.2.1795: Vim9: operators && and || have a confusing result
Bram Moolenaar <Bram@vim.org>
parents: 22435
diff changeset
246 true
4c21f7f6f9e3 patch 8.2.1795: Vim9: operators && and || have a confusing result
Bram Moolenaar <Bram@vim.org>
parents: 22435
diff changeset
247 || 1
21050
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
248 g:res = 42
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
249 endif
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
250 assert_equal(42, g:res)
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
251 END
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
252 CheckScriptSuccess(lines)
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
253 unlet g:res
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
254
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
255 lines =<< trim END
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
256 vim9script
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
257 if 1 &&
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
258 0
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
259 g:res = 0
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
260 elseif 0 ||
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
261 0
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
262 || 1
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
263 g:res = 12
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
264 endif
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
265 assert_equal(12, g:res)
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
266 END
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
267 CheckScriptSuccess(lines)
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
268 unlet g:res
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
269 enddef
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
270
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
271 def Test_while_linebreak()
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
272 var lines =<< trim END
21050
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
273 vim9script
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
274 var nr = 0
21056
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
275 while nr <
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
276 10 + 3
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
277 nr = nr
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
278 + 4
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
279 endwhile
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
280 assert_equal(16, nr)
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
281 END
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
282 CheckScriptSuccess(lines)
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
283
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
284 lines =<< trim END
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
285 vim9script
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
286 var nr = 0
21056
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
287 while nr
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
288 <
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
289 10
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
290 +
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
291 3
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
292 nr = nr
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
293 +
a7c202f5cbe9 patch 8.2.1079: Vim9: no line break allowed in a while loop
Bram Moolenaar <Bram@vim.org>
parents: 21050
diff changeset
294 4
21050
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
295 endwhile
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
296 assert_equal(16, nr)
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
297 END
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
298 CheckScriptSuccess(lines)
7a9daf73a724 patch 8.2.1076: Vim9: no line break allowed in :if expression
Bram Moolenaar <Bram@vim.org>
parents: 21048
diff changeset
299 enddef
20170
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
300
21058
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
301 def Test_for_linebreak()
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
302 var lines =<< trim END
21058
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
303 vim9script
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
304 var nr = 0
21058
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
305 for x
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
306 in
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
307 [1, 2, 3, 4]
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
308 nr = nr + x
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
309 endfor
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
310 assert_equal(10, nr)
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
311 END
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
312 CheckScriptSuccess(lines)
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
313
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
314 lines =<< trim END
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
315 vim9script
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
316 var nr = 0
21058
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
317 for x
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
318 in
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
319 [1, 2,
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
320 3, 4
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
321 ]
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
322 nr = nr
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
323 +
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
324 x
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
325 endfor
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
326 assert_equal(10, nr)
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
327 END
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
328 CheckScriptSuccess(lines)
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
329 enddef
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
330
23966
09bde146adcb patch 8.2.2525: Vim9: only local variables checked for a name
Bram Moolenaar <Bram@vim.org>
parents: 23938
diff changeset
331 def MethodAfterLinebreak(arg: string)
09bde146adcb patch 8.2.2525: Vim9: only local variables checked for a name
Bram Moolenaar <Bram@vim.org>
parents: 23938
diff changeset
332 arg
09bde146adcb patch 8.2.2525: Vim9: only local variables checked for a name
Bram Moolenaar <Bram@vim.org>
parents: 23938
diff changeset
333 ->setline(1)
09bde146adcb patch 8.2.2525: Vim9: only local variables checked for a name
Bram Moolenaar <Bram@vim.org>
parents: 23938
diff changeset
334 enddef
09bde146adcb patch 8.2.2525: Vim9: only local variables checked for a name
Bram Moolenaar <Bram@vim.org>
parents: 23938
diff changeset
335
21130
4a1e8086759b patch 8.2.1116: Vim9: parsing command checks for list twice
Bram Moolenaar <Bram@vim.org>
parents: 21122
diff changeset
336 def Test_method_call_linebreak()
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
337 var lines =<< trim END
21122
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
338 vim9script
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
339 var res = []
21122
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
340 func RetArg(
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
341 arg
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
342 )
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
343 let s:res = a:arg
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
344 endfunc
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
345 [1,
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
346 2,
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
347 3]->RetArg()
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
348 assert_equal([1, 2, 3], res)
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
349 END
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
350 CheckScriptSuccess(lines)
23823
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
351
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
352 lines =<< trim END
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
353 new
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
354 var name = [1, 2]
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
355 name
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
356 ->copy()
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
357 ->setline(1)
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
358 assert_equal(['1', '2'], getline(1, 2))
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
359 bwipe!
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
360 END
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
361 CheckDefAndScriptSuccess(lines)
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
362
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
363 lines =<< trim END
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
364 new
24067
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
365 def Foo(): string
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
366 return 'the text'
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
367 enddef
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
368 def Bar(F: func): string
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
369 return F()
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
370 enddef
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
371 def Test()
24124
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
372 Foo ->Bar()
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
373 ->setline(1)
24067
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
374 enddef
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
375 Test()
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
376 assert_equal('the text', getline(1))
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
377 bwipe!
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
378 END
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
379 CheckDefAndScriptSuccess(lines)
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
380
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
381 lines =<< trim END
780dec2ffa6b patch 8.2.2575: Vim9: a function name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 24049
diff changeset
382 new
23823
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
383 g:shortlist
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
384 ->copy()
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
385 ->setline(1)
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
386 assert_equal(['1', '2'], getline(1, 2))
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
387 bwipe!
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
388 END
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
389 g:shortlist = [1, 2]
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
390 CheckDefAndScriptSuccess(lines)
262ab14b27db patch 8.2.2453: Vim9: a variable name with "->" in the next line doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 23711
diff changeset
391 unlet g:shortlist
23966
09bde146adcb patch 8.2.2525: Vim9: only local variables checked for a name
Bram Moolenaar <Bram@vim.org>
parents: 23938
diff changeset
392
09bde146adcb patch 8.2.2525: Vim9: only local variables checked for a name
Bram Moolenaar <Bram@vim.org>
parents: 23938
diff changeset
393 new
09bde146adcb patch 8.2.2525: Vim9: only local variables checked for a name
Bram Moolenaar <Bram@vim.org>
parents: 23938
diff changeset
394 MethodAfterLinebreak('foobar')
09bde146adcb patch 8.2.2525: Vim9: only local variables checked for a name
Bram Moolenaar <Bram@vim.org>
parents: 23938
diff changeset
395 assert_equal('foobar', getline(1))
09bde146adcb patch 8.2.2525: Vim9: only local variables checked for a name
Bram Moolenaar <Bram@vim.org>
parents: 23938
diff changeset
396 bwipe!
24049
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
397
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
398 lines =<< trim END
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
399 vim9script
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
400 def Foo(): string
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
401 return '# some text'
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
402 enddef
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
403
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
404 def Bar(F: func): string
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
405 return F()
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
406 enddef
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
407
24124
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
408 Foo->Bar()
24049
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
409 ->setline(1)
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
410 END
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
411 CheckScriptSuccess(lines)
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
412 assert_equal('# some text', getline(1))
fc4c2beea99a patch 8.2.2566: Vim9: Function name is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 23966
diff changeset
413 bwipe!
21122
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
414 enddef
839ace6773aa patch 8.2.1112: Vim9: no line continuation allowed in method call
Bram Moolenaar <Bram@vim.org>
parents: 21058
diff changeset
415
23709
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
416 def Test_method_call_whitespace()
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
417 var lines =<< trim END
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
418 new
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
419 var yank = 'text'
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
420 yank->setline(1)
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
421 yank ->setline(2)
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
422 yank-> setline(3)
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
423 yank -> setline(4)
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
424 assert_equal(['text', 'text', 'text', 'text'], getline(1, 4))
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
425 bwipe!
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
426 END
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
427 CheckDefAndScriptSuccess(lines)
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
428 enddef
a0c4d04a58c4 patch 8.2.2396: Vim9: no white space allowed before "->"
Bram Moolenaar <Bram@vim.org>
parents: 23671
diff changeset
429
24124
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
430 def Test_method_and_user_command()
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
431 var lines =<< trim END
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
432 vim9script
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
433 def Cmd()
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
434 g:didFunc = 1
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
435 enddef
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
436 command Cmd g:didCmd = 1
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
437 Cmd
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
438 assert_equal(1, g:didCmd)
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
439 Cmd()
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
440 assert_equal(1, g:didFunc)
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
441 unlet g:didFunc
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
442 unlet g:didCmd
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
443
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
444 def InDefFunc()
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
445 Cmd
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
446 assert_equal(1, g:didCmd)
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
447 Cmd()
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
448 assert_equal(1, g:didFunc)
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
449 unlet g:didFunc
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
450 unlet g:didCmd
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
451 enddef
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
452 InDefFunc()
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
453 END
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
454 CheckScriptSuccess(lines)
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
455 enddef
f4061617c438 patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents: 24067
diff changeset
456
22685
80b4e604d1d5 patch 8.2.1891: Vim9: skipping over expression doesn't handle line breaks
Bram Moolenaar <Bram@vim.org>
parents: 22649
diff changeset
457 def Test_skipped_expr_linebreak()
80b4e604d1d5 patch 8.2.1891: Vim9: skipping over expression doesn't handle line breaks
Bram Moolenaar <Bram@vim.org>
parents: 22649
diff changeset
458 if 0
80b4e604d1d5 patch 8.2.1891: Vim9: skipping over expression doesn't handle line breaks
Bram Moolenaar <Bram@vim.org>
parents: 22649
diff changeset
459 var x = []
23428
5807e3958e38 patch 8.2.2257: Vim9: using -> for lambda is ambiguous
Bram Moolenaar <Bram@vim.org>
parents: 23422
diff changeset
460 ->map(() => 0)
22685
80b4e604d1d5 patch 8.2.1891: Vim9: skipping over expression doesn't handle line breaks
Bram Moolenaar <Bram@vim.org>
parents: 22649
diff changeset
461 endif
80b4e604d1d5 patch 8.2.1891: Vim9: skipping over expression doesn't handle line breaks
Bram Moolenaar <Bram@vim.org>
parents: 22649
diff changeset
462 enddef
80b4e604d1d5 patch 8.2.1891: Vim9: skipping over expression doesn't handle line breaks
Bram Moolenaar <Bram@vim.org>
parents: 22649
diff changeset
463
21212
874a28fac941 patch 8.2.1157: Vim9: dict.name is not recognized as an expression
Bram Moolenaar <Bram@vim.org>
parents: 21196
diff changeset
464 def Test_dict_member()
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23011
diff changeset
465 var test: dict<list<number>> = {data: [3, 1, 2]}
21212
874a28fac941 patch 8.2.1157: Vim9: dict.name is not recognized as an expression
Bram Moolenaar <Bram@vim.org>
parents: 21196
diff changeset
466 test.data->sort()
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23011
diff changeset
467 assert_equal({data: [1, 2, 3]}, test)
21212
874a28fac941 patch 8.2.1157: Vim9: dict.name is not recognized as an expression
Bram Moolenaar <Bram@vim.org>
parents: 21196
diff changeset
468 test.data
874a28fac941 patch 8.2.1157: Vim9: dict.name is not recognized as an expression
Bram Moolenaar <Bram@vim.org>
parents: 21196
diff changeset
469 ->reverse()
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23011
diff changeset
470 assert_equal({data: [3, 2, 1]}, test)
21212
874a28fac941 patch 8.2.1157: Vim9: dict.name is not recognized as an expression
Bram Moolenaar <Bram@vim.org>
parents: 21196
diff changeset
471
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
472 var lines =<< trim END
21212
874a28fac941 patch 8.2.1157: Vim9: dict.name is not recognized as an expression
Bram Moolenaar <Bram@vim.org>
parents: 21196
diff changeset
473 vim9script
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23011
diff changeset
474 var test: dict<list<number>> = {data: [3, 1, 2]}
21212
874a28fac941 patch 8.2.1157: Vim9: dict.name is not recognized as an expression
Bram Moolenaar <Bram@vim.org>
parents: 21196
diff changeset
475 test.data->sort()
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23011
diff changeset
476 assert_equal({data: [1, 2, 3]}, test)
21212
874a28fac941 patch 8.2.1157: Vim9: dict.name is not recognized as an expression
Bram Moolenaar <Bram@vim.org>
parents: 21196
diff changeset
477 END
874a28fac941 patch 8.2.1157: Vim9: dict.name is not recognized as an expression
Bram Moolenaar <Bram@vim.org>
parents: 21196
diff changeset
478 CheckScriptSuccess(lines)
874a28fac941 patch 8.2.1157: Vim9: dict.name is not recognized as an expression
Bram Moolenaar <Bram@vim.org>
parents: 21196
diff changeset
479 enddef
874a28fac941 patch 8.2.1157: Vim9: dict.name is not recognized as an expression
Bram Moolenaar <Bram@vim.org>
parents: 21196
diff changeset
480
21156
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
481 def Test_bar_after_command()
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
482 def RedrawAndEcho()
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
483 var x = 'did redraw'
21156
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
484 redraw | echo x
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
485 enddef
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
486 RedrawAndEcho()
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
487 assert_match('did redraw', Screenline(&lines))
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
488
21158
157fe2d26e16 patch 8.2.1130: Vim9: bar not recognized after function call
Bram Moolenaar <Bram@vim.org>
parents: 21156
diff changeset
489 def CallAndEcho()
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
490 var x = 'did redraw'
21158
157fe2d26e16 patch 8.2.1130: Vim9: bar not recognized after function call
Bram Moolenaar <Bram@vim.org>
parents: 21156
diff changeset
491 reg_executing() | echo x
157fe2d26e16 patch 8.2.1130: Vim9: bar not recognized after function call
Bram Moolenaar <Bram@vim.org>
parents: 21156
diff changeset
492 enddef
157fe2d26e16 patch 8.2.1130: Vim9: bar not recognized after function call
Bram Moolenaar <Bram@vim.org>
parents: 21156
diff changeset
493 CallAndEcho()
157fe2d26e16 patch 8.2.1130: Vim9: bar not recognized after function call
Bram Moolenaar <Bram@vim.org>
parents: 21156
diff changeset
494 assert_match('did redraw', Screenline(&lines))
157fe2d26e16 patch 8.2.1130: Vim9: bar not recognized after function call
Bram Moolenaar <Bram@vim.org>
parents: 21156
diff changeset
495
21156
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
496 if has('unix')
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
497 # bar in filter write command does not start new command
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
498 def WriteToShell()
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
499 new
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
500 setline(1, 'some text')
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
501 w !cat | cat > Xoutfile
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
502 bwipe!
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
503 enddef
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
504 WriteToShell()
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
505 assert_equal(['some text'], readfile('Xoutfile'))
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
506 delete('Xoutfile')
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
507
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
508 # bar in filter read command does not start new command
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
509 def ReadFromShell()
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
510 new
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
511 r! echo hello there | cat > Xoutfile
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
512 r !echo again | cat >> Xoutfile
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
513 bwipe!
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
514 enddef
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
515 ReadFromShell()
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
516 assert_equal(['hello there', 'again'], readfile('Xoutfile'))
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
517 delete('Xoutfile')
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
518 endif
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
519 enddef
eb6c27af07dd patch 8.2.1129: Vim9: bar not recognized after not compiled command
Bram Moolenaar <Bram@vim.org>
parents: 21130
diff changeset
520
21255
4be91a7eafb2 patch 8.2.1178: Vim9: filter function recognized as command modifier
Bram Moolenaar <Bram@vim.org>
parents: 21212
diff changeset
521 def Test_filter_is_not_modifier()
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23011
diff changeset
522 var tags = [{a: 1, b: 2}, {x: 3, y: 4}]
23428
5807e3958e38 patch 8.2.2257: Vim9: using -> for lambda is ambiguous
Bram Moolenaar <Bram@vim.org>
parents: 23422
diff changeset
523 filter(tags, ( _, v) => has_key(v, 'x') ? 1 : 0 )
23072
4b398a229b0b patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents: 23011
diff changeset
524 assert_equal([{x: 3, y: 4}], tags)
21255
4be91a7eafb2 patch 8.2.1178: Vim9: filter function recognized as command modifier
Bram Moolenaar <Bram@vim.org>
parents: 21212
diff changeset
525 enddef
4be91a7eafb2 patch 8.2.1178: Vim9: filter function recognized as command modifier
Bram Moolenaar <Bram@vim.org>
parents: 21212
diff changeset
526
22772
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
527 def Test_command_modifier_filter()
22750
f945413264d7 patch 8.2.1923: Vim9: "filter" command modifier doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 22691
diff changeset
528 var lines =<< trim END
f945413264d7 patch 8.2.1923: Vim9: "filter" command modifier doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 22691
diff changeset
529 final expected = "\nType Name Content\n c \"c piyo"
f945413264d7 patch 8.2.1923: Vim9: "filter" command modifier doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 22691
diff changeset
530 @a = 'hoge'
f945413264d7 patch 8.2.1923: Vim9: "filter" command modifier doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 22691
diff changeset
531 @b = 'fuga'
f945413264d7 patch 8.2.1923: Vim9: "filter" command modifier doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 22691
diff changeset
532 @c = 'piyo'
f945413264d7 patch 8.2.1923: Vim9: "filter" command modifier doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 22691
diff changeset
533
f945413264d7 patch 8.2.1923: Vim9: "filter" command modifier doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 22691
diff changeset
534 assert_equal(execute('filter /piyo/ registers abc'), expected)
f945413264d7 patch 8.2.1923: Vim9: "filter" command modifier doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 22691
diff changeset
535 END
f945413264d7 patch 8.2.1923: Vim9: "filter" command modifier doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 22691
diff changeset
536 CheckDefAndScriptSuccess(lines)
24834
adcd50a18236 patch 8.2.2955: Vim9: using filter in compiled command does not work
Bram Moolenaar <Bram@vim.org>
parents: 24816
diff changeset
537
adcd50a18236 patch 8.2.2955: Vim9: using filter in compiled command does not work
Bram Moolenaar <Bram@vim.org>
parents: 24816
diff changeset
538 # also do this compiled
adcd50a18236 patch 8.2.2955: Vim9: using filter in compiled command does not work
Bram Moolenaar <Bram@vim.org>
parents: 24816
diff changeset
539 lines =<< trim END
adcd50a18236 patch 8.2.2955: Vim9: using filter in compiled command does not work
Bram Moolenaar <Bram@vim.org>
parents: 24816
diff changeset
540 @a = 'very specific z3d37dh234 string'
adcd50a18236 patch 8.2.2955: Vim9: using filter in compiled command does not work
Bram Moolenaar <Bram@vim.org>
parents: 24816
diff changeset
541 filter z3d37dh234 registers
adcd50a18236 patch 8.2.2955: Vim9: using filter in compiled command does not work
Bram Moolenaar <Bram@vim.org>
parents: 24816
diff changeset
542 assert_match('very specific z3d37dh234 string', Screenline(&lines))
adcd50a18236 patch 8.2.2955: Vim9: using filter in compiled command does not work
Bram Moolenaar <Bram@vim.org>
parents: 24816
diff changeset
543 END
adcd50a18236 patch 8.2.2955: Vim9: using filter in compiled command does not work
Bram Moolenaar <Bram@vim.org>
parents: 24816
diff changeset
544 CheckDefAndScriptSuccess(lines)
22750
f945413264d7 patch 8.2.1923: Vim9: "filter" command modifier doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 22691
diff changeset
545 enddef
f945413264d7 patch 8.2.1923: Vim9: "filter" command modifier doesn't work
Bram Moolenaar <Bram@vim.org>
parents: 22691
diff changeset
546
22772
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
547 def Test_win_command_modifiers()
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
548 assert_equal(1, winnr('$'))
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
549
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
550 set splitright
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
551 vsplit
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
552 assert_equal(2, winnr())
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
553 close
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
554 aboveleft vsplit
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
555 assert_equal(1, winnr())
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
556 close
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
557 set splitright&
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
558
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
559 vsplit
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
560 assert_equal(1, winnr())
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
561 close
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
562 belowright vsplit
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
563 assert_equal(2, winnr())
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
564 close
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
565 rightbelow vsplit
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
566 assert_equal(2, winnr())
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
567 close
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
568
22784
9a6431f4b27a patch 8.2.1940: Vim9: browse modifier test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents: 22778
diff changeset
569 if has('browse')
9a6431f4b27a patch 8.2.1940: Vim9: browse modifier test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents: 22778
diff changeset
570 browse set
9a6431f4b27a patch 8.2.1940: Vim9: browse modifier test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents: 22778
diff changeset
571 assert_equal('option-window', expand('%'))
9a6431f4b27a patch 8.2.1940: Vim9: browse modifier test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents: 22778
diff changeset
572 close
9a6431f4b27a patch 8.2.1940: Vim9: browse modifier test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents: 22778
diff changeset
573 endif
22772
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
574
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
575 vsplit
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
576 botright split
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
577 assert_equal(3, winnr())
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
578 assert_equal(&columns, winwidth(0))
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
579 close
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
580 close
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
581
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
582 vsplit
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
583 topleft split
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
584 assert_equal(1, winnr())
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
585 assert_equal(&columns, winwidth(0))
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
586 close
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
587 close
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
588
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
589 gettabinfo()->len()->assert_equal(1)
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
590 tab split
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
591 gettabinfo()->len()->assert_equal(2)
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
592 tabclose
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
593
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
594 vertical new
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
595 assert_inrange(&columns / 2 - 2, &columns / 2 + 1, winwidth(0))
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
596 close
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
597 enddef
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
598
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
599 func Test_command_modifier_confirm()
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
600 CheckNotGui
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
601 CheckRunVimInTerminal
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
602
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
603 " Test for saving all the modified buffers
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
604 let lines =<< trim END
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
605 call setline(1, 'changed')
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
606 def Getout()
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
607 confirm write Xfile
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
608 enddef
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
609 END
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
610 call writefile(lines, 'Xconfirmscript')
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
611 call writefile(['empty'], 'Xfile')
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
612 let buf = RunVimInTerminal('-S Xconfirmscript', {'rows': 8})
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
613 call term_sendkeys(buf, ":call Getout()\n")
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
614 call WaitForAssert({-> assert_match('(Y)es, \[N\]o: ', term_getline(buf, 8))}, 1000)
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
615 call term_sendkeys(buf, "y")
22778
3ec5f653f64d patch 8.2.1937: Vim9: test for confirm modifier fails in some situations
Bram Moolenaar <Bram@vim.org>
parents: 22772
diff changeset
616 call WaitForAssert({-> assert_match('(Y)es, \[N\]o: ', term_getline(buf, 8))}, 1000)
3ec5f653f64d patch 8.2.1937: Vim9: test for confirm modifier fails in some situations
Bram Moolenaar <Bram@vim.org>
parents: 22772
diff changeset
617 call term_sendkeys(buf, "\<CR>")
3ec5f653f64d patch 8.2.1937: Vim9: test for confirm modifier fails in some situations
Bram Moolenaar <Bram@vim.org>
parents: 22772
diff changeset
618 call TermWait(buf)
22772
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
619 call StopVimInTerminal(buf)
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
620
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
621 call assert_equal(['changed'], readfile('Xfile'))
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
622 call delete('Xfile')
22778
3ec5f653f64d patch 8.2.1937: Vim9: test for confirm modifier fails in some situations
Bram Moolenaar <Bram@vim.org>
parents: 22772
diff changeset
623 call delete('.Xfile.swp') " in case Vim was killed
22772
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
624 call delete('Xconfirmscript')
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
625 endfunc
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
626
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
627 def Test_command_modifiers_keep()
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
628 if has('unix')
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
629 def DoTest(addRflag: bool, keepMarks: bool, hasMarks: bool)
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
630 new
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
631 setline(1, ['one', 'two', 'three'])
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
632 normal 1Gma
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
633 normal 2Gmb
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
634 normal 3Gmc
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
635 if addRflag
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
636 set cpo+=R
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
637 else
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
638 set cpo-=R
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
639 endif
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
640 if keepMarks
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
641 keepmarks :%!cat
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
642 else
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
643 :%!cat
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
644 endif
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
645 if hasMarks
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
646 assert_equal(1, line("'a"))
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
647 assert_equal(2, line("'b"))
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
648 assert_equal(3, line("'c"))
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
649 else
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
650 assert_equal(0, line("'a"))
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
651 assert_equal(0, line("'b"))
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
652 assert_equal(0, line("'c"))
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
653 endif
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
654 quit!
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
655 enddef
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
656 DoTest(false, false, true)
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
657 DoTest(true, false, false)
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
658 DoTest(false, true, true)
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
659 DoTest(true, true, true)
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
660 set cpo&vim
22812
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
661
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
662 new
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
663 setline(1, ['one', 'two', 'three', 'four'])
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
664 assert_equal(4, line("$"))
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
665 normal 1Gma
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
666 normal 2Gmb
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
667 normal 3Gmc
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
668 lockmarks :1,2!wc
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
669 # line is deleted, marks don't move
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
670 assert_equal(3, line("$"))
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
671 assert_equal('four', getline(3))
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
672 assert_equal(1, line("'a"))
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
673 assert_equal(2, line("'b"))
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
674 assert_equal(3, line("'c"))
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
675 quit!
22772
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
676 endif
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
677
22812
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
678 edit Xone
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
679 edit Xtwo
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
680 assert_equal('Xone', expand('#'))
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
681 keepalt edit Xthree
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
682 assert_equal('Xone', expand('#'))
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
683
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
684 normal /a*b*
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
685 assert_equal('a*b*', histget("search"))
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
686 keeppatterns normal /c*d*
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
687 assert_equal('a*b*', histget("search"))
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
688
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
689 new
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
690 setline(1, range(10))
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
691 :10
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
692 normal gg
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
693 assert_equal(10, getpos("''")[1])
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
694 keepjumps normal 5G
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
695 assert_equal(10, getpos("''")[1])
1ef3b04875ff patch 8.2.1954: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22790
diff changeset
696 quit!
22772
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
697 enddef
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
698
23398
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
699 def Test_bar_line_continuation()
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
700 var lines =<< trim END
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
701 au BufNewFile Xfile g:readFile = 1
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
702 | g:readExtra = 2
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
703 g:readFile = 0
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
704 g:readExtra = 0
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
705 edit Xfile
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
706 assert_equal(1, g:readFile)
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
707 assert_equal(2, g:readExtra)
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
708 bwipe!
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
709 au! BufNewFile
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
710
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
711 au BufNewFile Xfile g:readFile = 1
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
712 | g:readExtra = 2
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
713 | g:readMore = 3
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
714 g:readFile = 0
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
715 g:readExtra = 0
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
716 g:readMore = 0
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
717 edit Xfile
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
718 assert_equal(1, g:readFile)
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
719 assert_equal(2, g:readExtra)
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
720 assert_equal(3, g:readMore)
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
721 bwipe!
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
722 au! BufNewFile
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
723 unlet g:readFile
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
724 unlet g:readExtra
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
725 unlet g:readMore
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
726 END
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
727 CheckDefAndScriptSuccess(lines)
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
728 enddef
40f824f5c7c7 patch 8.2.2242: Vim9: bar line continuation does not work at script level
Bram Moolenaar <Bram@vim.org>
parents: 23392
diff changeset
729
22772
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
730 def Test_command_modifier_other()
22814
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
731 new Xsomefile
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
732 setline(1, 'changed')
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
733 var buf = bufnr()
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
734 hide edit Xotherfile
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
735 var info = getbufinfo(buf)
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
736 assert_equal(1, info[0].hidden)
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
737 assert_equal(1, info[0].changed)
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
738 edit Xsomefile
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
739 bwipe!
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
740
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
741 au BufNewFile Xfile g:readFile = 1
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
742 g:readFile = 0
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
743 edit Xfile
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
744 assert_equal(1, g:readFile)
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
745 bwipe!
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
746 g:readFile = 0
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
747 noautocmd edit Xfile
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
748 assert_equal(0, g:readFile)
23392
517fca70e084 patch 8.2.2239: Vim9: concatenating lines with backslash is inconvenient
Bram Moolenaar <Bram@vim.org>
parents: 23374
diff changeset
749 au! BufNewFile
517fca70e084 patch 8.2.2239: Vim9: concatenating lines with backslash is inconvenient
Bram Moolenaar <Bram@vim.org>
parents: 23374
diff changeset
750 unlet g:readFile
22814
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
751
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
752 noswapfile edit XnoSwap
23422
bb0c53f4ef8b patch 8.2.2254: Vim9: bool option type is number
Bram Moolenaar <Bram@vim.org>
parents: 23398
diff changeset
753 assert_equal(false, &l:swapfile)
22814
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
754 bwipe!
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
755
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
756 var caught = false
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
757 try
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
758 sandbox !ls
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
759 catch /E48:/
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
760 caught = true
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
761 endtry
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
762 assert_true(caught)
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
763
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
764 :8verbose g:verbose_now = &verbose
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
765 assert_equal(8, g:verbose_now)
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
766 unlet g:verbose_now
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
767 enddef
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
768
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
769 def EchoHere()
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
770 echomsg 'here'
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
771 enddef
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
772 def EchoThere()
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
773 unsilent echomsg 'there'
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
774 enddef
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
775
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
776 def Test_modifier_silent_unsilent()
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
777 echomsg 'last one'
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
778 silent echomsg "text"
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
779 assert_equal("\nlast one", execute(':1messages'))
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
780
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
781 silent! echoerr "error"
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
782
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
783 echomsg 'last one'
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
784 silent EchoHere()
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
785 assert_equal("\nlast one", execute(':1messages'))
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
786
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
787 silent EchoThere()
bb1b21a2aae3 patch 8.2.1955: Vim9: not all command modifiers are tested
Bram Moolenaar <Bram@vim.org>
parents: 22812
diff changeset
788 assert_equal("\nthere", execute(':1messages'))
23348
456d625bb8c1 patch 8.2.2217: Vim9: command modifiers not restored in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23346
diff changeset
789
456d625bb8c1 patch 8.2.2217: Vim9: command modifiers not restored in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23346
diff changeset
790 try
456d625bb8c1 patch 8.2.2217: Vim9: command modifiers not restored in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23346
diff changeset
791 silent eval [][0]
456d625bb8c1 patch 8.2.2217: Vim9: command modifiers not restored in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23346
diff changeset
792 catch
456d625bb8c1 patch 8.2.2217: Vim9: command modifiers not restored in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23346
diff changeset
793 echomsg "caught"
456d625bb8c1 patch 8.2.2217: Vim9: command modifiers not restored in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23346
diff changeset
794 endtry
456d625bb8c1 patch 8.2.2217: Vim9: command modifiers not restored in catch block
Bram Moolenaar <Bram@vim.org>
parents: 23346
diff changeset
795 assert_equal("\ncaught", execute(':1messages'))
22772
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
796 enddef
82a7aff951d2 patch 8.2.1934: Vim9: command modifiers in :def function not tested
Bram Moolenaar <Bram@vim.org>
parents: 22750
diff changeset
797
22790
44317eb799d7 patch 8.2.1943: Vim9: wrong error message when colon is missing
Bram Moolenaar <Bram@vim.org>
parents: 22784
diff changeset
798 def Test_range_after_command_modifier()
23346
2060f53b7c17 patch 8.2.2216: Vim9: range with missing colon can be hard to spot
Bram Moolenaar <Bram@vim.org>
parents: 23344
diff changeset
799 CheckScriptFailure(['vim9script', 'silent keepjump 1d _'], 'E1050: Colon required before a range: 1d _', 2)
22790
44317eb799d7 patch 8.2.1943: Vim9: wrong error message when colon is missing
Bram Moolenaar <Bram@vim.org>
parents: 22784
diff changeset
800 new
44317eb799d7 patch 8.2.1943: Vim9: wrong error message when colon is missing
Bram Moolenaar <Bram@vim.org>
parents: 22784
diff changeset
801 setline(1, 'xxx')
44317eb799d7 patch 8.2.1943: Vim9: wrong error message when colon is missing
Bram Moolenaar <Bram@vim.org>
parents: 22784
diff changeset
802 CheckScriptSuccess(['vim9script', 'silent keepjump :1d _'])
44317eb799d7 patch 8.2.1943: Vim9: wrong error message when colon is missing
Bram Moolenaar <Bram@vim.org>
parents: 22784
diff changeset
803 assert_equal('', getline(1))
44317eb799d7 patch 8.2.1943: Vim9: wrong error message when colon is missing
Bram Moolenaar <Bram@vim.org>
parents: 22784
diff changeset
804 bwipe!
44317eb799d7 patch 8.2.1943: Vim9: wrong error message when colon is missing
Bram Moolenaar <Bram@vim.org>
parents: 22784
diff changeset
805 enddef
44317eb799d7 patch 8.2.1943: Vim9: wrong error message when colon is missing
Bram Moolenaar <Bram@vim.org>
parents: 22784
diff changeset
806
23541
a2a38bc68dd9 patch 8.2.2313: Vim9: using uninitialized field when parsing range
Bram Moolenaar <Bram@vim.org>
parents: 23521
diff changeset
807 def Test_silent_pattern()
a2a38bc68dd9 patch 8.2.2313: Vim9: using uninitialized field when parsing range
Bram Moolenaar <Bram@vim.org>
parents: 23521
diff changeset
808 new
a2a38bc68dd9 patch 8.2.2313: Vim9: using uninitialized field when parsing range
Bram Moolenaar <Bram@vim.org>
parents: 23521
diff changeset
809 silent! :/pat/put _
a2a38bc68dd9 patch 8.2.2313: Vim9: using uninitialized field when parsing range
Bram Moolenaar <Bram@vim.org>
parents: 23521
diff changeset
810 bwipe!
a2a38bc68dd9 patch 8.2.2313: Vim9: using uninitialized field when parsing range
Bram Moolenaar <Bram@vim.org>
parents: 23521
diff changeset
811 enddef
a2a38bc68dd9 patch 8.2.2313: Vim9: using uninitialized field when parsing range
Bram Moolenaar <Bram@vim.org>
parents: 23521
diff changeset
812
24222
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
813 def Test_useless_command_modifier()
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
814 g:maybe = true
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
815 var lines =<< trim END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
816 if g:maybe
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
817 silent endif
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
818 END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
819 CheckDefAndScriptFailure(lines, 'E1176:', 2)
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
820
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
821 lines =<< trim END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
822 for i in [0]
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
823 silent endfor
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
824 END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
825 CheckDefAndScriptFailure(lines, 'E1176:', 2)
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
826
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
827 lines =<< trim END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
828 while g:maybe
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
829 silent endwhile
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
830 END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
831 CheckDefAndScriptFailure(lines, 'E1176:', 2)
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
832
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
833 lines =<< trim END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
834 silent try
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
835 finally
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
836 endtry
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
837 END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
838 CheckDefAndScriptFailure(lines, 'E1176:', 1)
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
839
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
840 lines =<< trim END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
841 try
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
842 silent catch
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
843 endtry
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
844 END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
845 CheckDefAndScriptFailure(lines, 'E1176:', 2)
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
846
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
847 lines =<< trim END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
848 try
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
849 silent finally
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
850 endtry
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
851 END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
852 CheckDefAndScriptFailure(lines, 'E1176:', 2)
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
853
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
854 lines =<< trim END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
855 try
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
856 finally
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
857 silent endtry
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
858 END
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
859 CheckDefAndScriptFailure(lines, 'E1176:', 3)
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
860 enddef
a2e6029d354e patch 8.2.2652: Vim9: can use command modifier without an effect
Bram Moolenaar <Bram@vim.org>
parents: 24216
diff changeset
861
21196
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
862 def Test_eval_command()
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
863 var from = 3
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
864 var to = 5
21196
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
865 g:val = 111
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
866 def Increment(nrs: list<number>)
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
867 for nr in nrs
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
868 g:val += nr
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
869 endfor
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
870 enddef
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
871 eval range(from, to)
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
872 ->Increment()
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
873 assert_equal(111 + 3 + 4 + 5, g:val)
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
874 unlet g:val
23096
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
875
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
876 var lines =<< trim END
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
877 vim9script
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
878 g:caught = 'no'
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
879 try
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
880 eval 123 || 0
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
881 catch
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
882 g:caught = 'yes'
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
883 endtry
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
884 assert_equal('yes', g:caught)
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
885 unlet g:caught
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
886 END
b6aadb0b3a56 patch 8.2.2094: when an expression fails getting next command may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 23072
diff changeset
887 CheckScriptSuccess(lines)
21196
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
888 enddef
f45ce1ce284c patch 8.2.1149: Vim9: :eval command not handled properly
Bram Moolenaar <Bram@vim.org>
parents: 21158
diff changeset
889
21893
f19ac9b8b011 patch 8.2.1496: Vim9: cannot use " #" in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 21255
diff changeset
890 def Test_map_command()
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
891 var lines =<< trim END
21893
f19ac9b8b011 patch 8.2.1496: Vim9: cannot use " #" in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 21255
diff changeset
892 nnoremap <F3> :echo 'hit F3 #'<CR>
f19ac9b8b011 patch 8.2.1496: Vim9: cannot use " #" in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 21255
diff changeset
893 assert_equal(":echo 'hit F3 #'<CR>", maparg("<F3>", "n"))
f19ac9b8b011 patch 8.2.1496: Vim9: cannot use " #" in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 21255
diff changeset
894 END
f19ac9b8b011 patch 8.2.1496: Vim9: cannot use " #" in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 21255
diff changeset
895 CheckDefSuccess(lines)
f19ac9b8b011 patch 8.2.1496: Vim9: cannot use " #" in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 21255
diff changeset
896 CheckScriptSuccess(['vim9script'] + lines)
f19ac9b8b011 patch 8.2.1496: Vim9: cannot use " #" in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 21255
diff changeset
897 enddef
f19ac9b8b011 patch 8.2.1496: Vim9: cannot use " #" in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 21255
diff changeset
898
21941
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
899 def Test_normal_command()
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
900 new
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
901 setline(1, 'doesnotexist')
22425
eabc059a6ac4 patch 8.2.1761: Vim9: Some tests are still using :let
Bram Moolenaar <Bram@vim.org>
parents: 22351
diff changeset
902 var caught = 0
21941
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
903 try
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
904 exe "norm! \<C-]>"
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
905 catch /E433/
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
906 caught = 2
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
907 endtry
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
908 assert_equal(2, caught)
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
909
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
910 try
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
911 exe "norm! 3\<C-]>"
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
912 catch /E433/
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
913 caught = 3
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
914 endtry
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
915 assert_equal(3, caught)
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
916 bwipe!
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
917 enddef
f65e76638eb5 patch 8.2.1520: Vim9: CTRL-] used in :def function does not work
Bram Moolenaar <Bram@vim.org>
parents: 21893
diff changeset
918
22176
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
919 def Test_put_command()
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
920 new
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
921 @p = 'ppp'
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
922 put p
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
923 assert_equal('ppp', getline(2))
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
924
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
925 put ='below'
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
926 assert_equal('below', getline(3))
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
927 put! ='above'
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
928 assert_equal('above', getline(3))
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
929 assert_equal('below', getline(4))
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
930
23628
b26bbc03126a patch 8.2.2356: Vim9: ":put =expr" does not handle a list properly
Bram Moolenaar <Bram@vim.org>
parents: 23580
diff changeset
931 :2put =['a', 'b', 'c']
b26bbc03126a patch 8.2.2356: Vim9: ":put =expr" does not handle a list properly
Bram Moolenaar <Bram@vim.org>
parents: 23580
diff changeset
932 assert_equal(['ppp', 'a', 'b', 'c', 'above'], getline(2, 6))
b26bbc03126a patch 8.2.2356: Vim9: ":put =expr" does not handle a list properly
Bram Moolenaar <Bram@vim.org>
parents: 23580
diff changeset
933
23156
6aa8ddf7a3fa patch 8.2.2124: Vim9: a range cannot be computed at runtime
Bram Moolenaar <Bram@vim.org>
parents: 23096
diff changeset
934 # compute range at runtime
6aa8ddf7a3fa patch 8.2.2124: Vim9: a range cannot be computed at runtime
Bram Moolenaar <Bram@vim.org>
parents: 23096
diff changeset
935 setline(1, range(1, 8))
6aa8ddf7a3fa patch 8.2.2124: Vim9: a range cannot be computed at runtime
Bram Moolenaar <Bram@vim.org>
parents: 23096
diff changeset
936 @a = 'aaa'
6aa8ddf7a3fa patch 8.2.2124: Vim9: a range cannot be computed at runtime
Bram Moolenaar <Bram@vim.org>
parents: 23096
diff changeset
937 :$-2put a
6aa8ddf7a3fa patch 8.2.2124: Vim9: a range cannot be computed at runtime
Bram Moolenaar <Bram@vim.org>
parents: 23096
diff changeset
938 assert_equal('aaa', getline(7))
6aa8ddf7a3fa patch 8.2.2124: Vim9: a range cannot be computed at runtime
Bram Moolenaar <Bram@vim.org>
parents: 23096
diff changeset
939
6aa8ddf7a3fa patch 8.2.2124: Vim9: a range cannot be computed at runtime
Bram Moolenaar <Bram@vim.org>
parents: 23096
diff changeset
940 setline(1, range(1, 8))
6aa8ddf7a3fa patch 8.2.2124: Vim9: a range cannot be computed at runtime
Bram Moolenaar <Bram@vim.org>
parents: 23096
diff changeset
941 :2
6aa8ddf7a3fa patch 8.2.2124: Vim9: a range cannot be computed at runtime
Bram Moolenaar <Bram@vim.org>
parents: 23096
diff changeset
942 :+2put! a
6aa8ddf7a3fa patch 8.2.2124: Vim9: a range cannot be computed at runtime
Bram Moolenaar <Bram@vim.org>
parents: 23096
diff changeset
943 assert_equal('aaa', getline(4))
6aa8ddf7a3fa patch 8.2.2124: Vim9: a range cannot be computed at runtime
Bram Moolenaar <Bram@vim.org>
parents: 23096
diff changeset
944
23671
9ee9c4246a7f patch 8.2.2377: Vim9: crash when using a range after another expression
Bram Moolenaar <Bram@vim.org>
parents: 23628
diff changeset
945 []->mapnew(() => 0)
9ee9c4246a7f patch 8.2.2377: Vim9: crash when using a range after another expression
Bram Moolenaar <Bram@vim.org>
parents: 23628
diff changeset
946 :$put ='end'
9ee9c4246a7f patch 8.2.2377: Vim9: crash when using a range after another expression
Bram Moolenaar <Bram@vim.org>
parents: 23628
diff changeset
947 assert_equal('end', getline('$'))
9ee9c4246a7f patch 8.2.2377: Vim9: crash when using a range after another expression
Bram Moolenaar <Bram@vim.org>
parents: 23628
diff changeset
948
22176
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
949 bwipe!
23197
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
950
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
951 CheckDefFailure(['put =xxx'], 'E1001:')
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
952 enddef
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
953
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
954 def Test_put_with_linebreak()
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
955 new
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
956 var lines =<< trim END
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
957 vim9script
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
958 pu =split('abc', '\zs')
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
959 ->join()
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
960 END
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
961 CheckScriptSuccess(lines)
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
962 getline(2)->assert_equal('a b c')
4ba101403fa2 patch 8.2.2144: Vim9: some corner cases not tested
Bram Moolenaar <Bram@vim.org>
parents: 23156
diff changeset
963 bwipe!
22176
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
964 enddef
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
965
22260
d7c1e3efa88e patch 8.2.1679: Vim9: ":*" is not recognized as a range
Bram Moolenaar <Bram@vim.org>
parents: 22176
diff changeset
966 def Test_command_star_range()
d7c1e3efa88e patch 8.2.1679: Vim9: ":*" is not recognized as a range
Bram Moolenaar <Bram@vim.org>
parents: 22176
diff changeset
967 new
d7c1e3efa88e patch 8.2.1679: Vim9: ":*" is not recognized as a range
Bram Moolenaar <Bram@vim.org>
parents: 22176
diff changeset
968 setline(1, ['xxx foo xxx', 'xxx bar xxx', 'xxx foo xx bar'])
d7c1e3efa88e patch 8.2.1679: Vim9: ":*" is not recognized as a range
Bram Moolenaar <Bram@vim.org>
parents: 22176
diff changeset
969 setpos("'<", [0, 1, 0, 0])
d7c1e3efa88e patch 8.2.1679: Vim9: ":*" is not recognized as a range
Bram Moolenaar <Bram@vim.org>
parents: 22176
diff changeset
970 setpos("'>", [0, 3, 0, 0])
d7c1e3efa88e patch 8.2.1679: Vim9: ":*" is not recognized as a range
Bram Moolenaar <Bram@vim.org>
parents: 22176
diff changeset
971 :*s/\(foo\|bar\)/baz/g
d7c1e3efa88e patch 8.2.1679: Vim9: ":*" is not recognized as a range
Bram Moolenaar <Bram@vim.org>
parents: 22176
diff changeset
972 getline(1, 3)->assert_equal(['xxx baz xxx', 'xxx baz xxx', 'xxx baz xx baz'])
d7c1e3efa88e patch 8.2.1679: Vim9: ":*" is not recognized as a range
Bram Moolenaar <Bram@vim.org>
parents: 22176
diff changeset
973
d7c1e3efa88e patch 8.2.1679: Vim9: ":*" is not recognized as a range
Bram Moolenaar <Bram@vim.org>
parents: 22176
diff changeset
974 bwipe!
d7c1e3efa88e patch 8.2.1679: Vim9: ":*" is not recognized as a range
Bram Moolenaar <Bram@vim.org>
parents: 22176
diff changeset
975 enddef
d7c1e3efa88e patch 8.2.1679: Vim9: ":*" is not recognized as a range
Bram Moolenaar <Bram@vim.org>
parents: 22176
diff changeset
976
22649
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
977 def Test_f_args()
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
978 var lines =<< trim END
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
979 vim9script
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
980
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
981 func SaveCmdArgs(...)
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
982 let g:args = a:000
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
983 endfunc
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
984
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
985 command -nargs=* TestFArgs call SaveCmdArgs(<f-args>)
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
986
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
987 TestFArgs
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
988 assert_equal([], g:args)
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
989
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
990 TestFArgs one two three
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
991 assert_equal(['one', 'two', 'three'], g:args)
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
992 END
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
993 CheckScriptSuccess(lines)
6e965b3587a4 patch 8.2.1873: Vim9: missing white space when using <f-args>
Bram Moolenaar <Bram@vim.org>
parents: 22500
diff changeset
994 enddef
22176
6941d3205be9 patch 8.2.1637: Vim9: :put ={expr} does not work inside :def function
Bram Moolenaar <Bram@vim.org>
parents: 21941
diff changeset
995
23513
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
996 def Test_user_command_comment()
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
997 command -nargs=1 Comd echom <q-args>
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
998
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
999 var lines =<< trim END
24543
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1000 vim9script
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1001 Comd # comment
23513
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1002 END
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1003 CheckScriptSuccess(lines)
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1004
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1005 lines =<< trim END
24543
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1006 vim9script
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1007 Comd# comment
23513
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1008 END
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1009 CheckScriptFailure(lines, 'E1144:')
24543
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1010 delcommand Comd
23513
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1011
24543
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1012 lines =<< trim END
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1013 vim9script
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1014 command Foo echo 'Foo'
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1015 Foo3Bar
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1016 END
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1017 CheckScriptFailure(lines, 'E1144: Command "Foo" is not followed by white space: Foo3Bar')
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1018
b3bd27751e09 patch 8.2.2811: Vim9: error for missing white space doesn't say where
Bram Moolenaar <Bram@vim.org>
parents: 24541
diff changeset
1019 delcommand Foo
23513
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1020 enddef
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1021
22950
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1022 def Test_star_command()
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1023 var lines =<< trim END
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1024 vim9script
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1025 @s = 'g:success = 8'
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1026 set cpo+=*
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1027 exe '*s'
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1028 assert_equal(8, g:success)
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1029 unlet g:success
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1030 set cpo-=*
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1031 assert_fails("exe '*s'", 'E1050:')
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1032 END
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1033 CheckScriptSuccess(lines)
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1034 enddef
1270401054d8 patch 8.2.2022: Vim9: star command recognized errornously
Bram Moolenaar <Bram@vim.org>
parents: 22860
diff changeset
1035
23011
ec23d84a096d patch 8.2.2052: Vim9: "edit +4 fname" gives an error
Bram Moolenaar <Bram@vim.org>
parents: 22950
diff changeset
1036 def Test_cmd_argument_without_colon()
ec23d84a096d patch 8.2.2052: Vim9: "edit +4 fname" gives an error
Bram Moolenaar <Bram@vim.org>
parents: 22950
diff changeset
1037 new Xfile
ec23d84a096d patch 8.2.2052: Vim9: "edit +4 fname" gives an error
Bram Moolenaar <Bram@vim.org>
parents: 22950
diff changeset
1038 setline(1, ['a', 'b', 'c', 'd'])
ec23d84a096d patch 8.2.2052: Vim9: "edit +4 fname" gives an error
Bram Moolenaar <Bram@vim.org>
parents: 22950
diff changeset
1039 write
ec23d84a096d patch 8.2.2052: Vim9: "edit +4 fname" gives an error
Bram Moolenaar <Bram@vim.org>
parents: 22950
diff changeset
1040 edit +3 %
ec23d84a096d patch 8.2.2052: Vim9: "edit +4 fname" gives an error
Bram Moolenaar <Bram@vim.org>
parents: 22950
diff changeset
1041 assert_equal(3, getcurpos()[1])
ec23d84a096d patch 8.2.2052: Vim9: "edit +4 fname" gives an error
Bram Moolenaar <Bram@vim.org>
parents: 22950
diff changeset
1042 edit +/a %
ec23d84a096d patch 8.2.2052: Vim9: "edit +4 fname" gives an error
Bram Moolenaar <Bram@vim.org>
parents: 22950
diff changeset
1043 assert_equal(1, getcurpos()[1])
ec23d84a096d patch 8.2.2052: Vim9: "edit +4 fname" gives an error
Bram Moolenaar <Bram@vim.org>
parents: 22950
diff changeset
1044 bwipe
ec23d84a096d patch 8.2.2052: Vim9: "edit +4 fname" gives an error
Bram Moolenaar <Bram@vim.org>
parents: 22950
diff changeset
1045 delete('Xfile')
ec23d84a096d patch 8.2.2052: Vim9: "edit +4 fname" gives an error
Bram Moolenaar <Bram@vim.org>
parents: 22950
diff changeset
1046 enddef
ec23d84a096d patch 8.2.2052: Vim9: "edit +4 fname" gives an error
Bram Moolenaar <Bram@vim.org>
parents: 22950
diff changeset
1047
23205
d998222d314d patch 8.2.2148: Vim9: crash when user command doesn't match
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
1048 def Test_ambiguous_user_cmd()
23513
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1049 command Cmd1 eval 0
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1050 command Cmd2 eval 0
23205
d998222d314d patch 8.2.2148: Vim9: crash when user command doesn't match
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
1051 var lines =<< trim END
d998222d314d patch 8.2.2148: Vim9: crash when user command doesn't match
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
1052 Cmd
d998222d314d patch 8.2.2148: Vim9: crash when user command doesn't match
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
1053 END
23513
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1054 CheckDefAndScriptFailure(lines, 'E464:', 1)
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1055 delcommand Cmd1
872239543313 patch 8.2.2299: Vim9: invalid memory access making error message flaky
Bram Moolenaar <Bram@vim.org>
parents: 23477
diff changeset
1056 delcommand Cmd2
23205
d998222d314d patch 8.2.2148: Vim9: crash when user command doesn't match
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
1057 enddef
d998222d314d patch 8.2.2148: Vim9: crash when user command doesn't match
Bram Moolenaar <Bram@vim.org>
parents: 23197
diff changeset
1058
23254
4b7e996354e0 patch 8.2.2173: Vim9: get internal error when assigning to undefined variable
Bram Moolenaar <Bram@vim.org>
parents: 23205
diff changeset
1059 def Test_command_not_recognized()
4b7e996354e0 patch 8.2.2173: Vim9: get internal error when assigning to undefined variable
Bram Moolenaar <Bram@vim.org>
parents: 23205
diff changeset
1060 var lines =<< trim END
4b7e996354e0 patch 8.2.2173: Vim9: get internal error when assigning to undefined variable
Bram Moolenaar <Bram@vim.org>
parents: 23205
diff changeset
1061 d.key = 'asdf'
4b7e996354e0 patch 8.2.2173: Vim9: get internal error when assigning to undefined variable
Bram Moolenaar <Bram@vim.org>
parents: 23205
diff changeset
1062 END
4b7e996354e0 patch 8.2.2173: Vim9: get internal error when assigning to undefined variable
Bram Moolenaar <Bram@vim.org>
parents: 23205
diff changeset
1063 CheckDefFailure(lines, 'E1146:', 1)
4b7e996354e0 patch 8.2.2173: Vim9: get internal error when assigning to undefined variable
Bram Moolenaar <Bram@vim.org>
parents: 23205
diff changeset
1064
4b7e996354e0 patch 8.2.2173: Vim9: get internal error when assigning to undefined variable
Bram Moolenaar <Bram@vim.org>
parents: 23205
diff changeset
1065 lines =<< trim END
4b7e996354e0 patch 8.2.2173: Vim9: get internal error when assigning to undefined variable
Bram Moolenaar <Bram@vim.org>
parents: 23205
diff changeset
1066 d['key'] = 'asdf'
4b7e996354e0 patch 8.2.2173: Vim9: get internal error when assigning to undefined variable
Bram Moolenaar <Bram@vim.org>
parents: 23205
diff changeset
1067 END
4b7e996354e0 patch 8.2.2173: Vim9: get internal error when assigning to undefined variable
Bram Moolenaar <Bram@vim.org>
parents: 23205
diff changeset
1068 CheckDefFailure(lines, 'E1146:', 1)
4b7e996354e0 patch 8.2.2173: Vim9: get internal error when assigning to undefined variable
Bram Moolenaar <Bram@vim.org>
parents: 23205
diff changeset
1069 enddef
21058
111f877e63d9 patch 8.2.1080: Vim9: no line break allowed in a for loop
Bram Moolenaar <Bram@vim.org>
parents: 21056
diff changeset
1070
23272
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1071 def Test_magic_not_used()
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1072 new
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1073 for cmd in ['set magic', 'set nomagic']
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1074 exe cmd
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1075 setline(1, 'aaa')
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1076 s/.../bbb/
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1077 assert_equal('bbb', getline(1))
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1078 endfor
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1079
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1080 set magic
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1081 setline(1, 'aaa')
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1082 assert_fails('s/.\M../bbb/', 'E486:')
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1083 assert_fails('snomagic/.../bbb/', 'E486:')
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1084 assert_equal('aaa', getline(1))
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1085
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1086 bwipe!
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1087 enddef
a84e7abb0c92 patch 8.2.2182: Vim9: value of 'magic' is still relevant
Bram Moolenaar <Bram@vim.org>
parents: 23254
diff changeset
1088
23274
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1089 def Test_gdefault_not_used()
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1090 new
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1091 for cmd in ['set gdefault', 'set nogdefault']
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1092 exe cmd
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1093 setline(1, 'aaa')
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1094 s/./b/
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1095 assert_equal('baa', getline(1))
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1096 endfor
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1097
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1098 set nogdefault
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1099 bwipe!
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1100 enddef
10bbff53d3d1 patch 8.2.2183: Vim9: value of 'edcompatible' and 'gdefault' are used
Bram Moolenaar <Bram@vim.org>
parents: 23272
diff changeset
1101
23374
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1102 def g:SomeComplFunc(findstart: number, base: string): any
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1103 if findstart
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1104 return 0
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1105 else
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1106 return ['aaa', 'bbb']
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1107 endif
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1108 enddef
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1109
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1110 def Test_insert_complete()
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1111 # this was running into an error with the matchparen hack
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1112 new
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1113 set completefunc=SomeComplFunc
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1114 feedkeys("i\<c-x>\<c-u>\<Esc>", 'ntx')
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1115 assert_equal('aaa', getline(1))
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1116
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1117 set completefunc=
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1118 bwipe!
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1119 enddef
1371e21fdc3d patch 8.2.2230: Vim9: insert completion runs into error
Bram Moolenaar <Bram@vim.org>
parents: 23370
diff changeset
1120
23477
95db03521b01 patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
1121 def Test_wincmd()
95db03521b01 patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
1122 split
95db03521b01 patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
1123 var id1 = win_getid()
95db03521b01 patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
1124 if true
95db03521b01 patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
1125 try | wincmd w | catch | endtry
95db03521b01 patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
1126 endif
95db03521b01 patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
1127 assert_notequal(id1, win_getid())
95db03521b01 patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
1128 close
24216
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1129
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1130 split
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1131 var id = win_getid()
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1132 split
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1133 :2wincmd o
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1134 assert_equal(id, win_getid())
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1135 only
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1136
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1137 split
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1138 split
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1139 assert_equal(3, winnr('$'))
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1140 :2wincmd c
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1141 assert_equal(2, winnr('$'))
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1142 only
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1143
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1144 split
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1145 split
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1146 assert_equal(3, winnr('$'))
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1147 :2wincmd q
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1148 assert_equal(2, winnr('$'))
77cb22562852 patch 8.2.2649: Vim9: some wincmd arguments cause a white space error
Bram Moolenaar <Bram@vim.org>
parents: 24124
diff changeset
1149 only
23477
95db03521b01 patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
1150 enddef
95db03521b01 patch 8.2.2281: Vim9: compiled "wincmd" cannot be followed by bar
Bram Moolenaar <Bram@vim.org>
parents: 23428
diff changeset
1151
23580
dc3b7a31c29f patch 8.2.2332: Vim9: missing :endif not reported when using :windo
Bram Moolenaar <Bram@vim.org>
parents: 23541
diff changeset
1152 def Test_windo_missing_endif()
dc3b7a31c29f patch 8.2.2332: Vim9: missing :endif not reported when using :windo
Bram Moolenaar <Bram@vim.org>
parents: 23541
diff changeset
1153 var lines =<< trim END
dc3b7a31c29f patch 8.2.2332: Vim9: missing :endif not reported when using :windo
Bram Moolenaar <Bram@vim.org>
parents: 23541
diff changeset
1154 windo if 1
dc3b7a31c29f patch 8.2.2332: Vim9: missing :endif not reported when using :windo
Bram Moolenaar <Bram@vim.org>
parents: 23541
diff changeset
1155 END
dc3b7a31c29f patch 8.2.2332: Vim9: missing :endif not reported when using :windo
Bram Moolenaar <Bram@vim.org>
parents: 23541
diff changeset
1156 CheckDefExecFailure(lines, 'E171:', 1)
dc3b7a31c29f patch 8.2.2332: Vim9: missing :endif not reported when using :windo
Bram Moolenaar <Bram@vim.org>
parents: 23541
diff changeset
1157 enddef
dc3b7a31c29f patch 8.2.2332: Vim9: missing :endif not reported when using :windo
Bram Moolenaar <Bram@vim.org>
parents: 23541
diff changeset
1158
24262
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1159 let s:theList = [1, 2, 3]
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1160
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1161 def Test_lockvar()
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1162 s:theList[1] = 22
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1163 assert_equal([1, 22, 3], s:theList)
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1164 lockvar s:theList
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1165 assert_fails('theList[1] = 77', 'E741:')
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1166 unlockvar s:theList
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1167 s:theList[1] = 44
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1168 assert_equal([1, 44, 3], s:theList)
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1169
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1170 var lines =<< trim END
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1171 vim9script
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1172 var theList = [1, 2, 3]
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1173 def SetList()
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1174 theList[1] = 22
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1175 assert_equal([1, 22, 3], theList)
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1176 lockvar theList
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1177 theList[1] = 77
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1178 enddef
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1179 SetList()
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1180 END
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1181 CheckScriptFailure(lines, 'E1119', 4)
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1182
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1183 lines =<< trim END
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1184 var theList = [1, 2, 3]
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1185 lockvar theList
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1186 END
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1187 CheckDefFailure(lines, 'E1178', 2)
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1188
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1189 lines =<< trim END
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1190 var theList = [1, 2, 3]
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1191 unlockvar theList
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1192 END
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1193 CheckDefFailure(lines, 'E1178', 2)
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1194 enddef
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1195
24488
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1196 def Test_substitute_expr()
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1197 var to = 'repl'
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1198 new
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1199 setline(1, 'one from two')
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1200 s/from/\=to
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1201 assert_equal('one repl two', getline(1))
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1202
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1203 setline(1, 'one from two')
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1204 s/from/\=to .. '_x'
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1205 assert_equal('one repl_x two', getline(1))
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1206
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1207 setline(1, 'one from two from three')
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1208 var also = 'also'
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1209 s/from/\=to .. '_' .. also/g#e
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1210 assert_equal('one repl_also two repl_also three', getline(1))
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1211
24498
bfa495227ac6 patch 8.2.2789: Vim9: using =expr in :substitute does not handle jumps
Bram Moolenaar <Bram@vim.org>
parents: 24490
diff changeset
1212 setline(1, 'abc abc abc')
bfa495227ac6 patch 8.2.2789: Vim9: using =expr in :substitute does not handle jumps
Bram Moolenaar <Bram@vim.org>
parents: 24490
diff changeset
1213 for choice in [true, false]
bfa495227ac6 patch 8.2.2789: Vim9: using =expr in :substitute does not handle jumps
Bram Moolenaar <Bram@vim.org>
parents: 24490
diff changeset
1214 :1s/abc/\=choice ? 'yes' : 'no'/
bfa495227ac6 patch 8.2.2789: Vim9: using =expr in :substitute does not handle jumps
Bram Moolenaar <Bram@vim.org>
parents: 24490
diff changeset
1215 endfor
bfa495227ac6 patch 8.2.2789: Vim9: using =expr in :substitute does not handle jumps
Bram Moolenaar <Bram@vim.org>
parents: 24490
diff changeset
1216 assert_equal('yes no abc', getline(1))
bfa495227ac6 patch 8.2.2789: Vim9: using =expr in :substitute does not handle jumps
Bram Moolenaar <Bram@vim.org>
parents: 24490
diff changeset
1217
24541
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1218 bwipe!
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1219
24488
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1220 CheckDefFailure(['s/from/\="x")/'], 'E488:')
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1221 CheckDefFailure(['s/from/\="x"/9'], 'E488:')
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1222
24541
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1223 # When calling a function the right instruction list needs to be restored.
24545
fe29b220eece patch 8.2.2812: Vim9: still crash when using substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24543
diff changeset
1224 g:cond = true
24541
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1225 var lines =<< trim END
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1226 vim9script
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1227 def Foo()
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1228 Bar([])
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1229 enddef
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1230 def Bar(l: list<number>)
24545
fe29b220eece patch 8.2.2812: Vim9: still crash when using substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24543
diff changeset
1231 if g:cond
24541
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1232 s/^/\=Rep()/
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1233 for n in l[:]
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1234 endfor
24545
fe29b220eece patch 8.2.2812: Vim9: still crash when using substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24543
diff changeset
1235 endif
24541
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1236 enddef
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1237 def Rep(): string
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1238 return 'rep'
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1239 enddef
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1240 new
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1241 Foo()
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1242 assert_equal('rep', getline(1))
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1243 bwipe!
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1244 END
df90c61c306c patch 8.2.2810: Vim9: crash when calling a function in a substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24516
diff changeset
1245 CheckScriptSuccess(lines)
24545
fe29b220eece patch 8.2.2812: Vim9: still crash when using substitute expression
Bram Moolenaar <Bram@vim.org>
parents: 24543
diff changeset
1246 unlet g:cond
24816
1bed37e82c2e patch 8.2.2946: Vim9: substitute expression cannot be a List
Bram Moolenaar <Bram@vim.org>
parents: 24806
diff changeset
1247
1bed37e82c2e patch 8.2.2946: Vim9: substitute expression cannot be a List
Bram Moolenaar <Bram@vim.org>
parents: 24806
diff changeset
1248 # List results in multiple lines
1bed37e82c2e patch 8.2.2946: Vim9: substitute expression cannot be a List
Bram Moolenaar <Bram@vim.org>
parents: 24806
diff changeset
1249 new
1bed37e82c2e patch 8.2.2946: Vim9: substitute expression cannot be a List
Bram Moolenaar <Bram@vim.org>
parents: 24806
diff changeset
1250 setline(1, 'some text here')
1bed37e82c2e patch 8.2.2946: Vim9: substitute expression cannot be a List
Bram Moolenaar <Bram@vim.org>
parents: 24806
diff changeset
1251 s/text/\=['aaa', 'bbb', 'ccc']/
1bed37e82c2e patch 8.2.2946: Vim9: substitute expression cannot be a List
Bram Moolenaar <Bram@vim.org>
parents: 24806
diff changeset
1252 assert_equal(['some aaa', 'bbb', 'ccc', ' here'], getline(1, '$'))
1bed37e82c2e patch 8.2.2946: Vim9: substitute expression cannot be a List
Bram Moolenaar <Bram@vim.org>
parents: 24806
diff changeset
1253 bwipe!
24488
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1254 enddef
f293bb501b30 patch 8.2.2784: Vim9: cannot use =expr in :substitute
Bram Moolenaar <Bram@vim.org>
parents: 24262
diff changeset
1255
24490
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1256 def Test_redir_to_var()
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1257 var result: string
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1258 redir => result
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1259 echo 'something'
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1260 redir END
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1261 assert_equal("\nsomething", result)
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1262
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1263 redir =>> result
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1264 echo 'more'
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1265 redir END
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1266 assert_equal("\nsomething\nmore", result)
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1267
24512
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1268 var d: dict<string>
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1269 redir => d.redir
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1270 echo 'dict'
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1271 redir END
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1272 assert_equal({redir: "\ndict"}, d)
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1273
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1274 var l = ['a', 'b', 'c']
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1275 redir => l[1]
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1276 echo 'list'
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1277 redir END
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1278 assert_equal(['a', "\nlist", 'c'], l)
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1279
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1280 var dl = {l: ['x']}
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1281 redir => dl.l[0]
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1282 echo 'dict-list'
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1283 redir END
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1284 assert_equal({l: ["\ndict-list"]}, dl)
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1285
24516
056f954c6fd2 patch 8.2.2798: Vim9: redir to variable with append does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24512
diff changeset
1286 redir =>> d.redir
056f954c6fd2 patch 8.2.2798: Vim9: redir to variable with append does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24512
diff changeset
1287 echo 'more'
056f954c6fd2 patch 8.2.2798: Vim9: redir to variable with append does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24512
diff changeset
1288 redir END
056f954c6fd2 patch 8.2.2798: Vim9: redir to variable with append does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24512
diff changeset
1289 assert_equal({redir: "\ndict\nmore"}, d)
056f954c6fd2 patch 8.2.2798: Vim9: redir to variable with append does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24512
diff changeset
1290
24490
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1291 var lines =<< trim END
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1292 redir => notexist
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1293 END
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1294 CheckDefFailure(lines, 'E1089:')
24512
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1295
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1296 lines =<< trim END
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1297 var ls = 'asdf'
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1298 redir => ls[1]
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1299 redir END
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1300 END
53871095bb65 patch 8.2.2796: Vim9: redir to variable does not accept an index
Bram Moolenaar <Bram@vim.org>
parents: 24498
diff changeset
1301 CheckDefFailure(lines, 'E1141:')
24490
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1302 enddef
08050e45bd06 patch 8.2.2785: Vim9: cannot redirect to local variable
Bram Moolenaar <Bram@vim.org>
parents: 24488
diff changeset
1303
24614
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1304 def Test_echo_void()
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1305 var lines =<< trim END
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1306 vim9script
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1307 def NoReturn()
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1308 echo 'nothing'
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1309 enddef
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1310 echo NoReturn()
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1311 END
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1312 CheckScriptFailure(lines, 'E1186:', 5)
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1313
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1314 lines =<< trim END
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1315 vim9script
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1316 def NoReturn()
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1317 echo 'nothing'
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1318 enddef
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1319 def Try()
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1320 echo NoReturn()
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1321 enddef
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1322 defcompile
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1323 END
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1324 CheckScriptFailure(lines, 'E1186:', 1)
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1325 enddef
07b3d21a8b4b patch 8.2.2846: Vim9: "echo Func()" does not give an error for using void
Bram Moolenaar <Bram@vim.org>
parents: 24596
diff changeset
1326
24262
d0e86f1b34e7 patch 8.2.2672: Vim9: cannot use :lockvar and :unlockvar in compiled script
Bram Moolenaar <Bram@vim.org>
parents: 24222
diff changeset
1327
20170
0612c64a2b87 patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1328 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker