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:
luukvbaal
2023-03-18 12:44:44 +01:00
committed by GitHub
parent 8916669d50
commit 204a8b17c8
4 changed files with 63 additions and 4 deletions

View File

@@ -4109,6 +4109,7 @@ void buf_signcols_del_check(buf_T *buf, linenr_T line1, linenr_T line2)
if (!buf->b_signcols.sentinel) {
buf->b_signcols.valid = false;
invalidate_statuscol(NULL, buf);
return;
}
@@ -4117,6 +4118,7 @@ void buf_signcols_del_check(buf_T *buf, linenr_T line1, linenr_T line2)
if (sent >= line1 && sent <= line2) {
// Only invalidate when removing signs at the sentinel line.
buf->b_signcols.valid = false;
invalidate_statuscol(NULL, buf);
}
}
@@ -4132,6 +4134,7 @@ void buf_signcols_add_check(buf_T *buf, sign_entry_T *added)
if (!added || !buf->b_signcols.sentinel) {
buf->b_signcols.valid = false;
invalidate_statuscol(NULL, buf);
return;
}