Describe gina#core#diffjump Before all let Path = vital#gina#import('System.Filepath') let slit1 = Slit(tempname(), 1) call slit1.write('A/foo.txt', []) call slit1.write('B/foo.txt', []) call slit1.write('C/foo.txt', []) call slit1.execute('add %s', slit1.path('A/foo.txt')) call slit1.write('A/foo.txt', ['Hello', 'People']) call slit1.execute('commit --quiet -am "First"') call slit1.write('A/foo.txt', ['Hello', 'World']) call slit1.execute('add A/foo.txt') call slit1.write('A/foo.txt', ['Hello', 'Goodbye']) End After all %bwipeout! End Before %bwipeout! End Describe #jump([{opener}]) Context on diff comparing the index (a) and the work tree (b) Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff : Assert Equals(getline(3, '$'), [ \ '--- a/A/foo.txt', \ '+++ b/A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-World', \ '+Goodbye', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff/:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End End Context on diff comparing a commit (a) and the work tree (b) Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff HEAD: Assert Equals(getline(3, '$'), [ \ '--- a/A/foo.txt', \ '+++ b/A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-People', \ '+Goodbye', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff/HEAD:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End End Context on diff comparing a commit (a) and the index (b) Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff --cached : Assert Equals(getline(3, '$'), [ \ '--- a/A/foo.txt', \ '+++ b/A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-People', \ '+World', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff:cached/:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End End Context with 'diff.mnemonicPrefix' Before all call slit1.execute('config diff.mnemonicPrefix true') End After all call slit1.execute('config --unset diff.mnemonicPrefix') End Context on diff comparing the index (i) and the work tree (w) Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff : Assert Equals(getline(3, '$'), [ \ '--- i/A/foo.txt', \ '+++ w/A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-World', \ '+Goodbye', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff/:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End End Context on diff comparing a commit (c) and the work tree (w) Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff HEAD: Assert Equals(getline(3, '$'), [ \ '--- c/A/foo.txt', \ '+++ w/A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-People', \ '+Goodbye', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff/HEAD:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End End Context on diff comparing a commit (c) and the index (i) Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff --cached : Assert Equals(getline(3, '$'), [ \ '--- c/A/foo.txt', \ '+++ i/A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-People', \ '+World', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff:cached/:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End End End Context with 'diff.noprefix' Before all call slit1.execute('config diff.noprefix true') End After all call slit1.execute('config --unset diff.noprefix') End Context on diff comparing the index () and the work tree () Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff : Assert Equals(getline(3, '$'), [ \ '--- A/foo.txt', \ '+++ A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-World', \ '+Goodbye', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff/:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End End Context on diff comparing a commit () and the work tree () Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff HEAD: Assert Equals(getline(3, '$'), [ \ '--- A/foo.txt', \ '+++ A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-People', \ '+Goodbye', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff/HEAD:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End End Context on diff comparing a commit () and the index () Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff --cached : Assert Equals(getline(3, '$'), [ \ '--- A/foo.txt', \ '+++ A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-People', \ '+World', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff:cached/:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End End End Context with '--no-prefix' (show/diff) Context on diff comparing the index () and the work tree () Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff --no-prefix : Assert Equals(getline(3, '$'), [ \ '--- A/foo.txt', \ '+++ A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-World', \ '+Goodbye', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff/:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End End Context on diff comparing a commit () and the work tree () Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff --no-prefix HEAD: Assert Equals(getline(3, '$'), [ \ '--- A/foo.txt', \ '+++ A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-People', \ '+Goodbye', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff/HEAD:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End End Context on diff comparing a commit () and the index () Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff --no-prefix --cached : Assert Equals(getline(3, '$'), [ \ '--- A/foo.txt', \ '+++ A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-People', \ '+World', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff:cached/:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End End End Context with '--src-prefix=PREFIX' (show/diff) Context on diff comparing the index () and the work tree () Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff --src-prefix=PREFIX : Assert Equals(getline(3, '$'), [ \ '--- PREFIXA/foo.txt', \ '+++ b/A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-World', \ '+Goodbye', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff/:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End End Context on diff comparing a commit () and the work tree () Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff --src-prefix=PREFIX HEAD: Assert Equals(getline(3, '$'), [ \ '--- PREFIXA/foo.txt', \ '+++ b/A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-People', \ '+Goodbye', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff/HEAD:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End End Context on diff comparing a commit () and the index () Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff --src-prefix=PREFIX --cached : Assert Equals(getline(3, '$'), [ \ '--- PREFIXA/foo.txt', \ '+++ b/A/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-People', \ '+World', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff:cached/:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End End End Context with '--dst-prefix=PREFIX' (show/diff) Context on diff comparing the index () and the work tree () Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff --dst-prefix=PREFIX : Assert Equals(getline(3, '$'), [ \ '--- a/A/foo.txt', \ '+++ PREFIXA/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-World', \ '+Goodbye', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff/:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End End Context on diff comparing a commit () and the work tree () Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff --dst-prefix=PREFIX HEAD: Assert Equals(getline(3, '$'), [ \ '--- a/A/foo.txt', \ '+++ PREFIXA/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-People', \ '+Goodbye', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff/HEAD:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ slit1.path('A/foo.txt'), \) End End Context on diff comparing a commit () and the index () Before execute 'edit' fnameescape(slit1.path('A/foo.txt')) GinaSync diff --dst-prefix=PREFIX --cached : Assert Equals(getline(3, '$'), [ \ '--- a/A/foo.txt', \ '+++ PREFIXA/foo.txt', \ '@@ -1,2 +1,2 @@', \ ' Hello', \ '-People', \ '+World', \]) End It does nothing and returns 1 when the cursor is on non context line for lnum in range(1, 5) call cursor(lnum, 1) Assert Equals(gina#core#diffjump#jump(), 1) Assert Equals(line('.'), lnum) Assert Equals( \ bufname('%'), \ printf('gina://%s:diff:cached/:A/foo.txt:$', slit1.refname), \) endfor End It opens a modified file when the cursor is on a context line call cursor(6, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 1) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End It opens an original file when the cursor is on a removed line call cursor(7, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname), \) End It opens a modified file when the cursor is on an added line call cursor(8, 1) Assert Equals(gina#core#diffjump#jump(), 0) Assert Equals(line('.'), 2) Assert Equals( \ bufname('%'), \ printf('gina://%s:show/:A/foo.txt', slit1.refname), \) End End End End End