From 1782550bfe6796303a893fa7c2a5675e0e383129 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sun, 3 Feb 2019 22:12:41 -0500 Subject: [PATCH 1/2] vim-patch:8.0.1153: no tests for diff_hlID() and diff_filler() Problem: No tests for diff_hlID() and diff_filler(). Solution: Add tests. (Dominique Pelle, closes vim/vim#2156) https://github.com/vim/vim/commit/97fbc404fc56f76df12b2d2658b1d6efda28d5dd --- src/nvim/testdir/test_diffmode.vim | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/nvim/testdir/test_diffmode.vim b/src/nvim/testdir/test_diffmode.vim index ad3eec3274..c3c3fb1f63 100644 --- a/src/nvim/testdir/test_diffmode.vim +++ b/src/nvim/testdir/test_diffmode.vim @@ -527,7 +527,7 @@ func Test_setting_cursor() new Xtest2 put =range(1,100) wq - + tabe Xtest2 $ diffsp Xtest1 @@ -672,6 +672,31 @@ func Test_diff_filler() %bwipe! endfunc +func Test_diff_hlID() + new + call setline(1, [1, 2, 3]) + diffthis + vnew + call setline(1, ['1x', 2, 'x', 3]) + diffthis + redraw + + call assert_equal(synIDattr(diff_hlID(-1, 1), "name"), "") + + call assert_equal(synIDattr(diff_hlID(1, 1), "name"), "DiffChange") + call assert_equal(synIDattr(diff_hlID(1, 2), "name"), "DiffText") + call assert_equal(synIDattr(diff_hlID(2, 1), "name"), "") + call assert_equal(synIDattr(diff_hlID(3, 1), "name"), "DiffAdd") + call assert_equal(synIDattr(diff_hlID(4, 1), "name"), "") + + wincmd w + call assert_equal(synIDattr(diff_hlID(1, 1), "name"), "DiffChange") + call assert_equal(synIDattr(diff_hlID(2, 1), "name"), "") + call assert_equal(synIDattr(diff_hlID(3, 1), "name"), "") + + %bwipe! +endfunc + func Test_diff_lastline() enew! only! From f772117b55da1bb4409b88ee4cfb30fc6bb15622 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sat, 30 Mar 2019 02:27:37 -0400 Subject: [PATCH 2/2] eval: diff_hlID() and hlID() return same id --- src/nvim/eval.c | 2 +- src/nvim/testdir/test_diffmode.vim | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/nvim/eval.c b/src/nvim/eval.c index c324a9f1a2..66c46e2478 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -8008,7 +8008,7 @@ static void f_diff_hlID(typval_T *argvars, typval_T *rettv, FunPtr fptr) hlID = HLF_CHD; // Changed line. } } - rettv->vval.v_number = hlID == (hlf_T)0 ? 0 : (int)hlID; + rettv->vval.v_number = hlID == (hlf_T)0 ? 0 : (int)(hlID + 1); } /* diff --git a/src/nvim/testdir/test_diffmode.vim b/src/nvim/testdir/test_diffmode.vim index c3c3fb1f63..b2e75265a6 100644 --- a/src/nvim/testdir/test_diffmode.vim +++ b/src/nvim/testdir/test_diffmode.vim @@ -683,13 +683,17 @@ func Test_diff_hlID() call assert_equal(synIDattr(diff_hlID(-1, 1), "name"), "") + call assert_equal(diff_hlID(1, 1), hlID("DiffChange")) call assert_equal(synIDattr(diff_hlID(1, 1), "name"), "DiffChange") + call assert_equal(diff_hlID(1, 2), hlID("DiffText")) call assert_equal(synIDattr(diff_hlID(1, 2), "name"), "DiffText") call assert_equal(synIDattr(diff_hlID(2, 1), "name"), "") + call assert_equal(diff_hlID(3, 1), hlID("DiffAdd")) call assert_equal(synIDattr(diff_hlID(3, 1), "name"), "DiffAdd") call assert_equal(synIDattr(diff_hlID(4, 1), "name"), "") wincmd w + call assert_equal(diff_hlID(1, 1), hlID("DiffChange")) call assert_equal(synIDattr(diff_hlID(1, 1), "name"), "DiffChange") call assert_equal(synIDattr(diff_hlID(2, 1), "name"), "") call assert_equal(synIDattr(diff_hlID(3, 1), "name"), "")