IssueRaiser

[Feature Request] Undo branches

Undo branches / undo tree allows you to undo some changes, then make a new change, while keeping all changes available in the undo tree. The undo tree can therefore prevent awkward scenarios such as: * Losing all redo futures by accidentally pressing a button during undo * Copying the file or save it with git when trying multiple alternatives This screen-cap showcases how it works in Emacs with undo-tree. ![wpid-undo-tree1](https://cloud.githubusercontent.com/assets/908496/23103901/811d0352-f6c3-11e6-8dfa-b8690faa034f.gif) https://github.com/Zalastax/vscode/commit/c5699711d21dece88c7c608f6d8ae277f72a0081 contains the changes to the model that are needed, but several questions remain to be answered. I'm interested in completing the feature but need further input before proceeding. * How should the UI look? Graphics / ASCII, clickable? * Should the tree be formatted like in Emacs undo-tree (as short tree as possible) or like Vim's Gundo http://screenr.com/M9l (one state per line sorted by time)? * What unit-tests should be added? You can try out the current changes by compiling my fork and you'll find 'History Tree' in the Edit menu. Clicking the menu item will console.log a function that changes what redo future is selected (just like in the gif).

Posted by Zalastax on Feb 19, 2017, 4:09 PM

Tags

Related issues

Raise real-world problems, find people facing the same issue, and discuss solutions.4,500 issues0 comments

ux (Software)

[Feature Request] Undo branches

ZalastaxFeb 19, 2017, 4:09 PM

Undo branches / undo tree allows you to undo some changes, then make a new change, while keeping all changes available in the undo tree. The undo tree can therefore prevent awkward scenarios such as: * Losing all redo futures by accidentally pressing a button during undo * Copying the file or save it with git when trying multiple alternatives This screen-cap showcases how it works in Emacs with undo-tree. ![wpid-undo-tree1](https://cloud.githubusercontent.com/assets/908496/23103901/811d0352-f6c3-11e6-8dfa-b8690faa034f.gif) https://github.com/Zalastax/vscode/commit/c5699711d21dece88c7c608f6d8ae277f72a0081 contains the changes to the model that are needed, but several questions remain to be answered. I'm interested in completing the feature but need further input before proceeding. * How should the UI look? Graphics / ASCII, clickable? * Should the tree be formatted like in Emacs undo-tree (as short tree as possible) or like Vim's Gundo http://screenr.com/M9l (one state per line sorted by time)? * What unit-tests should be added? You can try out the current changes by compiling my fork and you'll find 'History Tree' in the Edit menu. Clicking the menu item will console.log a function that changes what redo future is selected (just like in the gif).

Comments (0)

No comments yet. Start the discussion.

Comment on this issue