diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2021-05-24 12:45:38 -0400 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2021-05-24 12:53:27 -0400 |
commit | db3136d2eac607514ca76a6e4defc33dedd1539d (patch) | |
tree | 12bed5a5a55b549d4a571853b7be8484bc9f83e1 /src | |
parent | 6d932ccb1c03208c4f5cc94f65517184e3c6d12f (diff) | |
download | rneovim-db3136d2eac607514ca76a6e4defc33dedd1539d.tar.gz rneovim-db3136d2eac607514ca76a6e4defc33dedd1539d.tar.bz2 rneovim-db3136d2eac607514ca76a6e4defc33dedd1539d.zip |
vim-patch:8.2.1957: diff and cursorcolumn highlighting don't mix
Problem: Diff and cursorcolumn highlighting don't mix.
Solution: Fix condition for what attribute to use. (Christian Brabandt,
closes vim/vim#7258, closes vim/vim#7260)
https://github.com/vim/vim/commit/fabc3ca896751277f18a3a68e5661179728db3ad
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/screen.c | 7 | ||||
-rw-r--r-- | src/nvim/testdir/test_diffmode.vim | 33 |
2 files changed, 38 insertions, 2 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c index 5151d82c1b..c40211bcb6 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -4139,8 +4139,11 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, // Also highlight the 'colorcolumn' if it is different than // 'cursorcolumn' vcol_save_attr = -1; - if (draw_state == WL_LINE && !lnum_in_visual_area - && search_attr == 0 && area_attr == 0) { + if (draw_state == WL_LINE + && !lnum_in_visual_area + && search_attr == 0 + && area_attr == 0 + && filler_todo <= 0) { if (wp->w_p_cuc && VCOL_HLC == (long)wp->w_virtcol && lnum != wp->w_cursor.lnum) { vcol_save_attr = char_attr; diff --git a/src/nvim/testdir/test_diffmode.vim b/src/nvim/testdir/test_diffmode.vim index 1f7d0e2ea3..8592f48af7 100644 --- a/src/nvim/testdir/test_diffmode.vim +++ b/src/nvim/testdir/test_diffmode.vim @@ -1148,5 +1148,38 @@ func Test_diff_and_scroll() set ls& endfunc +func Test_diff_filler_cursorcolumn() + CheckScreendump + + let content =<< trim END + call setline(1, ['aa', 'bb', 'cc']) + vnew + call setline(1, ['aa', 'cc']) + windo diffthis + wincmd p + setlocal cursorcolumn foldcolumn=0 + norm! gg0 + redraw! + END + call writefile(content, 'Xtest_diff_cuc') + let buf = RunVimInTerminal('-S Xtest_diff_cuc', {}) + + call VerifyScreenDump(buf, 'Test_diff_cuc_01', {}) + + call term_sendkeys(buf, "l") + call term_sendkeys(buf, "\<C-l>") + call VerifyScreenDump(buf, 'Test_diff_cuc_02', {}) + call term_sendkeys(buf, "0j") + call term_sendkeys(buf, "\<C-l>") + call VerifyScreenDump(buf, 'Test_diff_cuc_03', {}) + call term_sendkeys(buf, "l") + call term_sendkeys(buf, "\<C-l>") + call VerifyScreenDump(buf, 'Test_diff_cuc_04', {}) + + " clean up + call StopVimInTerminal(buf) + call delete('Xtest_diff_cuc') +endfunc + " vim: shiftwidth=2 sts=2 expandtab |