From 58f94861442d182e153ba56b63b5b9845b295d2f Mon Sep 17 00:00:00 2001 From: Brandon Simmons <34775764+simmsbra@users.noreply.github.com> Date: Thu, 20 Jul 2023 19:56:08 -0500 Subject: fix(folds): update folds in Insert mode with fdm=indent (#24402) Previously, when using foldmethod=indent, inserting an unindented line would inadvertently open closed folds below it. As a performance improvement, folds were only updated once, across all lines, after Insert mode was exited. Now, the performance improvement is no longer being used when foldmethod=indent, so folds are updated multiple times during Insert mode, but only across the lines that are changing, which preserves the folds (and their open/close states) instead of recreating them. --- src/nvim/fold.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/fold.c b/src/nvim/fold.c index 13329040e1..bdf2e26ac6 100644 --- a/src/nvim/fold.c +++ b/src/nvim/fold.c @@ -771,7 +771,7 @@ void clearFolding(win_T *win) /// The changes in lines from top to bot (inclusive). void foldUpdate(win_T *wp, linenr_T top, linenr_T bot) { - if (disable_fold_update || State & MODE_INSERT) { + if (disable_fold_update || (State & MODE_INSERT && !foldmethodIsIndent(wp))) { return; } -- cgit