Mercurial > vim
annotate src/testdir/test_jumplist.vim @ 28388:320991d9812e v8.2.4719
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Commit: https://github.com/vim/vim/commit/a0f659c76e22108880f857b8961422afc5ed8f5d
Author: Christian Brabandt <cb@256bit.org>
Date: Sat Apr 9 13:35:00 2022 +0100
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Problem: ">" marker sometimes not displayed in the jumplist.
Solution: If the buffer no longer exists show "-invalid-". (Christian
Brabandt, closes #10131, closes #10100)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 09 Apr 2022 14:45:05 +0200 |
parents | 255bc9a08e58 |
children | f08ed0738f7a |
rev | line source |
---|---|
13246
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " Tests for the jumplist functionality |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 " Tests for the getjumplist() function |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
4 func Test_getjumplist() |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 %bwipe |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 clearjumps |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 call assert_equal([[], 0], getjumplist()) |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 call assert_equal([[], 0], getjumplist(1)) |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 call assert_equal([[], 0], getjumplist(1, 1)) |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 call assert_equal([], getjumplist(100)) |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
12 call assert_equal([], getjumplist(1, 100)) |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 let lines = [] |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 for i in range(1, 100) |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 call add(lines, "Line " . i) |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 endfor |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 call writefile(lines, "Xtest") |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 " Jump around and create a jump list |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 edit Xtest |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 let bnr = bufnr('%') |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 normal 50% |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 normal G |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 normal gg |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
26 |
15788
c24572e66556
patch 8.1.0901: index in getjumplist() may be wrong
Bram Moolenaar <Bram@vim.org>
parents:
13248
diff
changeset
|
27 let expected = [[ |
13246
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0}, |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
29 \ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0}, |
15788
c24572e66556
patch 8.1.0901: index in getjumplist() may be wrong
Bram Moolenaar <Bram@vim.org>
parents:
13248
diff
changeset
|
30 \ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 3] |
c24572e66556
patch 8.1.0901: index in getjumplist() may be wrong
Bram Moolenaar <Bram@vim.org>
parents:
13248
diff
changeset
|
31 call assert_equal(expected, getjumplist()) |
c24572e66556
patch 8.1.0901: index in getjumplist() may be wrong
Bram Moolenaar <Bram@vim.org>
parents:
13248
diff
changeset
|
32 " jumplist doesn't change in between calls |
c24572e66556
patch 8.1.0901: index in getjumplist() may be wrong
Bram Moolenaar <Bram@vim.org>
parents:
13248
diff
changeset
|
33 call assert_equal(expected, getjumplist()) |
13246
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
34 |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
35 " Traverse the jump list and verify the results |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
36 5 |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
37 exe "normal \<C-O>" |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
15788
diff
changeset
|
38 call assert_equal(2, 1->getjumplist()[1]) |
13246
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
39 exe "normal 2\<C-O>" |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
40 call assert_equal(0, getjumplist(1, 1)[1]) |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
41 exe "normal 3\<C-I>" |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
42 call assert_equal(3, getjumplist()[1]) |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 exe "normal \<C-O>" |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 normal 20% |
15788
c24572e66556
patch 8.1.0901: index in getjumplist() may be wrong
Bram Moolenaar <Bram@vim.org>
parents:
13248
diff
changeset
|
45 let expected = [[ |
13246
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
46 \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0}, |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
47 \ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0}, |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
48 \ {'lnum': 5, 'bufnr': bnr, 'col': 0, 'coladd': 0}, |
15788
c24572e66556
patch 8.1.0901: index in getjumplist() may be wrong
Bram Moolenaar <Bram@vim.org>
parents:
13248
diff
changeset
|
49 \ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 4] |
c24572e66556
patch 8.1.0901: index in getjumplist() may be wrong
Bram Moolenaar <Bram@vim.org>
parents:
13248
diff
changeset
|
50 call assert_equal(expected, getjumplist()) |
c24572e66556
patch 8.1.0901: index in getjumplist() may be wrong
Bram Moolenaar <Bram@vim.org>
parents:
13248
diff
changeset
|
51 " jumplist doesn't change in between calls |
c24572e66556
patch 8.1.0901: index in getjumplist() may be wrong
Bram Moolenaar <Bram@vim.org>
parents:
13248
diff
changeset
|
52 call assert_equal(expected, getjumplist()) |
13246
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
53 |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
54 let l = getjumplist() |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
55 call test_garbagecollect_now() |
13248
5958573d8a72
patch 8.0.1498: getjumplist() returns duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13246
diff
changeset
|
56 call assert_equal(4, l[1]) |
13246
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
57 clearjumps |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
58 call test_garbagecollect_now() |
13248
5958573d8a72
patch 8.0.1498: getjumplist() returns duplicate entries
Christian Brabandt <cb@256bit.org>
parents:
13246
diff
changeset
|
59 call assert_equal(4, l[1]) |
13246
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
60 |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
61 call delete("Xtest") |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
62 endfunc |
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
63 |
28388
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
64 func Test_jumplist_invalid() |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
65 new |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
66 clearjumps |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
67 " put some randome text |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
68 put ='a' |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
69 let prev = bufnr('%') |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
70 setl nomodified bufhidden=wipe |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
71 e XXJumpListBuffer |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
72 let bnr = bufnr('%') |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
73 " 1) empty jumplist |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
74 let expected = [[ |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
75 \ {'lnum': 2, 'bufnr': prev, 'col': 0, 'coladd': 0}], 1] |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
76 call assert_equal(expected, getjumplist()) |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
77 let jumps = execute(':jumps') |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
78 call assert_equal('>', jumps[-1:]) |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
79 " now jump back |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
80 exe ":norm! \<c-o>" |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
81 let expected = [[ |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
82 \ {'lnum': 2, 'bufnr': prev, 'col': 0, 'coladd': 0}, |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
83 \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 0] |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
84 call assert_equal(expected, getjumplist()) |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
85 let jumps = execute(':jumps') |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
86 call assert_match('> 0 2 0 -invalid-', jumps) |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
87 endfunc |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
88 |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
89 " Test for '' mark in an empty buffer |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
90 |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
91 func Test_empty_buffer() |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
92 new |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
93 insert |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
94 a |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
95 b |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
96 c |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
97 d |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
98 . |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
99 call assert_equal(1, line("''")) |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
100 bwipe! |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
101 endfunc |
320991d9812e
patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Bram Moolenaar <Bram@vim.org>
parents:
26532
diff
changeset
|
102 |
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
17857
diff
changeset
|
103 " vim: shiftwidth=2 sts=2 expandtab |