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

Reconciliation for components defined in a workspace #1121

Open linusha opened 8 months ago

linusha commented 8 months ago

Aside from supporting the definition of components inside a workspace, it would also be nice to support the direct manipulation + reconciliation for the workspace. Here again, we would face the nasty conflict between textual editing and direct manipulation, forcing the user again to temporarily pause the direct manipulation of components while they are editing. One solution for mitigating this issue would be to introduce the concept of tiles (similar to the ones found in Jupyer Notebooks) where the component definitions can be isolated, so editing other tiles does not interfere with the direct manipulation session for editing a component.

Originally posted by @merryman in https://github.com/LivelyKernel/lively.next/issues/510#issuecomment-1827654719

linusha commented 8 months ago

We decided on implementing a "ranged editing block" via a combination of ranges and anchors, that prevents users from editing a component definition manually when its reconciliation session is opened. This has the benefit of working well for the workspaces as well as the system browser.