comparison src/fold.c @ 17851:ba63a184e6b6 v8.1.1922

patch 8.1.1922: in diff mode global operations can be very slow Commit: https://github.com/vim/vim/commit/4f57eefe1e84b5a90e08474092ea6fc8825ad5c9 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Aug 24 20:54:19 2019 +0200 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.
author Bram Moolenaar <Bram@vim.org>
date Sat, 24 Aug 2019 21:00:06 +0200
parents 92e0996e1cb8
children 34639bba19b0
comparison
equal deleted inserted replaced
17850:513f2890d474 17851:ba63a184e6b6
811 { 811 {
812 fold_T *fp; 812 fold_T *fp;
813 813
814 if (disable_fold_update > 0) 814 if (disable_fold_update > 0)
815 return; 815 return;
816 #ifdef FEAT_DIFF
817 if (need_diff_redraw)
818 // will update later
819 return;
820 #endif
816 821
817 /* Mark all folds from top to bot as maybe-small. */ 822 /* Mark all folds from top to bot as maybe-small. */
818 (void)foldFind(&wp->w_folds, top, &fp); 823 (void)foldFind(&wp->w_folds, top, &fp);
819 while (fp < (fold_T *)wp->w_folds.ga_data + wp->w_folds.ga_len 824 while (fp < (fold_T *)wp->w_folds.ga_data + wp->w_folds.ga_len
820 && fp->fd_top < bot) 825 && fp->fd_top < bot)