enso-org / enso

Hybrid visual and textual functional programming.
https://enso.org
Apache License 2.0
7.32k stars 320 forks source link

[GUI2] Undoing a node deletion breaks AST ID assignment. #8134

Closed Frizi closed 4 months ago

Frizi commented 8 months ago

After deleting a node and hitting undo, the node is no longer being evaluated. Reloading the project reveals, that the node metadata was also not properly saved. This is caused by the ID map is not being properly undone. The behavior observed so far:

It appears that the Yjs Relative Positions don't behave as expected after an undo operation, since their representation in the undone transaction is not accurately representing the state after that undo is applied. Understanding that behavior needs more testing.

enso-bot[bot] commented 8 months ago

Keziah Wesley reports a new STANDUP for today (2023-10-26):

Progress: Finished #8073 in the morning. Debugging undo/IDs today. It should be finished by 2023-10-30.

Next Day: Next day I will be working on the #8134 task. Continue debugging and adding tests.

kazcw commented 8 months ago

The conflict resolution of Y.Text can break syntax trees.

An important design choice is the mapping between AST and text.

The new representation needs to support read/write via AST changes, the text editor, and external file changes; as well as correct conflict resolution, and undo/redo.

Sea of lines:

enso-bot[bot] commented 8 months ago

Keziah Wesley reports a new STANDUP for the last Friday (2023-10-27):

Progress: Designing synchronization representation and new spans. It should be finished by 2023-10-30.

Next Day: Next day I will be working on the #8134 task. Implementing.

enso-bot[bot] commented 8 months ago

Keziah Wesley reports a new STANDUP for yesterday (2023-10-30):

Progress: Adding line:col to spans in parser, and refactoring parser to fit the more restrictive arithmetic properties of this metric. It should be finished by 2023-10-30.

Next Day: Next day I will be working on the #8134 task. Finish Rust parser changes

enso-bot[bot] commented 8 months ago

Keziah Wesley reports a new 🔴 DELAY for yesterday (2023-10-31):

Summary: There is 4 days delay in implementation of the [GUI2] Undoing a node deletion breaks AST ID assignment. (#8134) task. It will cause 0 days delay for the delivery of this weekly plan.

Delay Cause: Solution requires parser changes and replacing a complex component of the GUI.

enso-bot[bot] commented 8 months ago

Keziah Wesley reports a new STANDUP for yesterday (2023-10-31):

Progress: Finished implementing Rust parser changes. It should be finished by 2023-11-03.

Next Day: Next day I will be working on the #8134 task. Start implementing planned typescript datastructure change.

enso-bot[bot] commented 8 months ago

Keziah Wesley reports a new STANDUP for today (2023-11-01):

Progress: Implementing new edit/sync logic. It should be finished by 2023-11-03.

Next Day: Next day I will be working on the #8134 task. Continue work on new edit/sync.

enso-bot[bot] commented 8 months ago

Keziah Wesley reports a new STANDUP for yesterday (2023-11-02):

Progress: Refactoring APIs, decided we need deeper design changes. It should be finished by 2023-11-03.

Next Day: Next day I will be working on the #8134 task. Designing tree-based sync.

enso-bot[bot] commented 8 months ago

Keziah Wesley reports a new STANDUP for the last Friday (2023-11-03):

Progress: Discussed sync strategy. Designing node representation and edit process. It should be finished by 2023-11-03.

Next Day: Next day I will be working on the #8134 task. Finish design doc, start implementing.

farmaazon commented 4 months ago

There is no longer a problem with deleted node being not evaluated... but metadata are still gone. But that is now tracked by #9314