You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I feel like our undo is unnecessarily slow right now.
Try :sort or something on a fairly large file, and you'll see that although we finish the text update fairly quickly, it takes a lot longer before it becomes responsive again.
Our undo also has some other issues related to undoing large changes.
As for approaches to take, I see two major branches we can go down:
Try to leverage VSCode's default API undo stops. The main advantage of this, obviously, is that it should be the fastest possible approach. In addition, it also seems relatively simple.
Use Neovim for its undo functionality. The biggest advantage of this is that it lets use an UNDO TREE! Wow! As well as all the other Vim undo features (:earlier, etc.) Main disadvantage is that it's almost definitely slower, and that it ties us even close to a neovim dependency (which isn't necessarily terrible).
The text was updated successfully, but these errors were encountered:
I feel like our undo is unnecessarily slow right now.
Try
:sort
or something on a fairly large file, and you'll see that although we finish the text update fairly quickly, it takes a lot longer before it becomes responsive again.That's because this line takes such a long time.
https://github.com/VSCodeVim/Vim/blob/master/src/history/historyTracker.ts#L387
Our undo also has some other issues related to undoing large changes.
As for approaches to take, I see two major branches we can go down:
Try to leverage VSCode's default API undo stops. The main advantage of this, obviously, is that it should be the fastest possible approach. In addition, it also seems relatively simple.
Use Neovim for its undo functionality. The biggest advantage of this is that it lets use an UNDO TREE! Wow! As well as all the other Vim undo features (
:earlier
, etc.) Main disadvantage is that it's almost definitely slower, and that it ties us even close to a neovim dependency (which isn't necessarily terrible).The text was updated successfully, but these errors were encountered: