aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-05-24 12:45:38 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-05-24 12:53:27 -0400
commitdb3136d2eac607514ca76a6e4defc33dedd1539d (patch)
tree12bed5a5a55b549d4a571853b7be8484bc9f83e1
parent6d932ccb1c03208c4f5cc94f65517184e3c6d12f (diff)
downloadrneovim-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
-rw-r--r--src/nvim/screen.c7
-rw-r--r--src/nvim/testdir/test_diffmode.vim33
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