enso/app/gui/src
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
..
controller Create and edit nodes in temporary ast nodes with execution context disabled (#7779) 2023-10-06 14:56:09 +00:00
ide Open projects using the packaged language server (#7868) 2023-09-28 14:13:14 +00:00
model Create and edit nodes in temporary ast nodes with execution context disabled (#7779) 2023-10-06 14:56:09 +00:00
presenter Create and edit nodes in temporary ast nodes with execution context disabled (#7779) 2023-10-06 14:56:09 +00:00
transport Revert "Handle wasm panics, display a message and allow a restart (#7507)" (#7708) 2023-08-31 13:30:01 +02:00
config.rs [Gui2] Opening projects and language server connection (#7813) 2023-09-22 03:43:25 +00:00
constants.rs Linting codebase 2022-03-10 05:32:33 +01:00
controller.rs Dynamic dropdown support (#4072) 2023-02-04 00:50:24 +00:00
ide.rs Introducing new notifications to the GUI (#7458) 2023-08-04 16:48:23 +02:00
integration_test.rs Revert "Handle wasm panics, display a message and allow a restart (#7507)" (#7708) 2023-08-31 13:30:01 +02:00
lib.rs Fix panic when closing project while some GUI elements are still in executor. (#7422) 2023-07-31 09:36:58 +00:00
model.rs Implement documentation IR (#4024) 2023-01-12 14:50:33 +00:00
presenter.rs Introducing new notifications to the GUI (#7458) 2023-08-04 16:48:23 +02:00
profile_workflow.rs Fixing Electron runner (#5633) 2023-02-19 01:37:58 +01:00
retry.rs Fix entering node failure handling (#6932) 2023-06-06 10:41:30 +00:00
sync.rs Implement documentation IR (#4024) 2023-01-12 14:50:33 +00:00
test.rs Create and edit nodes in temporary ast nodes with execution context disabled (#7779) 2023-10-06 14:56:09 +00:00
tests.rs Revert "Show spinner when opening/creating a project, take #2 (#6827)" (#7229) 2023-07-14 15:00:52 +00:00
transport.rs Linting codebase 2022-03-10 05:32:33 +01:00