LivelyKernel / lively.next

lively.next is a personal programming kit. It emphasizes liveness, directness, and interactivity.
https://lively-next.org
MIT License
65 stars 16 forks source link

Fix undo/redo for morphic/direct manipulation // Experiment with CRDT libraries for direct manipulation operations #104

Open Paula-Kli opened 3 years ago

Paula-Kli commented 3 years ago

With undo which is displayed in the menu with (^ Z) you can only undo the movement of morphs but not morph creation. Is this expected behavior? Also it depends on the keyboard layout whether it is Strg+Y or Strg+Z

merryman commented 3 years ago

There are various issues with undo in the system as it is right now. In particular the expected behavior of removing and adding morphs is not yet properly defined, since it is a compound operation of different changes. You are welcome to propose fixes for this part of the system.

linusha commented 1 year ago

There are multiple CRDT libraries around which all are quite stable and advanced, like YJS and automerge. It could be, that we are able to leverage one of these solutions to build a datatye for morphs which would allow us to not only rely on the library for undo/redo capabilities without any additional effort but using such a library could also be the first building block of some kind of live collaboration between lively sessions, at least for all direct manipulation operations. This is more or less just a thought at this point, we need to experiment to find out if it is feasible.