aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-10-31 20:24:24 +0100
committerJustin M. Keyes <justinkz@gmail.com>2018-11-27 01:14:55 +0100
commit60f845ca55a1b8b11a4eb390b1fed93a79e99ad5 (patch)
tree011aab33314cde1e96a07b7453606e457c431c5f /src
parent3283db4ecbe32c6f2bbf1c7ea3032ef4091d5444 (diff)
downloadrneovim-60f845ca55a1b8b11a4eb390b1fed93a79e99ad5.tar.gz
rneovim-60f845ca55a1b8b11a4eb390b1fed93a79e99ad5.tar.bz2
rneovim-60f845ca55a1b8b11a4eb390b1fed93a79e99ad5.zip
diff/highlight: Show underline for low-priority CursorLine
Diffstat (limited to 'src')
-rw-r--r--src/nvim/highlight.c18
-rw-r--r--src/nvim/screen.c10
2 files changed, 25 insertions, 3 deletions
diff --git a/src/nvim/highlight.c b/src/nvim/highlight.c
index ae2b90d8a1..89a41e73de 100644
--- a/src/nvim/highlight.c
+++ b/src/nvim/highlight.c
@@ -177,6 +177,24 @@ void update_window_hl(win_T *wp, bool invalid)
}
}
+/// Gets HL_UNDERLINE highlight.
+int hl_get_underline(void)
+{
+ return get_attr_entry((HlEntry){
+ .attr = (HlAttrs){
+ .cterm_ae_attr = (int16_t)HL_UNDERLINE,
+ .cterm_fg_color = 0,
+ .cterm_bg_color = 0,
+ .rgb_ae_attr = (int16_t)HL_UNDERLINE,
+ .rgb_fg_color = 0,
+ .rgb_bg_color = 0,
+ },
+ .kind = kHlUI,
+ .id1 = 0,
+ .id2 = 0,
+ });
+}
+
/// Get attribute code for forwarded :terminal highlights.
int hl_get_term_attr(HlAttrs *aep)
{
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index 2a1dae1767..eb24e2af1c 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -3052,9 +3052,13 @@ win_line (
diff_hlf = HLF_CHD; // changed line
}
line_attr = win_hl_attr(wp, diff_hlf);
- // Overlay CursorLine onto diff highlight, unless it's low-priority.
- if (!line_attr_lowprio && wp->w_p_cul && lnum == wp->w_cursor.lnum) {
- line_attr = hl_combine_attr(line_attr, win_hl_attr(wp, HLF_CUL));
+ // Overlay CursorLine onto diff-mode highlight.
+ if (wp->w_p_cul && lnum == wp->w_cursor.lnum) {
+ line_attr = 0 != line_attr_lowprio // Low-priority CursorLine
+ ? hl_combine_attr(hl_combine_attr(win_hl_attr(wp, HLF_CUL),
+ line_attr),
+ hl_get_underline())
+ : hl_combine_attr(line_attr, win_hl_attr(wp, HLF_CUL));
}
}