diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2018-10-31 20:24:24 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2018-11-27 01:14:55 +0100 |
commit | 60f845ca55a1b8b11a4eb390b1fed93a79e99ad5 (patch) | |
tree | 011aab33314cde1e96a07b7453606e457c431c5f /src | |
parent | 3283db4ecbe32c6f2bbf1c7ea3032ef4091d5444 (diff) | |
download | rneovim-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.c | 18 | ||||
-rw-r--r-- | src/nvim/screen.c | 10 |
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)); } } |