diff options
author | luukvbaal <31730729+luukvbaal@users.noreply.github.com> | 2023-03-18 12:44:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-18 11:44:44 +0000 |
commit | 204a8b17c8ebab1619cc47a920a06dcc348d75f7 (patch) | |
tree | ea7b0a6f6fce8513b3eea7826772af3f1c08845d /src/nvim/option.c | |
parent | 8916669d50243f6d4cdfb9480ef1b4e7ccdcfbb6 (diff) | |
download | rneovim-204a8b17c8ebab1619cc47a920a06dcc348d75f7.tar.gz rneovim-204a8b17c8ebab1619cc47a920a06dcc348d75f7.tar.bz2 rneovim-204a8b17c8ebab1619cc47a920a06dcc348d75f7.zip |
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
Diffstat (limited to 'src/nvim/option.c')
-rw-r--r-- | src/nvim/option.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c index 5fe6e18155..02b32b1fe5 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -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; } |