From 41828a7302d1ca17d5b84ff55aa9c91bd846ad64 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sun, 19 May 2019 07:42:41 -0400 Subject: vim-patch:8.0.1497: getting the jump list requires parsing the output of :jumps Problem: Getting the jump list requires parsing the output of :jumps. Solution: Add getjumplist(). (Yegappan Lakshmanan, closes vim/vim#2609) https://github.com/vim/vim/commit/4f50588ba336e7f086a72c53f5688c2494fc34b3 --- src/nvim/testdir/test_jumplist.vim | 64 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/nvim/testdir/test_jumplist.vim (limited to 'src/nvim/testdir') diff --git a/src/nvim/testdir/test_jumplist.vim b/src/nvim/testdir/test_jumplist.vim new file mode 100644 index 0000000000..7079d21aa4 --- /dev/null +++ b/src/nvim/testdir/test_jumplist.vim @@ -0,0 +1,64 @@ +" Tests for the jumplist functionality + +" Tests for the getjumplist() function +func Test_getjumplist() + if !has("jumplist") + return + endif + + %bwipe + clearjumps + call assert_equal([[], 0], getjumplist()) + call assert_equal([[], 0], getjumplist(1)) + call assert_equal([[], 0], getjumplist(1, 1)) + + call assert_equal([], getjumplist(100)) + call assert_equal([], getjumplist(1, 100)) + + let lines = [] + for i in range(1, 100) + call add(lines, "Line " . i) + endfor + call writefile(lines, "Xtest") + + " Jump around and create a jump list + edit Xtest + let bnr = bufnr('%') + normal 50% + normal G + normal gg + + call assert_equal([[ + \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0}, + \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0}, + \ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0}, + \ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 4], + \ getjumplist()) + + " Traverse the jump list and verify the results + 5 + exe "normal \" + call assert_equal(2, getjumplist(1)[1]) + exe "normal 2\" + call assert_equal(0, getjumplist(1, 1)[1]) + exe "normal 3\" + call assert_equal(3, getjumplist()[1]) + exe "normal \" + normal 20% + call assert_equal([[ + \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0}, + \ {'lnum': 50, 'bufnr': bnr, 'col': 0, 'coladd': 0}, + \ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}, + \ {'lnum': 5, 'bufnr': bnr, 'col': 0, 'coladd': 0}, + \ {'lnum': 100, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 5], + \ getjumplist()) + + let l = getjumplist() + call test_garbagecollect_now() + call assert_equal(5, l[1]) + clearjumps + call test_garbagecollect_now() + call assert_equal(5, l[1]) + + call delete("Xtest") +endfunc -- cgit