diff options
author | Shougo Matsushita <Shougo.Matsu@gmail.com> | 2016-09-17 07:40:00 +0900 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2016-09-18 13:40:50 +0200 |
commit | e1079c2a289de18923950338ea08ee80c01cc6cf (patch) | |
tree | fb12eb431b1377b7c6d94d2ed0124e0266378d9a /src | |
parent | 19b47b043de2628d7ace4d65aaf124b225ed7351 (diff) | |
download | rneovim-e1079c2a289de18923950338ea08ee80c01cc6cf.tar.gz rneovim-e1079c2a289de18923950338ea08ee80c01cc6cf.tar.bz2 rneovim-e1079c2a289de18923950338ea08ee80c01cc6cf.zip |
insert_enter: Update folds on insert-leave. #5351
Fixes failing test: 045_folding_spec.lua
References #5299
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/edit.c | 2 | ||||
-rw-r--r-- | src/nvim/fold.c | 6 | ||||
-rw-r--r-- | src/nvim/normal.c | 3 |
3 files changed, 6 insertions, 5 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c index ff1107db6c..18d5ea533d 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -462,6 +462,8 @@ static void insert_enter(InsertState *s) o_lnum = curwin->w_cursor.lnum; } + foldUpdateAll(curwin); + foldOpenCursor(); if (s->cmdchar != 'r' && s->cmdchar != 'v') { apply_autocmds(EVENT_INSERTLEAVE, NULL, NULL, false, curbuf); } diff --git a/src/nvim/fold.c b/src/nvim/fold.c index a92ee86248..70030b8525 100644 --- a/src/nvim/fold.c +++ b/src/nvim/fold.c @@ -765,12 +765,8 @@ void foldUpdate(win_T *wp, linenr_T top, linenr_T bot) return; } - fold_T *fp; - if (wp->w_buffer->terminal) { - return; - } - // Mark all folds from top to bot as maybe-small. + fold_T *fp; (void)foldFind(&wp->w_folds, top, &fp); while (fp < (fold_T *)wp->w_folds.ga_data + wp->w_folds.ga_len && fp->fd_top < bot) { diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 68ba9e399f..d0a9d3aca7 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -5924,6 +5924,9 @@ static void nv_replace(cmdarg_T *cap) curwin->w_set_curswant = true; set_last_insert(cap->nchar); } + + foldUpdateAll(curwin); + foldOpenCursor(); } /* |