If you've seen me speak at the Wolfram Tech conferences, or chatted with me by email or on any of the various Mathematica forums, you probably eventually get the message from me that folks at WRI pay attention to what you have to say. It's one of the things that I'm actually quite proud of my colleagues for...I see a bunch of them all over the place out in the public, mixing it up with our user base, and hearing what the community has to say about our product, and then discussing those things internally.
So for a company with that kind of attitude, you've got to know that we were impressed at the level of organized vigilance on the part of the community in letting us know that Multiple Undo Is Important. It's a sometimes difficult position we're in because there are lots of people that we'd really like to satisfy, and in many cases with concepts that are genuinely useful and interesting. But like any company, there are limits to our resources, and prioritization is necessary. And sometimes really good ideas might be prioritized downward for any number of reasons...sometimes because very difficult choices had to be made, and sometimes for less noble (and in retrospect, perhaps silly) reasons. But you can bet that when Stephen Wolfram was faced at almost every user event with one of you folks consistently reminding him of the need for multiple undo, that there would come a day when he would insist that I completely clear my plate and make multiple undo my very top priority.
So, thanks for that! It's been an interesting project with lots of challenges, and one which I'm very proud to have worked on. Now, for those who wish to indulge my tireless droning, here's a bit of info about the feature.
And we're not finished. Unfortunately, I'm still aware of a few bugs in the system which I'll be working on. And I have a few plans for expanding functionality, including:
Enough words from me. Pipe up if you see any problems or have any suggestions concerning undo.
I missed this original post. Here is a belated congratulations to John and team on this spectacular achiement!
I checked that in situ image modifications via the toolbar that appears when an image is clicked are undoable. The undo makes the workings of the "Actions & Tools" menu clumsy. I would prefer to remove the mini-preview of a modification and show the whole image and let "Apply" be the default. The equivalent of "Cancel" is just a ^Z away. (Not to mention possible multiple undo's).
Guess Hell froze over? ;-) Thank you, thank you
you have put in place key tech that will become very important as MMA grows
Now how about returning to me -- and all those with visual impairments -- some control of the visual aspects of the autocomplete stuff, please.
I can now recommend MMA to those who might really need the undo feature. Again thanks for the hard, tough, and creative effort!!
You single-handedly have convinced me to upgrade. I hope you get the big raise this year.
Thank you John. And, I am sure, a loud thank you from the silent majority as well.
However, the Redo documentation seems to need editing as it talks about Undo rather than Redo and seems to say that one can only do a single level of Redo/Undo. (But Redo does work!... it's just a documentation issue.)
Multiple undo has been number 1 on my wish list for years. Naturally, now that it's been done, I tell what number 2 is: the ability to split the notebook view and look at two different parts at the same time. That's so I can look at functions I've defined at the top of the notebook when I go to use them at the bottom.
By far, this is the best feature in Mathematica 10. I hope to meet you some day and buy you a well-deserved drink. Thank you!
Yes, there is some of the information you can get to programmatically (and even triggered using Dynamic). But it's undocumented and should not be considered an interface that will be stable through future versions.
Every notebook has its own undo manager, so the NotebookObject reports undo information for that notebook only. Input fields also have their own undo manager, if you wanted to see the undo information for an InputFieldBox, you could pass in a BoxObject instead.
The integer is just an indication of how many levels of the stack you want returned. The default is 1 (just the most recent thing). If you want everything, just pass a big machine integer, like 999999.
Also, you can use RedoInformation to get information about the redo stack instead.
I just wanted to let you know how much I appreciate your efforts. Not only that you implemented multiple undo for version 10, but the general attitude to listen what the users have to say and to explain why some features don't work or cannot be implemented easily. I'm always amazed that you still show up in the stackexchange chat every now and then, although everyone will instantly fire questions at you. I do know that a company like Wolfram always sits in many chairs when it comes to feature/design decisions and that Wolfram needs to make profit, because after all the employees like you need to be paid. This makes it even more precious that so many of you guys try to connect to the user base.
Thank you and all the people having "Comments & opinions expressed here are mine, and not those of my employer" in their SE profile for that.
Congratulations John! It's an amazing advance to user experience.
For me, this was the biggest complaint from new users. And now has just gone.