From 4f57eefe1e84b5a90e08474092ea6fc8825ad5c9 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 24 Aug 2019 20:54:19 +0200 Subject: patch 8.1.1922: in diff mode global operations can be very slow Problem: In diff mode global operations can be very slow. Solution: Do not call diff_redraw() many times, call it once when redrawing. And also don't update folds multiple times. --- src/fold.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/fold.c') diff --git a/src/fold.c b/src/fold.c index 482d3c968..6200578fc 100644 --- a/src/fold.c +++ b/src/fold.c @@ -813,6 +813,11 @@ foldUpdate(win_T *wp, linenr_T top, linenr_T bot) if (disable_fold_update > 0) return; +#ifdef FEAT_DIFF + if (need_diff_redraw) + // will update later + return; +#endif /* Mark all folds from top to bot as maybe-small. */ (void)foldFind(&wp->w_folds, top, &fp); -- cgit v1.2.1