diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-12-17 11:33:00 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-12-17 11:33:00 +0000 |
commit | d097af77797f030e0f29f9bbc298358a5addb2a5 (patch) | |
tree | 2b3d56eac0b4ea64a1deed748705cddb4f5d44df /src/drawline.c | |
parent | 67f3094397a40bea051a8e99921a8bf6f45d6147 (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.c | 6 |
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 |