diff options
author | luukvbaal <31730729+luukvbaal@users.noreply.github.com> | 2023-01-11 02:52:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-11 09:52:11 +0800 |
commit | 93d99aefd314bc4abfc54c0c29a4de84b6fcc823 (patch) | |
tree | 0caeded7109412c1f37b723fd62a73e6d0b7a495 /src | |
parent | 08d5b4275ecaae4d3329d4ed2469782f10dd463e (diff) | |
download | rneovim-93d99aefd314bc4abfc54c0c29a4de84b6fcc823.tar.gz rneovim-93d99aefd314bc4abfc54c0c29a4de84b6fcc823.tar.bz2 rneovim-93d99aefd314bc4abfc54c0c29a4de84b6fcc823.zip |
fix(statuscolumn): fix sign column highlights (#21727)
Resolve #21726.
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/drawline.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/nvim/drawline.c b/src/nvim/drawline.c index b1cdfe209b..e54566c3e5 100644 --- a/src/nvim/drawline.c +++ b/src/nvim/drawline.c @@ -403,8 +403,8 @@ static int get_sign_attrs(buf_T *buf, linenr_T lnum, SignTextAttrs *sattrs, int /// /// @param[out] stcp Status column attributes static void get_statuscol_str(win_T *wp, linenr_T lnum, int row, int startrow, int filler_lines, - int cul_attr, int sign_num_attr, SignTextAttrs *sattrs, - foldinfo_T foldinfo, char_u *extra, statuscol_T *stcp) + int cul_attr, int sign_num_attr, int sign_cul_attr, char_u *extra, + foldinfo_T foldinfo, SignTextAttrs *sattrs, statuscol_T *stcp) { long relnum = 0; bool wrapped = row != startrow + filler_lines; @@ -427,7 +427,8 @@ static void get_statuscol_str(win_T *wp, linenr_T lnum, int row, int startrow, i for (; i < wp->w_scwidth; i++) { SignTextAttrs *sattr = wrapped ? NULL : sign_get_attr(i, sattrs, wp->w_scwidth); stcp->sign_text[i] = sattr && sattr->text ? sattr->text : " "; - stcp->sign_attr[i] = use_cul && cul_attr ? cul_attr : sattr ? sattr->hl_attr_id : 0; + stcp->sign_attr[i] = sattr ? (use_cul && sign_cul_attr ? sign_cul_attr : sattr->hl_attr_id) + : win_hl_attr(wp, use_cul ? HLF_CLS : HLF_SC); } stcp->sign_text[i] = NULL; @@ -1327,8 +1328,8 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool nochange, // Draw the 'statuscolumn' if option is set. if (statuscol.draw) { if (statuscol.textp == NULL) { - get_statuscol_str(wp, lnum, row, startrow, filler_lines, cul_attr, - sign_num_attr, sattrs, foldinfo, extra, &statuscol); + get_statuscol_str(wp, lnum, row, startrow, filler_lines, cul_attr, sign_num_attr, + sign_cul_attr, extra, foldinfo, sattrs, &statuscol); if (wp->w_redr_statuscol) { return 0; } |