annotate src/testdir/test_virtualedit.vim @ 33399:95db67c7b754 v9.0.1958

patch 9.0.1958: cannot complete option values Commit: https://github.com/vim/vim/commit/900894b09a95398dfc75599e9f0aa2ea25723384 Author: Yee Cheng Chin <ychin.git@gmail.com> Date: Fri Sep 29 20:42:32 2023 +0200 patch 9.0.1958: cannot complete option values Problem: cannot complete option values Solution: Add completion functions for several options Add cmdline tab-completion for setting string options Add tab-completion for setting string options on the cmdline using `:set=` (along with `:set+=` and `:set-=`). The existing tab completion for setting options currently only works when nothing is typed yet, and it only fills in with the existing value, e.g. when the user does `:set diffopt=<Tab>` it will be completed to `set diffopt=internal,filler,closeoff` and nothing else. This isn't too useful as a user usually wants auto-complete to suggest all the possible values, such as 'iblank', or 'algorithm:patience'. For set= and set+=, this adds a new optional callback function for each option that can be invoked when doing completion. This allows for each option to have control over how completion works. For example, in 'diffopt', it will suggest the default enumeration, but if `algorithm:` is selected, it will further suggest different algorithm types like 'meyers' and 'patience'. When using set=, the existing option value will be filled in as the first choice to preserve the existing behavior. When using set+= this won't happen as it doesn't make sense. For flag list options (e.g. 'mouse' and 'guioptions'), completion will take into account existing typed values (and in the case of set+=, the existing option value) to make sure it doesn't suggest duplicates. For set-=, there is a new `ExpandSettingSubtract` function which will handle flag list and comma-separated options smartly, by only suggesting values that currently exist in the option. Note that Vim has some existing code that adds special handling for 'filetype', 'syntax', and misc dir options like 'backupdir'. This change preserves them as they already work, instead of converting to the new callback API for each option. closes: #13182 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
author Christian Brabandt <cb@256bit.org>
date Fri, 29 Sep 2023 20:45:04 +0200
parents f47ee07ae029
children df8faa0124f7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12164
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for 'virtualedit'.
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 func Test_yank_move_change()
12279
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
4 new
12164
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 call setline(1, [
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 \ "func foo() error {",
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 \ "\tif n, err := bar();",
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 \ "\terr != nil {",
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 \ "\t\treturn err",
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 \ "\t}",
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 \ "\tn = n * n",
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 \ ])
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 set virtualedit=all
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 set ts=4
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 function! MoveSelectionDown(count) abort
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 normal! m`
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 silent! exe "'<,'>move'>+".a:count
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 norm! ``
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 endfunction
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 xmap ]e :<C-U>call MoveSelectionDown(v:count1)<CR>
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 2
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 normal 2gg
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 normal J
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 normal jVj
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 normal ]e
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 normal ce
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28 bwipe!
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 set virtualedit=
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 set ts=8
5d82470552ce patch 8.0.0962: crash with virtualedit and joining lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 endfunc
12279
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
32
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
33 func Test_paste_end_of_line()
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
34 new
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
35 set virtualedit=all
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
36 call setline(1, ['456', '123'])
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
37 normal! gg0"ay$
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
38 exe "normal! 2G$lllA\<C-O>:normal! \"agP\r"
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
39 call assert_equal('123456', getline(2))
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
40
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
41 bwipe!
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
42 set virtualedit=
57e0b701611e patch 8.0.1019: pasting in virtual edit happens in the wrong place
Christian Brabandt <cb@256bit.org>
parents: 12164
diff changeset
43 endfunc
13786
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
44
14216
12bdbf9f7e20 patch 8.1.0125: virtual edit replace with multi-byte fails at end of line
Christian Brabandt <cb@256bit.org>
parents: 13786
diff changeset
45 func Test_replace_end_of_line()
12bdbf9f7e20 patch 8.1.0125: virtual edit replace with multi-byte fails at end of line
Christian Brabandt <cb@256bit.org>
parents: 13786
diff changeset
46 new
12bdbf9f7e20 patch 8.1.0125: virtual edit replace with multi-byte fails at end of line
Christian Brabandt <cb@256bit.org>
parents: 13786
diff changeset
47 set virtualedit=all
12bdbf9f7e20 patch 8.1.0125: virtual edit replace with multi-byte fails at end of line
Christian Brabandt <cb@256bit.org>
parents: 13786
diff changeset
48 call setline(1, range(20))
12bdbf9f7e20 patch 8.1.0125: virtual edit replace with multi-byte fails at end of line
Christian Brabandt <cb@256bit.org>
parents: 13786
diff changeset
49 exe "normal! gg2jv10lr-"
12bdbf9f7e20 patch 8.1.0125: virtual edit replace with multi-byte fails at end of line
Christian Brabandt <cb@256bit.org>
parents: 13786
diff changeset
50 call assert_equal(["1", "-----------", "3"], getline(2,4))
15607
2dcaa860e3fc patch 8.1.0811: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents: 14216
diff changeset
51 call setline(1, range(20))
2dcaa860e3fc patch 8.1.0811: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents: 14216
diff changeset
52 exe "normal! gg2jv10lr\<c-k>hh"
2dcaa860e3fc patch 8.1.0811: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents: 14216
diff changeset
53 call assert_equal(["1", "───────────", "3"], getline(2,4))
14216
12bdbf9f7e20 patch 8.1.0125: virtual edit replace with multi-byte fails at end of line
Christian Brabandt <cb@256bit.org>
parents: 13786
diff changeset
54
12bdbf9f7e20 patch 8.1.0125: virtual edit replace with multi-byte fails at end of line
Christian Brabandt <cb@256bit.org>
parents: 13786
diff changeset
55 bwipe!
12bdbf9f7e20 patch 8.1.0125: virtual edit replace with multi-byte fails at end of line
Christian Brabandt <cb@256bit.org>
parents: 13786
diff changeset
56 set virtualedit=
12bdbf9f7e20 patch 8.1.0125: virtual edit replace with multi-byte fails at end of line
Christian Brabandt <cb@256bit.org>
parents: 13786
diff changeset
57 endfunc
12bdbf9f7e20 patch 8.1.0125: virtual edit replace with multi-byte fails at end of line
Christian Brabandt <cb@256bit.org>
parents: 13786
diff changeset
58
13786
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
59 func Test_edit_CTRL_G()
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
60 new
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
61 set virtualedit=insert
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
62 call setline(1, ['123', '1', '12'])
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
63 exe "normal! ggA\<c-g>jx\<c-g>jx"
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
64 call assert_equal(['123', '1 x', '12 x'], getline(1,'$'))
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
65
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
66 set virtualedit=all
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
67 %d_
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
68 call setline(1, ['1', '12'])
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
69 exe "normal! ggllix\<c-g>jx"
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
70 call assert_equal(['1 x', '12x'], getline(1,'$'))
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
71
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
72
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
73 bwipe!
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
74 set virtualedit=
0fa21ba32e21 patch 8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set
Christian Brabandt <cb@256bit.org>
parents: 12279
diff changeset
75 endfunc
18481
26256dcadd77 patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
76
26256dcadd77 patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
77 func Test_edit_change()
26256dcadd77 patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
78 new
26256dcadd77 patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
79 set virtualedit=all
26256dcadd77 patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
80 call setline(1, "\t⒌")
26256dcadd77 patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
81 normal Cx
26256dcadd77 patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
82 call assert_equal('x', getline(1))
24725
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
83 " Do a visual block change
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
84 call setline(1, ['a', 'b', 'c'])
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
85 exe "normal gg3l\<C-V>2jcx"
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
86 call assert_equal(['a x', 'b x', 'c x'], getline(1, '$'))
18481
26256dcadd77 patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
87 bwipe!
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
88 set virtualedit=
18481
26256dcadd77 patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
89 endfunc
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
90
32094
7d94b1c0f292 patch 9.0.1378: illegal memory access when using virtual editing
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
91 func Test_edit_special_char()
7d94b1c0f292 patch 9.0.1378: illegal memory access when using virtual editing
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
92 new
7d94b1c0f292 patch 9.0.1378: illegal memory access when using virtual editing
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
93 se ve=all
7d94b1c0f292 patch 9.0.1378: illegal memory access when using virtual editing
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
94 norm a0
7d94b1c0f292 patch 9.0.1378: illegal memory access when using virtual editing
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
95 sil! exe "norm o00000\<Nul>k<a0s"
7d94b1c0f292 patch 9.0.1378: illegal memory access when using virtual editing
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
96
7d94b1c0f292 patch 9.0.1378: illegal memory access when using virtual editing
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
97 bwipe!
7d94b1c0f292 patch 9.0.1378: illegal memory access when using virtual editing
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
98 set virtualedit=
7d94b1c0f292 patch 9.0.1378: illegal memory access when using virtual editing
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
99 endfunc
7d94b1c0f292 patch 9.0.1378: illegal memory access when using virtual editing
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
100
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
101 " Tests for pasting at the beginning, end and middle of a tab character
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
102 " in virtual edit mode.
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
103 func Test_paste_in_tab()
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
104 new
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
105 call append(0, '')
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
106 set virtualedit=all
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
107
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
108 " Tests for pasting a register with characterwise mode type
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
109 call setreg('"', 'xyz', 'c')
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
110
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
111 " paste (p) unnamed register at the beginning of a tab
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
112 call setline(1, "a\tb")
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
113 call cursor(1, 2, 0)
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
114 normal p
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
115 call assert_equal('a xyz b', getline(1))
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
116
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
117 " paste (P) unnamed register at the beginning of a tab
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
118 call setline(1, "a\tb")
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
119 call cursor(1, 2, 0)
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
120 normal P
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
121 call assert_equal("axyz\tb", getline(1))
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
122
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
123 " paste (p) unnamed register at the end of a tab
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
124 call setline(1, "a\tb")
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
125 call cursor(1, 2, 6)
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
126 normal p
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
127 call assert_equal("a\txyzb", getline(1))
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
128
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
129 " paste (P) unnamed register at the end of a tab
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
130 call setline(1, "a\tb")
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
131 call cursor(1, 2, 6)
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
132 normal P
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
133 call assert_equal('a xyz b', getline(1))
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
134
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
135 " Tests for pasting a register with blockwise mode type
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
136 call setreg('"', 'xyz', 'b')
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
137
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
138 " paste (p) unnamed register at the beginning of a tab
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
139 call setline(1, "a\tb")
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
140 call cursor(1, 2, 0)
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
141 normal p
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
142 call assert_equal('a xyz b', getline(1))
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
143
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
144 " paste (P) unnamed register at the beginning of a tab
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
145 call setline(1, "a\tb")
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
146 call cursor(1, 2, 0)
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
147 normal P
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
148 call assert_equal("axyz\tb", getline(1))
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
149
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
150 " paste (p) unnamed register at the end of a tab
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
151 call setline(1, "a\tb")
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
152 call cursor(1, 2, 6)
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
153 normal p
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
154 call assert_equal("a\txyzb", getline(1))
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
155
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
156 " paste (P) unnamed register at the end of a tab
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
157 call setline(1, "a\tb")
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
158 call cursor(1, 2, 6)
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
159 normal P
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
160 call assert_equal('a xyz b', getline(1))
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
161
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
162 " Tests for pasting with gp and gP in virtual edit mode
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
163
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
164 " paste (gp) unnamed register at the beginning of a tab
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
165 call setline(1, "a\tb")
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
166 call cursor(1, 2, 0)
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
167 normal gp
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
168 call assert_equal('a xyz b', getline(1))
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
169 call assert_equal([0, 1, 12, 0, 12], getcurpos())
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
170
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
171 " paste (gP) unnamed register at the beginning of a tab
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
172 call setline(1, "a\tb")
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
173 call cursor(1, 2, 0)
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
174 normal gP
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
175 call assert_equal("axyz\tb", getline(1))
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
176 call assert_equal([0, 1, 5, 0, 5], getcurpos())
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
177
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
178 " paste (gp) unnamed register at the end of a tab
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
179 call setline(1, "a\tb")
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
180 call cursor(1, 2, 6)
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
181 normal gp
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
182 call assert_equal("a\txyzb", getline(1))
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
183 call assert_equal([0, 1, 6, 0, 12], getcurpos())
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
184
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
185 " paste (gP) unnamed register at the end of a tab
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
186 call setline(1, "a\tb")
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
187 call cursor(1, 2, 6)
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
188 normal gP
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
189 call assert_equal('a xyz b', getline(1))
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
190 call assert_equal([0, 1, 12, 0, 12], getcurpos())
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
191
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
192 " Tests for pasting a named register
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
193 let @r = 'xyz'
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
194
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
195 " paste (gp) named register in the middle of a tab
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
196 call setline(1, "a\tb")
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
197 call cursor(1, 2, 2)
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
198 normal "rgp
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
199 call assert_equal('a xyz b', getline(1))
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
200 call assert_equal([0, 1, 8, 0, 8], getcurpos())
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
201
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
202 " paste (gP) named register in the middle of a tab
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
203 call setline(1, "a\tb")
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
204 call cursor(1, 2, 2)
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
205 normal "rgP
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
206 call assert_equal('a xyz b', getline(1))
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
207 call assert_equal([0, 1, 7, 0, 7], getcurpos())
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
208
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
209 bwipe!
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
210 set virtualedit=
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 18481
diff changeset
211 endfunc
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
212
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
213 " Test for yanking a few spaces within a tab to a register
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
214 func Test_yank_in_tab()
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
215 new
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
216 let @r = ''
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
217 call setline(1, "a\tb")
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
218 set virtualedit=all
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
219 call cursor(1, 2, 2)
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
220 normal "ry5l
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
221 call assert_equal(' ', @r)
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
222
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
223 bwipe!
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
224 set virtualedit=
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
225 endfunc
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
226
18791
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
227 " Insert "keyword keyw", ESC, C CTRL-N, shows "keyword ykeyword".
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
228 " Repeating CTRL-N fixes it. (Mary Ellen Foster)
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
229 func Test_ve_completion()
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
230 new
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
231 set completeopt&vim
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
232 set virtualedit=all
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
233 exe "normal ikeyword keyw\<Esc>C\<C-N>"
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
234 call assert_equal('keyword keyword', getline(1))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
235 bwipe!
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
236 set virtualedit=
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
237 endfunc
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
238
33223
def9fc5c92d1 patch 9.0.1886: Various Typos
Christian Brabandt <cb@256bit.org>
parents: 32824
diff changeset
239 " Using "C" then <CR> moves the last remaining character to the next
18791
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
240 " line. (Mary Ellen Foster)
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
241 func Test_ve_del_to_eol()
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
242 new
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
243 set virtualedit=all
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
244 call append(0, 'all your base are belong to us')
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
245 call search('are', 'w')
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
246 exe "normal C\<CR>are belong to vim"
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
247 call assert_equal(['all your base ', 'are belong to vim'], getline(1, 2))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
248 bwipe!
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
249 set virtualedit=
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
250 endfunc
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
251
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
252 " When past the end of a line that ends in a single character "b" skips
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
253 " that word.
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
254 func Test_ve_b_past_eol()
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
255 new
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
256 set virtualedit=all
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
257 call append(0, '1 2 3 4 5 6')
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
258 normal gg^$15lbC7
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
259 call assert_equal('1 2 3 4 5 7', getline(1))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
260 bwipe!
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
261 set virtualedit=
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
262 endfunc
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
263
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
264 " Make sure 'i', 'C', 'a', 'A' and 'D' works
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
265 func Test_ve_ins_del()
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
266 new
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
267 set virtualedit=all
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
268 call append(0, ["'i'", "'C'", "'a'", "'A'", "'D'"])
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
269 call cursor(1, 1)
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
270 normal $4lix
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
271 call assert_equal("'i' x", getline(1))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
272 call cursor(2, 1)
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
273 normal $4lCx
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
274 call assert_equal("'C' x", getline(2))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
275 call cursor(3, 1)
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
276 normal $4lax
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
277 call assert_equal("'a' x", getline(3))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
278 call cursor(4, 1)
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
279 normal $4lAx
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
280 call assert_equal("'A'x", getline(4))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
281 call cursor(5, 1)
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
282 normal $4lDix
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
283 call assert_equal("'D' x", getline(5))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
284 bwipe!
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
285 set virtualedit=
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
286 endfunc
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
287
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
288 " Test for yank bug reported by Mark Waggoner.
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
289 func Test_yank_block()
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
290 new
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
291 set virtualedit=block
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
292 call append(0, repeat(['this is a test'], 3))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
293 exe "normal gg^2w\<C-V>3jy"
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
294 call assert_equal("a\na\na\n ", @")
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
295 bwipe!
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
296 set virtualedit=
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
297 endfunc
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
298
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
299 " Test "r" beyond the end of the line
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
300 func Test_replace_after_eol()
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
301 new
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
302 set virtualedit=all
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
303 call append(0, '"r"')
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
304 normal gg$5lrxa
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
305 call assert_equal('"r" x', getline(1))
24725
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
306 " visual block replace
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
307 %d _
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
308 call setline(1, ['a', '', 'b'])
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
309 exe "normal 2l\<C-V>2jrx"
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
310 call assert_equal(['a x', ' x', 'b x'], getline(1, '$'))
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
311 " visual characterwise selection replace after eol
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
312 %d _
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
313 call setline(1, 'a')
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
314 normal 4lv2lrx
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
315 call assert_equal('a xxx', getline(1))
18791
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
316 bwipe!
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
317 set virtualedit=
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
318 endfunc
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
319
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
320 " Test "r" on a tab
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
321 " Note that for this test, 'ts' must be 8 (the default).
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
322 func Test_replace_on_tab()
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
323 new
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
324 set virtualedit=all
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
325 call append(0, "'r'\t")
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
326 normal gg^5lrxAy
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
327 call assert_equal("'r' x y", getline(1))
19613
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 18791
diff changeset
328 call setline(1, 'aaaaaaaaaaaa')
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 18791
diff changeset
329 exe "normal! gg2lgR\<Tab>"
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 18791
diff changeset
330 call assert_equal("aa\taaaa", getline(1))
18791
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
331 bwipe!
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
332 set virtualedit=
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
333 endfunc
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
334
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
335 " Test to make sure 'x' can delete control characters
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
336 func Test_ve_del_ctrl_chars()
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
337 new
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
338 set virtualedit=all
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
339 call append(0, "a\<C-V>b\<CR>sd")
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
340 set display=uhex
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
341 normal gg^xxxxxxi[text]
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
342 set display=
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
343 call assert_equal('[text]', getline(1))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
344 bwipe!
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
345 set virtualedit=
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
346 endfunc
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
347
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
348 " Test for ^Y/^E due to bad w_virtcol value, reported by
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
349 " Roy <royl@netropolis.net>.
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
350 func Test_ins_copy_char()
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
351 new
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
352 set virtualedit=all
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
353 call append(0, 'abcv8efi.him2kl')
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
354 exe "normal gg^O\<Esc>3li\<C-E>\<Esc>4li\<C-E>\<Esc>4li\<C-E> <--"
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
355 exe "normal j^o\<Esc>4li\<C-Y>\<Esc>4li\<C-Y>\<Esc>4li\<C-Y> <--"
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
356 call assert_equal(' v i m <--', getline(1))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
357 call assert_equal(' 8 . 2 <--', getline(3))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
358 bwipe!
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
359 set virtualedit=
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
360 endfunc
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
361
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
362 " Test for yanking and pasting using the small delete register
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
363 func Test_yank_paste_small_del_reg()
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
364 new
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
365 set virtualedit=all
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
366 call append(0, "foo, bar")
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
367 normal ggdewve"-p
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
368 call assert_equal(', foo', getline(1))
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
369 bwipe!
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
370 set virtualedit=
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
371 endfunc
f966b20bb74d patch 8.1.2384: test 48 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18784
diff changeset
372
19969
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
373 " Test for delete that breaks a tab into spaces
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
374 func Test_delete_break_tab()
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
375 new
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
376 call setline(1, "one\ttwo")
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
377 set virtualedit=all
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
378 normal v3ld
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
379 call assert_equal(' two', getline(1))
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
380 set virtualedit&
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
381 close!
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
382 endfunc
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
383
20941
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
384 " Test for using <BS>, <C-W> and <C-U> in virtual edit mode
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
385 " to erase character, word and line.
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
386 func Test_ve_backspace()
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
387 new
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
388 call setline(1, 'sample')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
389 set virtualedit=all
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
390 set backspace=indent,eol,start
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
391 exe "normal 15|i\<BS>\<BS>"
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
392 call assert_equal([0, 1, 7, 5], getpos('.'))
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
393 exe "normal 15|i\<C-W>"
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
394 call assert_equal([0, 1, 6, 0], getpos('.'))
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
395 exe "normal 15|i\<C-U>"
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
396 call assert_equal([0, 1, 1, 0], getpos('.'))
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
397 set backspace&
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
398 set virtualedit&
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
399 close!
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
400 endfunc
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
401
24725
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
402 " Test for delete (x) on EOL character and after EOL
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
403 func Test_delete_past_eol()
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
404 new
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
405 call setline(1, "ab")
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
406 set virtualedit=all
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
407 exe "normal 2lx"
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
408 call assert_equal('ab', getline(1))
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
409 exe "normal 10lx"
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
410 call assert_equal('ab', getline(1))
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
411 set virtualedit&
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
412 bw!
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
413 endfunc
3cdbce5ba73f patch 8.2.2901: some operators not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
414
25380
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
415 " After calling s:TryVirtualeditReplace(), line 1 will contain one of these
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
416 " two strings, depending on whether virtual editing is on or off.
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
417 let s:result_ve_on = 'a x'
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
418 let s:result_ve_off = 'x'
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
419
25487
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
420 " Utility function for Test_global_local_virtualedit()
25380
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
421 func s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
422 call setline(1, 'a')
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
423 normal gg7l
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
424 normal rx
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
425 endfunc
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
426
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
427 " Test for :set and :setlocal
25487
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
428 func Test_global_local_virtualedit()
25380
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
429 new
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
430
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
431 " Verify that 'virtualedit' is initialized to empty, can be set globally to
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
432 " all and to empty, and can be set locally to all and to empty.
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
433 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
434 call assert_equal(s:result_ve_off, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
435 set ve=all
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
436 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
437 call assert_equal(s:result_ve_on, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
438 set ve=
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
439 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
440 call assert_equal(s:result_ve_off, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
441 setlocal ve=all
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
442 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
443 call assert_equal(s:result_ve_on, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
444 setlocal ve=
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
445 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
446 call assert_equal(s:result_ve_off, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
447
25487
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
448 " Verify that :set affects multiple windows.
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
449 split
25380
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
450 set ve=all
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
451 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
452 call assert_equal(s:result_ve_on, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
453 wincmd p
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
454 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
455 call assert_equal(s:result_ve_on, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
456 set ve=
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
457 wincmd p
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
458 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
459 call assert_equal(s:result_ve_off, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
460 bwipe!
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
461
25487
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
462 " Verify that :setlocal affects only the current window.
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
463 new
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
464 split
25380
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
465 setlocal ve=all
25487
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
466 call s:TryVirtualeditReplace()
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
467 call assert_equal(s:result_ve_on, getline(1))
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
468 wincmd p
25380
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
469 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
470 call assert_equal(s:result_ve_off, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
471 bwipe!
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
472 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
473 call assert_equal(s:result_ve_off, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
474
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
475 " Verify that the buffer 'virtualedit' state follows the global value only
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
476 " when empty and that "none" works as expected.
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
477 "
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
478 " 'virtualedit' State
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
479 " +--------+--------------------------+
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
480 " | Local | Global |
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
481 " | | |
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
482 " +--------+--------+--------+--------+
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
483 " | | "" | "all" | "none" |
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
484 " +--------+--------+--------+--------+
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
485 " | "" | off | on | off |
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
486 " | "all" | on | on | on |
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
487 " | "none" | off | off | off |
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
488 " +--------+--------+--------+--------+
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
489 new
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
490
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
491 setglobal ve=
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
492 setlocal ve=
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
493 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
494 call assert_equal(s:result_ve_off, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
495 setlocal ve=all
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
496 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
497 call assert_equal(s:result_ve_on, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
498 setlocal ve=none
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
499 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
500 call assert_equal(s:result_ve_off, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
501
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
502 setglobal ve=all
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
503 setlocal ve=
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
504 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
505 call assert_equal(s:result_ve_on, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
506 setlocal ve=all
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
507 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
508 call assert_equal(s:result_ve_on, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
509 setlocal ve=none
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
510 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
511 call assert_equal(s:result_ve_off, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
512 setlocal ve=NONE
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
513 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
514 call assert_equal(s:result_ve_off, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
515
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
516 setglobal ve=none
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
517 setlocal ve=
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
518 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
519 call assert_equal(s:result_ve_off, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
520 setlocal ve=all
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
521 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
522 call assert_equal(s:result_ve_on, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
523 setlocal ve=none
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
524 call s:TryVirtualeditReplace()
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
525 call assert_equal(s:result_ve_off, getline(1))
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
526
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
527 bwipe!
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
528
25487
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
529 " Verify that the 'virtualedit' state is copied to new windows.
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
530 new
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
531 call s:TryVirtualeditReplace()
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
532 call assert_equal(s:result_ve_off, getline(1))
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
533 split
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
534 setlocal ve=all
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
535 call s:TryVirtualeditReplace()
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
536 call assert_equal(s:result_ve_on, getline(1))
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
537 split
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
538 call s:TryVirtualeditReplace()
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
539 call assert_equal(s:result_ve_on, getline(1))
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
540 setlocal ve=
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
541 split
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
542 call s:TryVirtualeditReplace()
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
543 call assert_equal(s:result_ve_off, getline(1))
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
544 bwipe!
c26ff3203b43 patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Bram Moolenaar <Bram@vim.org>
parents: 25380
diff changeset
545
25380
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
546 setlocal virtualedit&
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
547 set virtualedit&
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
548 endfunc
ac88cd21ae88 patch 8.2.3227: 'virtualedit' can only be set globally
Bram Moolenaar <Bram@vim.org>
parents: 24725
diff changeset
549
31845
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
550 func Test_virtualedit_setlocal()
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
551 enew
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
552 setglobal virtualedit=all
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
553 setlocal virtualedit=all
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
554 normal! l
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
555 redraw
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
556 setlocal virtualedit=none
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
557 call assert_equal(1, wincol())
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
558
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
559 setlocal virtualedit&
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
560 set virtualedit&
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
561 endfunc
2ce8e7c4acf4 patch 9.0.1255: changing 'virtualedit' does not have immediate effect
Bram Moolenaar <Bram@vim.org>
parents: 30295
diff changeset
562
29674
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
563 func Test_virtualedit_mouse()
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
564 let save_mouse = &mouse
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
565 set mouse=a
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
566 set virtualedit=all
33307
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
567 botright new
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
568 let row = win_screenpos(0)[0]
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
569 20vsplit
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
570 wincmd p
29674
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
571
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
572 call setline(1, ["text\tword"])
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
573 redraw
33307
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
574 call test_setmouse(row, 21 + 4)
29674
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
575 call feedkeys("\<LeftMouse>", "xt")
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
576 call assert_equal([0, 1, 4, 0, 4], getcurpos())
33307
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
577 call test_setmouse(row, 21 + 5)
29674
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
578 call feedkeys("\<LeftMouse>", "xt")
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
579 call assert_equal([0, 1, 5, 0, 5], getcurpos())
33307
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
580 call test_setmouse(row, 21 + 6)
29674
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
581 call feedkeys("\<LeftMouse>", "xt")
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
582 call assert_equal([0, 1, 5, 1, 6], getcurpos())
33307
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
583 call test_setmouse(row, 21 + 7)
29674
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
584 call feedkeys("\<LeftMouse>", "xt")
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
585 call assert_equal([0, 1, 5, 2, 7], getcurpos())
33307
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
586 call test_setmouse(row, 21 + 8)
29674
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
587 call feedkeys("\<LeftMouse>", "xt")
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
588 call assert_equal([0, 1, 5, 3, 8], getcurpos())
33307
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
589 call test_setmouse(row, 21 + 9)
29674
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
590 call feedkeys("\<LeftMouse>", "xt")
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
591 call assert_equal([0, 1, 6, 0, 9], getcurpos())
33307
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
592 call test_setmouse(row, 21 + 12)
32824
22a08166a876 patch 9.0.1725: cursor pos wrong after concealed text with 'virtualedit'
Christian Brabandt <cb@256bit.org>
parents: 32094
diff changeset
593 call feedkeys("\<LeftMouse>", "xt")
22a08166a876 patch 9.0.1725: cursor pos wrong after concealed text with 'virtualedit'
Christian Brabandt <cb@256bit.org>
parents: 32094
diff changeset
594 call assert_equal([0, 1, 9, 0, 12], getcurpos())
33307
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
595 call test_setmouse(row, 21 + 13)
32824
22a08166a876 patch 9.0.1725: cursor pos wrong after concealed text with 'virtualedit'
Christian Brabandt <cb@256bit.org>
parents: 32094
diff changeset
596 call feedkeys("\<LeftMouse>", "xt")
22a08166a876 patch 9.0.1725: cursor pos wrong after concealed text with 'virtualedit'
Christian Brabandt <cb@256bit.org>
parents: 32094
diff changeset
597 call assert_equal([0, 1, 10, 0, 13], getcurpos())
33307
cb447202030d patch 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
Christian Brabandt <cb@256bit.org>
parents: 33223
diff changeset
598 call test_setmouse(row, 21 + 15)
29674
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
599 call feedkeys("\<LeftMouse>", "xt")
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
600 call assert_equal([0, 1, 10, 2, 15], getcurpos())
33347
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
601 call test_setmouse(row, 21 + 20)
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
602 call feedkeys("\<LeftMouse>", "xt")
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
603 call assert_equal([0, 1, 10, 7, 20], getcurpos())
29674
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
604
33316
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
605 setlocal nowrap
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
606 call setline(2, repeat('a', 19))
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
607 normal! j14zl
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
608 redraw
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
609 call test_setmouse(row, 21 + 1)
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
610 call feedkeys("\<LeftMouse>", "xt")
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
611 call assert_equal([0, 1, 10, 2, 15], getcurpos())
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
612 call test_setmouse(row, 21 + 11)
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
613 call feedkeys("\<LeftMouse>", "xt")
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
614 call assert_equal([0, 1, 10, 12, 25], getcurpos())
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
615 call test_setmouse(row + 1, 21 + 1)
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
616 call feedkeys("\<LeftMouse>", "xt")
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
617 call assert_equal([0, 2, 15, 0, 15], getcurpos())
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
618 call test_setmouse(row + 1, 21 + 11)
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
619 call feedkeys("\<LeftMouse>", "xt")
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
620 call assert_equal([0, 2, 20, 5, 25], getcurpos())
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
621
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
622 setlocal number numberwidth=2
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
623 redraw
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
624 call test_setmouse(row, 21 + 3)
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
625 call feedkeys("\<LeftMouse>", "xt")
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
626 call assert_equal([0, 1, 10, 2, 15], getcurpos())
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
627 call test_setmouse(row, 21 + 13)
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
628 call feedkeys("\<LeftMouse>", "xt")
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
629 call assert_equal([0, 1, 10, 12, 25], getcurpos())
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
630 call test_setmouse(row + 1, 21 + 3)
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
631 call feedkeys("\<LeftMouse>", "xt")
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
632 call assert_equal([0, 2, 15, 0, 15], getcurpos())
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
633 call test_setmouse(row + 1, 21 + 13)
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
634 call feedkeys("\<LeftMouse>", "xt")
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
635 call assert_equal([0, 2, 20, 5, 25], getcurpos())
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
636 setlocal nonumber
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
637
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
638 if has('signs')
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
639 sign define Sign1 text=口
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
640 sign place 1 name=Sign1 line=1
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
641 sign place 2 name=Sign1 line=2
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
642 redraw
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
643 call test_setmouse(row, 21 + 3)
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
644 call feedkeys("\<LeftMouse>", "xt")
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
645 call assert_equal([0, 1, 10, 2, 15], getcurpos())
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
646 call test_setmouse(row, 21 + 13)
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
647 call feedkeys("\<LeftMouse>", "xt")
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
648 call assert_equal([0, 1, 10, 12, 25], getcurpos())
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
649 call test_setmouse(row + 1, 21 + 3)
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
650 call feedkeys("\<LeftMouse>", "xt")
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
651 call assert_equal([0, 2, 15, 0, 15], getcurpos())
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
652 call test_setmouse(row + 1, 21 + 13)
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
653 call feedkeys("\<LeftMouse>", "xt")
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
654 call assert_equal([0, 2, 20, 5, 25], getcurpos())
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
655 sign unplace 1
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
656 sign unplace 2
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
657 sign undefine Sign1
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
658 endif
a2dfcbbfc301 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Christian Brabandt <cb@256bit.org>
parents: 33307
diff changeset
659
33347
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
660 wincmd h
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
661 4wincmd >
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
662 normal! gg24I.
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
663 redraw
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
664 call test_setmouse(row + 1, 12)
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
665 call feedkeys("\<LeftMouse>", "xt")
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
666 call assert_equal([0, 1, 24 + 9, 0, 24 + 12], getcurpos())
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
667 call test_setmouse(row + 1, 13)
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
668 call feedkeys("\<LeftMouse>", "xt")
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
669 call assert_equal([0, 1, 24 + 10, 0, 24 + 13], getcurpos())
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
670 call test_setmouse(row + 1, 15)
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
671 call feedkeys("\<LeftMouse>", "xt")
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
672 call assert_equal([0, 1, 24 + 10, 2, 24 + 15], getcurpos())
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
673 call test_setmouse(row + 1, 20)
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
674 call feedkeys("\<LeftMouse>", "xt")
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
675 call assert_equal([0, 1, 24 + 10, 7, 24 + 20], getcurpos())
f47ee07ae029 patch 9.0.1937: missing test for mouse click + 'virtedit'
Christian Brabandt <cb@256bit.org>
parents: 33316
diff changeset
676
29674
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
677 bwipe!
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
678 let &mouse = save_mouse
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
679 set virtualedit&
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
680 endfunc
b11130c6e694 patch 9.0.0177: cursor position wrong with 'virtualedit' and mouse click
Bram Moolenaar <Bram@vim.org>
parents: 25487
diff changeset
681
31849
dbec60b8c253 patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents: 31845
diff changeset
682 " this was replacing the NUL at the end of the line
30295
da023a22d73e patch 9.0.0483: illegal memory access when replacing in virtualedit mode
Bram Moolenaar <Bram@vim.org>
parents: 29674
diff changeset
683 func Test_virtualedit_replace_after_tab()
da023a22d73e patch 9.0.0483: illegal memory access when replacing in virtualedit mode
Bram Moolenaar <Bram@vim.org>
parents: 29674
diff changeset
684 new
da023a22d73e patch 9.0.0483: illegal memory access when replacing in virtualedit mode
Bram Moolenaar <Bram@vim.org>
parents: 29674
diff changeset
685 s/\v/ 0
da023a22d73e patch 9.0.0483: illegal memory access when replacing in virtualedit mode
Bram Moolenaar <Bram@vim.org>
parents: 29674
diff changeset
686 set ve=all
da023a22d73e patch 9.0.0483: illegal memory access when replacing in virtualedit mode
Bram Moolenaar <Bram@vim.org>
parents: 29674
diff changeset
687 let @" = ''
da023a22d73e patch 9.0.0483: illegal memory access when replacing in virtualedit mode
Bram Moolenaar <Bram@vim.org>
parents: 29674
diff changeset
688 sil! norm vPvr0
31849
dbec60b8c253 patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents: 31845
diff changeset
689
30295
da023a22d73e patch 9.0.0483: illegal memory access when replacing in virtualedit mode
Bram Moolenaar <Bram@vim.org>
parents: 29674
diff changeset
690 call assert_equal("\t0", getline(1))
da023a22d73e patch 9.0.0483: illegal memory access when replacing in virtualedit mode
Bram Moolenaar <Bram@vim.org>
parents: 29674
diff changeset
691 set ve&
da023a22d73e patch 9.0.0483: illegal memory access when replacing in virtualedit mode
Bram Moolenaar <Bram@vim.org>
parents: 29674
diff changeset
692 bwipe!
da023a22d73e patch 9.0.0483: illegal memory access when replacing in virtualedit mode
Bram Moolenaar <Bram@vim.org>
parents: 29674
diff changeset
693 endfunc
da023a22d73e patch 9.0.0483: illegal memory access when replacing in virtualedit mode
Bram Moolenaar <Bram@vim.org>
parents: 29674
diff changeset
694
da023a22d73e patch 9.0.0483: illegal memory access when replacing in virtualedit mode
Bram Moolenaar <Bram@vim.org>
parents: 29674
diff changeset
695
18784
7b57a80f70f6 patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
696 " vim: shiftwidth=2 sts=2 expandtab