aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/option.c
diff options
context:
space:
mode:
authorDan Aloni <alonid@gmail.com>2020-05-15 19:22:44 +0300
committerDan Aloni <alonid@gmail.com>2021-04-17 10:11:17 +0300
commitf2ed7605da45eb79a4f7bb89fb19f680fb5a4927 (patch)
tree20327ffc02b6c7a89cf84da36af50a479d03d2f4 /src/nvim/option.c
parenta6504ec3398af114585db1d1134335d838bdb8d9 (diff)
downloadrneovim-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.c16
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';