summaryrefslogtreecommitdiffstats
path: root/src/drawline.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-12-17 11:33:00 +0000
committerBram Moolenaar <Bram@vim.org>2022-12-17 11:33:00 +0000
commitd097af77797f030e0f29f9bbc298358a5addb2a5 (patch)
tree2b3d56eac0b4ea64a1deed748705cddb4f5d44df /src/drawline.c
parent67f3094397a40bea051a8e99921a8bf6f45d6147 (diff)
patch 9.0.1067: in diff mode virtual text is highlighted incorrectlyv9.0.1067
Problem: In diff mode virtual text is highlighted incorrectly. (Rick Howe) Solution: Do not use diff attributes for virtual text. (closes #11714)
Diffstat (limited to 'src/drawline.c')
-rw-r--r--src/drawline.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/drawline.c b/src/drawline.c
index 0e090f42d1..79b187ff0e 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -2206,11 +2206,13 @@ win_line(
#ifdef FEAT_DIFF
if (wlv.diff_hlf != (hlf_T)0)
{
+ // When there is extra text (e.g. virtual text) it gets the
+ // diff highlighting for the line, but not for changed text.
if (wlv.diff_hlf == HLF_CHD && ptr - line >= change_start
&& wlv.n_extra == 0)
wlv.diff_hlf = HLF_TXD; // changed text
- if (wlv.diff_hlf == HLF_TXD && ptr - line > change_end
- && wlv.n_extra == 0)
+ if (wlv.diff_hlf == HLF_TXD && (ptr - line > change_end
+ || wlv.n_extra > 0))
wlv.diff_hlf = HLF_CHD; // changed line
wlv.line_attr = HL_ATTR(wlv.diff_hlf);
if (wp->w_p_cul && lnum == wp->w_cursor.lnum