Hi SMC Users/devs,

Today -- motivated by a challenge from a c9.io developer at a recent
meetup in Seattle -- I finally implemented multi-user sync-aware full
document undo/redo, at least for code editors, sage worksheets, and
Jupyter notebooks.   If you've ever edited a file, worksheet, or
Jupyter notebook at the same time as somebody else, and you hit
control+z (or click undo) right after *they* type something, you would
have undid *their* last thing.  That's because the undo/redo would use
the underlying Codemirror editor's undo/redo functionality.   I wrote
a new implementation of undo/redo built on top of the realtime
multiuser sync functionality.  Instead of undoing the last change (or
changes if you undo or redo multiple times) to the document, it undoes
*only* the changes that you made during this session.

For Jupyter notebooks in SageMathCloud this has an interesting side
effect.  Vanilla Jupyter itself doesn't have any global undo --
instead they have a local undo in each cell, which you could only use
via the keyboard and.   With this change, now Jupyter notebooks in SMC
have a global undo: make some changes in any cell(s), move cells
around, delete cells, etc., then click undo/redo or use the keyboard
to undo/redo, and the undo should undo everything you actually did
across all cells.

 -- William


-- 

Best Regards,
William Stein

CEO, SageMath, Inc.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-cloud" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-cloud/CA%2BjwZMjxTxRNo_pONQwC1ogOh_dsfeYcagQ-6pX9uKa%3DJHZ0uw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to