diff options
author | Dan Aloni <alonid@gmail.com> | 2020-05-15 19:22:44 +0300 |
---|---|---|
committer | Dan Aloni <alonid@gmail.com> | 2021-04-17 10:11:17 +0300 |
commit | f2ed7605da45eb79a4f7bb89fb19f680fb5a4927 (patch) | |
tree | 20327ffc02b6c7a89cf84da36af50a479d03d2f4 /src/nvim/option.c | |
parent | a6504ec3398af114585db1d1134335d838bdb8d9 (diff) | |
download | rneovim-f2ed7605da45eb79a4f7bb89fb19f680fb5a4927.tar.gz rneovim-f2ed7605da45eb79a4f7bb89fb19f680fb5a4927.tar.bz2 rneovim-f2ed7605da45eb79a4f7bb89fb19f680fb5a4927.zip |
Handle 'orphaned signs' on line deletion for signcolumn >= 2
Diffstat (limited to 'src/nvim/option.c')
-rw-r--r-- | src/nvim/option.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c index 914b92618c..666c526a18 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -7583,9 +7583,19 @@ int csh_like_shell(void) /// buffer signs and on user configuration. int win_signcol_count(win_T *wp) { + return win_signcol_configured(wp, NULL); +} + +/// Return the number of requested sign columns, based on user / configuration. +int win_signcol_configured(win_T *wp, int *is_fixed) +{ int minimum = 0, maximum = 1, needed_signcols; const char *scl = (const char *)wp->w_p_scl; + if (is_fixed) { + *is_fixed = 1; + } + // Note: It checks "no" or "number" in 'signcolumn' option if (*scl == 'n' && (*(scl + 1) == 'o' || (*(scl + 1) == 'u' @@ -7603,7 +7613,11 @@ int win_signcol_count(win_T *wp) return 1; } - // auto or auto:<NUM> + if (is_fixed) { + // auto or auto:<NUM> + *is_fixed = 0; + } + if (!strncmp(scl, "auto:", 5)) { // Variable depending on a configuration maximum = scl[5] - '0'; |