enso/app/gui/controller
Ilya Bogdanov 3b6f13c7b9
Create and edit nodes in temporary ast nodes with execution context disabled (#7779)
Closes #6417

Creating and editing nodes with a component browser does not edit the node in place but creates a temporary AST node with the execution context switch. When the node is committed, the original AST is replaced by the new one, and the temporary node is removed.

This solves several issues:
1. Previewing suggestions or editing nodes should no longer produce unwanted side effects, as the edited node expression is always evaluated with the output context being disabled.
2. Errors no longer propagate down the graph when you edit the node. The edited node has no outputs connected. Inputs behave normally, though.
3. Undo-redo and editing abort is much simpler. To abort editing, remove the temporary node.

https://github.com/enso-org/enso/assets/6566674/8d38e6bc-a4de-4e69-8d48-52d9b45b6554

# Important Notes
The code is a bit awkward in a few places. This is the consequence of previous architecture.
2023-10-06 14:56:09 +00:00
..
double-representation Create and edit nodes in temporary ast nodes with execution context disabled (#7779) 2023-10-06 14:56:09 +00:00
engine-model Build script merge (#3743) 2022-10-10 23:38:48 +02:00
engine-protocol Remove extra dot in error messages (#7974) 2023-10-05 15:06:07 +03:00
src Build script merge (#3743) 2022-10-10 23:38:48 +02:00
Cargo.toml New IDE build script (#3466) 2022-05-23 04:16:04 +02:00