Mercurial > vim
annotate src/testdir/test_marks.vim @ 19201:e7b4fff348dd v8.2.0159
patch 8.2.0159: non-materialized range() list causes problems
Commit: https://github.com/vim/vim/commit/50985eb1f0bd3c73ce727f9bbd66c839c92ef0da
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jan 27 22:09:39 2020 +0100
patch 8.2.0159: non-materialized range() list causes problems
Problem: Non-materialized range() list causes problems. (Fujiwara Takuya)
Solution: Materialize the list where needed.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 27 Jan 2020 22:15:07 +0100 |
parents | a51fee786930 |
children | 2f4be7ca1b1b |
rev | line source |
---|---|
10068
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 " Test that a deleted mark is restored after delete-undo-redo-undo. |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
14319
diff
changeset
|
3 func Test_Restore_DelMark() |
10068
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
4 enew! |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 call append(0, [" textline A", " textline B", " textline C"]) |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 normal! 2gg |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 set nocp viminfo+=nviminfo |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 exe "normal! i\<C-G>u\<Esc>" |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 exe "normal! maddu\<C-R>u" |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 let pos = getpos("'a") |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 call assert_equal(2, pos[1]) |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
12 call assert_equal(1, pos[2]) |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 enew! |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
14319
diff
changeset
|
14 endfunc |
10068
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 " Test that CTRL-A and CTRL-X updates last changed mark '[, ']. |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
14319
diff
changeset
|
17 func Test_Incr_Marks() |
10068
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 enew! |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 call append(0, ["123 123 123", "123 123 123", "123 123 123"]) |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 normal! gg |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 execute "normal! \<C-A>`[v`]rAjwvjw\<C-X>`[v`]rX" |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 call assert_equal("AAA 123 123", getline(1)) |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 call assert_equal("123 XXXXXXX", getline(2)) |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 call assert_equal("XXX 123 123", getline(3)) |
c577c6a2e88b
commit https://github.com/vim/vim/commit/19a1669ffc796e30a83c5600f82f12ebf63a2261
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 enew! |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
14319
diff
changeset
|
26 endfunc |
10730
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
27 |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
28 func Test_setpos() |
19121
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
29 new Xone |
10730
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
30 let onebuf = bufnr('%') |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
31 let onewin = win_getid() |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
32 call setline(1, ['aaa', 'bbb', 'ccc']) |
19121
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
33 new Xtwo |
10730
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
34 let twobuf = bufnr('%') |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
35 let twowin = win_getid() |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
36 call setline(1, ['aaa', 'bbb', 'ccc']) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
37 |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
38 " for the cursor the buffer number is ignored |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
39 call setpos(".", [0, 2, 1, 0]) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
40 call assert_equal([0, 2, 1, 0], getpos(".")) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
41 call setpos(".", [onebuf, 3, 3, 0]) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
42 call assert_equal([0, 3, 3, 0], getpos(".")) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
43 |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
44 call setpos("''", [0, 1, 3, 0]) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
45 call assert_equal([0, 1, 3, 0], getpos("''")) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
46 call setpos("''", [onebuf, 2, 2, 0]) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
47 call assert_equal([0, 2, 2, 0], getpos("''")) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
48 |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
49 " buffer-local marks |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
50 for mark in ["'a", "'\"", "'[", "']", "'<", "'>"] |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
51 call win_gotoid(twowin) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
52 call setpos(mark, [0, 2, 1, 0]) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
53 call assert_equal([0, 2, 1, 0], getpos(mark), "for mark " . mark) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
54 call setpos(mark, [onebuf, 1, 3, 0]) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
55 call win_gotoid(onewin) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
56 call assert_equal([0, 1, 3, 0], getpos(mark), "for mark " . mark) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
57 endfor |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
58 |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
59 " global marks |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
60 call win_gotoid(twowin) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
61 call setpos("'N", [0, 2, 1, 0]) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
62 call assert_equal([twobuf, 2, 1, 0], getpos("'N")) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
63 call setpos("'N", [onebuf, 1, 3, 0]) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
64 call assert_equal([onebuf, 1, 3, 0], getpos("'N")) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
65 |
19121
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
66 " try invalid column and check virtcol() |
10730
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
67 call win_gotoid(onewin) |
19121
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
68 call setpos("'a", [0, 1, 2, 0]) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
69 call assert_equal([0, 1, 2, 0], getpos("'a")) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
70 call setpos("'a", [0, 1, -5, 0]) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
71 call assert_equal([0, 1, 2, 0], getpos("'a")) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
72 call setpos("'a", [0, 1, 0, 0]) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
73 call assert_equal([0, 1, 1, 0], getpos("'a")) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
74 call setpos("'a", [0, 1, 4, 0]) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
75 call assert_equal([0, 1, 4, 0], getpos("'a")) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
76 call assert_equal(4, virtcol("'a")) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
77 call setpos("'a", [0, 1, 5, 0]) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
78 call assert_equal([0, 1, 5, 0], getpos("'a")) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
79 call assert_equal(4, virtcol("'a")) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
80 call setpos("'a", [0, 1, 21341234, 0]) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
81 call assert_equal([0, 1, 21341234, 0], getpos("'a")) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
82 call assert_equal(4, virtcol("'a")) |
a51fee786930
patch 8.2.0120: virtcol() does not check arguments to be valid
Bram Moolenaar <Bram@vim.org>
parents:
18979
diff
changeset
|
83 |
10730
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
84 bwipe! |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
85 call win_gotoid(twowin) |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
86 bwipe! |
44e9340dc604
patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents:
10068
diff
changeset
|
87 endfunc |
12612
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
88 |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
89 func Test_marks_cmd() |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
90 new Xone |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
91 call setline(1, ['aaa', 'bbb']) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
92 norm! maG$mB |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
93 w! |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
94 new Xtwo |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
95 call setline(1, ['ccc', 'ddd']) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
96 norm! $mcGmD |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
97 w! |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
98 |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
99 b Xone |
14305
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
100 let a = split(execute('marks'), "\n") |
12612
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
101 call assert_equal(9, len(a)) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
102 call assert_equal('mark line col file/text', a[0]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
103 call assert_equal(" ' 2 0 bbb", a[1]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
104 call assert_equal(' a 1 0 aaa', a[2]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
105 call assert_equal(' B 2 2 bbb', a[3]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
106 call assert_equal(' D 2 0 Xtwo', a[4]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
107 call assert_equal(' " 1 0 aaa', a[5]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
108 call assert_equal(' [ 1 0 aaa', a[6]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
109 call assert_equal(' ] 2 0 bbb', a[7]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
110 call assert_equal(' . 2 0 bbb', a[8]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
111 |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
112 b Xtwo |
14305
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
113 let a = split(execute('marks'), "\n") |
12612
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
114 call assert_equal(9, len(a)) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
115 call assert_equal('mark line col file/text', a[0]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
116 call assert_equal(" ' 1 0 ccc", a[1]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
117 call assert_equal(' c 1 2 ccc', a[2]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
118 call assert_equal(' B 2 2 Xone', a[3]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
119 call assert_equal(' D 2 0 ddd', a[4]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
120 call assert_equal(' " 2 0 ddd', a[5]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
121 call assert_equal(' [ 1 0 ccc', a[6]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
122 call assert_equal(' ] 2 0 ddd', a[7]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
123 call assert_equal(' . 2 0 ddd', a[8]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
124 |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
125 b Xone |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
126 delmarks aB |
14305
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
127 let a = split(execute('marks aBcD'), "\n") |
12612
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
128 call assert_equal(2, len(a)) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
129 call assert_equal('mark line col file/text', a[0]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
130 call assert_equal(' D 2 0 Xtwo', a[1]) |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
131 |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
132 b Xtwo |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
133 delmarks cD |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
134 call assert_fails('marks aBcD', 'E283:') |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
135 |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
136 call delete('Xone') |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
137 call delete('Xtwo') |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
138 %bwipe |
3b600d16d9cb
patch 8.0.1184: the :marks command is not tested
Christian Brabandt <cb@256bit.org>
parents:
10730
diff
changeset
|
139 endfunc |
14305
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
140 |
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
141 func Test_marks_cmd_multibyte() |
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
142 new Xone |
14319
f7e80dbb4f00
patch 8.1.0175: marks test fails in very wide window
Christian Brabandt <cb@256bit.org>
parents:
14305
diff
changeset
|
143 call setline(1, [repeat('á', &columns)]) |
14305
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
144 norm! ma |
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
145 |
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
146 let a = split(execute('marks a'), "\n") |
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
147 call assert_equal(2, len(a)) |
14319
f7e80dbb4f00
patch 8.1.0175: marks test fails in very wide window
Christian Brabandt <cb@256bit.org>
parents:
14305
diff
changeset
|
148 let expected = ' a 1 0 ' . repeat('á', &columns - 16) |
14305
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
149 call assert_equal(expected, a[1]) |
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
150 |
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
151 bwipe! |
8a4c0ab88201
patch 8.1.0168: output of :marks is too short with multi-byte chars
Christian Brabandt <cb@256bit.org>
parents:
12612
diff
changeset
|
152 endfunc |
15736
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
153 |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
154 func Test_delmarks() |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
155 new |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
156 norm mx |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
157 norm `x |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
158 delmarks x |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
159 call assert_fails('norm `x', 'E20:') |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
160 |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
161 " Deleting an already deleted mark should not fail. |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
162 delmarks x |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
163 |
18979
de2d1820215a
patch 8.2.0050: after deleting a file mark it is still in viminfo
Bram Moolenaar <Bram@vim.org>
parents:
18784
diff
changeset
|
164 " getpos() should return all zeros after deleting a filemark. |
de2d1820215a
patch 8.2.0050: after deleting a file mark it is still in viminfo
Bram Moolenaar <Bram@vim.org>
parents:
18784
diff
changeset
|
165 norm mA |
de2d1820215a
patch 8.2.0050: after deleting a file mark it is still in viminfo
Bram Moolenaar <Bram@vim.org>
parents:
18784
diff
changeset
|
166 delmarks A |
de2d1820215a
patch 8.2.0050: after deleting a file mark it is still in viminfo
Bram Moolenaar <Bram@vim.org>
parents:
18784
diff
changeset
|
167 call assert_equal([0, 0, 0, 0], getpos("'A")) |
de2d1820215a
patch 8.2.0050: after deleting a file mark it is still in viminfo
Bram Moolenaar <Bram@vim.org>
parents:
18784
diff
changeset
|
168 |
15736
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
169 " Test deleting a range of marks. |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
170 norm ma |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
171 norm mb |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
172 norm mc |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
173 norm mz |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
174 delmarks b-z |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
175 norm `a |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
176 call assert_fails('norm `b', 'E20:') |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
177 call assert_fails('norm `c', 'E20:') |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
178 call assert_fails('norm `z', 'E20:') |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
179 call assert_fails('delmarks z-b', 'E475:') |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
180 |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
181 call assert_fails('delmarks', 'E471:') |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
182 call assert_fails('delmarks /', 'E475:') |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
183 |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
184 " Test delmarks! |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
185 norm mx |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
186 norm `x |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
187 delmarks! |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
188 call assert_fails('norm `x', 'E20:') |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
189 call assert_fails('delmarks! x', 'E474:') |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
190 |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
191 bwipe! |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
192 endfunc |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
193 |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
194 func Test_mark_error() |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
195 call assert_fails('mark', 'E471:') |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
196 call assert_fails('mark xx', 'E488:') |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
197 call assert_fails('mark _', 'E191:') |
6839f99d2269
patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
198 endfunc |
18784
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
199 |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
200 " Test for :lockmarks when pasting content |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
201 func Test_lockmarks_with_put() |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
202 new |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
203 call append(0, repeat(['sky is blue'], 4)) |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
204 normal gg |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
205 1,2yank r |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
206 put r |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
207 normal G |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
208 lockmarks put r |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
209 call assert_equal(2, line("'[")) |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
210 call assert_equal(3, line("']")) |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
211 |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
212 bwipe! |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
213 endfunc |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
214 |
7b57a80f70f6
patch 8.1.2381: not all register related code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
15736
diff
changeset
|
215 " vim: shiftwidth=2 sts=2 expandtab |