diff options
author | Brandon Simmons <34775764+simmsbra@users.noreply.github.com> | 2023-07-20 19:56:08 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-21 08:56:08 +0800 |
commit | 58f94861442d182e153ba56b63b5b9845b295d2f (patch) | |
tree | 7b0dc51bd62aebe9010f4cd899e977ba322e4d1c /src | |
parent | 60d320dea3fe7b7d666d5a18ec8b94178c31acf4 (diff) | |
download | rneovim-58f94861442d182e153ba56b63b5b9845b295d2f.tar.gz rneovim-58f94861442d182e153ba56b63b5b9845b295d2f.tar.bz2 rneovim-58f94861442d182e153ba56b63b5b9845b295d2f.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/fold.c | 2 |
1 files changed, 1 insertions, 1 deletions
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; } |