mirror of
https://github.com/neovim/neovim.git
synced 2025-09-29 14:38:32 +00:00
fix(column): rebuild status column when sign column is invalidated (#22690)
* fix(column): rebuild status column when sign column is invalidated Problem: When implementing a custom sign column through `'statuscolumn'`, the status column is not properly rebuilt when the sign column width changes. Solution: Force a rebuild of the status column when the sign column width is invalidated. * test(column): 'statuscolumn' has correct width when (un)placing signs
This commit is contained in:
@@ -2176,10 +2176,8 @@ static char *set_bool_option(const int opt_idx, char *const varp, const int valu
|
||||
if (curwin->w_p_spell) {
|
||||
errmsg = did_set_spelllang(curwin);
|
||||
}
|
||||
} else if ((int *)varp == &curwin->w_p_nu && *curwin->w_p_stc != NUL) {
|
||||
// When 'statuscolumn' is set and 'number' is changed:
|
||||
curwin->w_nrwidth_line_count = 0; // make sure width is reset
|
||||
curwin->w_statuscol_line_count = 0; // make sure width is re-estimated
|
||||
} else if ((int *)varp == &curwin->w_p_nu) { // 'number'
|
||||
invalidate_statuscol(curwin, NULL);
|
||||
}
|
||||
|
||||
if ((int *)varp == &curwin->w_p_arab) {
|
||||
@@ -5519,6 +5517,9 @@ int win_signcol_configured(win_T *wp, int *is_fixed)
|
||||
if (*scl == 'n'
|
||||
&& (*(scl + 1) == 'o' || (*(scl + 1) == 'u'
|
||||
&& (wp->w_p_nu || wp->w_p_rnu)))) {
|
||||
if (*wp->w_p_stc != NUL) {
|
||||
buf_signcols(wp->w_buffer, 0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user