diff/highlight: do not overlay low-priority CursorLine

ref #6380
This commit is contained in:
Justin M. Keyes
2018-09-21 21:51:49 +02:00
parent a2d03d9b1a
commit 3283db4ecb
3 changed files with 7 additions and 5 deletions

View File

@@ -22,7 +22,7 @@ typedef enum {
/// Stores a complete highlighting entry, including colors and attributes /// Stores a complete highlighting entry, including colors and attributes
/// for both TUI and GUI. /// for both TUI and GUI.
typedef struct attr_entry { typedef struct attr_entry {
int16_t rgb_ae_attr, cterm_ae_attr; // HL_BOLD, etc. int16_t rgb_ae_attr, cterm_ae_attr; ///< HlAttrFlags
RgbValue rgb_fg_color, rgb_bg_color, rgb_sp_color; RgbValue rgb_fg_color, rgb_bg_color, rgb_sp_color;
int cterm_fg_color, cterm_bg_color; int cterm_fg_color, cterm_bg_color;
} HlAttrs; } HlAttrs;
@@ -83,8 +83,8 @@ typedef enum {
, HLF_TP // tabpage line , HLF_TP // tabpage line
, HLF_TPS // tabpage line selected , HLF_TPS // tabpage line selected
, HLF_TPF // tabpage line filler , HLF_TPF // tabpage line filler
, HLF_CUC // 'cursurcolumn' , HLF_CUC // 'cursorcolumn'
, HLF_CUL // 'cursurline' , HLF_CUL // 'cursorline'
, HLF_MC // 'colorcolumn' , HLF_MC // 'colorcolumn'
, HLF_QFL // selected quickfix line , HLF_QFL // selected quickfix line
, HLF_0 // Whitespace , HLF_0 // Whitespace

View File

@@ -2826,7 +2826,7 @@ win_line (
draw_state = WL_BRI - 1; draw_state = WL_BRI - 1;
} }
// draw 'breakindent': indent wrapped text accodringly // draw 'breakindent': indent wrapped text accordingly
if (draw_state == WL_BRI - 1 && n_extra == 0) { if (draw_state == WL_BRI - 1 && n_extra == 0) {
draw_state = WL_BRI; draw_state = WL_BRI;
// if need_showbreak is set, breakindent also applies // if need_showbreak is set, breakindent also applies
@@ -3052,7 +3052,8 @@ win_line (
diff_hlf = HLF_CHD; // changed line diff_hlf = HLF_CHD; // changed line
} }
line_attr = win_hl_attr(wp, diff_hlf); line_attr = win_hl_attr(wp, diff_hlf);
if (wp->w_p_cul && lnum == wp->w_cursor.lnum) { // 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)); line_attr = hl_combine_attr(line_attr, win_hl_attr(wp, HLF_CUL));
} }
} }

View File

@@ -61,6 +61,7 @@ struct hl_group {
scid_T sg_scriptID; ///< script in which the group was last set scid_T sg_scriptID; ///< script in which the group was last set
// for terminal UIs // for terminal UIs
int sg_cterm; ///< "cterm=" highlighting attr int sg_cterm; ///< "cterm=" highlighting attr
///< (combination of \ref HlAttrFlags)
int sg_cterm_fg; ///< terminal fg color number + 1 int sg_cterm_fg; ///< terminal fg color number + 1
int sg_cterm_bg; ///< terminal bg color number + 1 int sg_cterm_bg; ///< terminal bg color number + 1
bool sg_cterm_bold; ///< bold attr was set for light color bool sg_cterm_bold; ///< bold attr was set for light color