diff --git a/autoload/gitgutter/diff_highlight.vim b/autoload/gitgutter/diff_highlight.vim index 6ffe657..ec21b44 100644 --- a/autoload/gitgutter/diff_highlight.vim +++ b/autoload/gitgutter/diff_highlight.vim @@ -106,8 +106,8 @@ function! s:diff(rline, aline, rlinenr, alinenr, rprefix, aprefix, regions, whol if len(lcs) > s:gap_between_regions let redits = s:split(rtext, lcs) let aedits = s:split(atext, lcs) - call s:diff(redits[0], aedits[0], a:rlinenr, a:alinenr, prefix+1, prefix+1, a:regions, 0) - call s:diff(redits[1], aedits[1], a:rlinenr, a:alinenr, prefix+1+len(redits[0])+len(lcs), prefix+1+len(aedits[0])+len(lcs), a:regions, 0) + call s:diff(redits[0], aedits[0], a:rlinenr, a:alinenr, a:rprefix+prefix+1, a:aprefix+prefix+1, a:regions, 0) + call s:diff(redits[1], aedits[1], a:rlinenr, a:alinenr, a:rprefix+prefix+1+len(redits[0])+len(lcs), a:aprefix+prefix+1+len(aedits[0])+len(lcs), a:regions, 0) return endif diff --git a/test/test_gitgutter.vim b/test/test_gitgutter.vim index 6e0a9e6..2b31572 100644 --- a/test/test_gitgutter.vim +++ b/test/test_gitgutter.vim @@ -1030,6 +1030,9 @@ function Test_diff_highlight() let hunk = ['-gross_value: transaction.unexplained_amount', '+gross_value: amount(transaction)'] call assert_equal([[2, '+', 15, 21], [1, '-', 26, 44], [2, '+', 33, 33]], gitgutter#diff_highlight#process(hunk)) + + let hunk = ['-gem "contact_sport", "~> 1.0.2"', '+gem ("contact_sport"), "~> 1.2"'] + call assert_equal([[2, '+', 6, 6], [2, '+', 22, 22], [1, '-', 28, 29]], gitgutter#diff_highlight#process(hunk)) endfunction @@ -1039,3 +1042,10 @@ function Test_lcs() call assert_equal('bar', gitgutter#diff_highlight#lcs('foobarbaz', 'bbart')) call assert_equal('transaction', gitgutter#diff_highlight#lcs('transaction.unexplained_amount', 'amount(transaction)')) endfunction + + +function Test_split() + call assert_equal(['foo', 'baz'], gitgutter#diff_highlight#split('foobarbaz', 'bar')) + call assert_equal(['', 'barbaz'], gitgutter#diff_highlight#split('foobarbaz', 'foo')) + call assert_equal(['foobar', ''], gitgutter#diff_highlight#split('foobarbaz', 'baz')) +endfunction