diff/highlight: Show underline for low-priority CursorLine

This commit is contained in:
Justin M. Keyes
2018-10-31 20:24:24 +01:00
parent 3283db4ecb
commit 60f845ca55
3 changed files with 57 additions and 3 deletions

View File

@@ -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)
{

View File

@@ -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));
}
}