Mercurial > vim
changeset 8891:d7ba3f9b9ba6 v7.4.1732
commit https://github.com/vim/vim/commit/429fcfbf9a9275367fe9441a50a3dcd773497d84
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Apr 14 16:22:04 2016 +0200
patch 7.4.1732
Problem: Folds may close when using autocomplete. (Anmol Sethi)
Solution: Increment/decrement disable_fold. (Christian Brabandt, closes
https://github.com/vim/vim/issues/643)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 14 Apr 2016 16:30:05 +0200 |
parents | fc941c8ff127 |
children | dbbbb98186f1 |
files | src/edit.c src/fold.c src/globals.h src/version.c |
diffstat | 4 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/edit.c +++ b/src/edit.c @@ -1424,8 +1424,10 @@ doESCkey: docomplete: compl_busy = TRUE; + disable_fold_update++; /* don't redraw folds here */ if (ins_complete(c, TRUE) == FAIL) compl_cont_status = 0; + disable_fold_update--; compl_busy = FALSE; break; #endif /* FEAT_INS_EXPAND */
--- a/src/fold.c +++ b/src/fold.c @@ -811,6 +811,9 @@ foldUpdate(win_T *wp, linenr_T top, line { fold_T *fp; + if (disable_fold_update > 0) + return; + /* Mark all folds from top to bot as maybe-small. */ (void)foldFind(&wp->w_folds, top, &fp); while (fp < (fold_T *)wp->w_folds.ga_data + wp->w_folds.ga_len
--- a/src/globals.h +++ b/src/globals.h @@ -1176,6 +1176,10 @@ EXTERN int fill_fold INIT(= '-'); EXTERN int fill_diff INIT(= '-'); #endif +#ifdef FEAT_FOLDING +EXTERN int disable_fold_update INIT(= 0); +#endif + /* Whether 'keymodel' contains "stopsel" and "startsel". */ EXTERN int km_stopsel INIT(= FALSE); EXTERN int km_startsel INIT(= FALSE);