Slow buffer updates with Undotree plugin
Undotree is a plugin that adds a visual representation of Vim's undo tree. When this tree view is open, certain operations (undo, redo, joining lines) are slow in the GUI, but not in the terminal.
To reproduce:
- Add the Undotree plugin to
~/.vim/pack/mbbill/opt/undotreeso that it will be found bypackadd:
mkdir -p ~/.vim/pack/mbbill/opt
git clone https://github.com/mbbill/undotree ~/.vim/pack/mbbill/opt
- Start MacVim with
mvim -u vimrcwherevimrcis
set nocompatible
set undofile
packadd undotree
- Open the undo tree visualiser added by Undotree:
:UndotreeToggle - Insert 100 lines:
100ii<CR><Esc> - Go the first line:
gg - Join all the lines: Hold
J
There should be noticeable lag. Now repeat steps 1-6 except with mvim -v -u vimrc in step 2. Joining the lines should be quite snappy.
I've attached two videos below showing the behaviour in each case, and I've included my system details.
GUI:
https://github.com/macvim-dev/macvim/assets/123784102/4e1828c4-4e40-4f29-9171-6c77a1b15f9e
Terminal.app:
https://github.com/macvim-dev/macvim/assets/123784102/26cc3bda-fd04-4165-9bd1-712da0132d45
System details: OS: macOS Ventura 13.4 arm64 Shell: zsh 5.9 Terminal: Terminal.app $TERM: xterm-256color Vim: Downloaded from GitHub Releases
I can reproduce this, but not 100% what the cause is yet. It's probably the renderer. Will probably need to take a look a little later. Currently slot it for the next release (r178).
Seems related to #1259, but not sure.