enso/app
Paweł Grabarz 6bfdda33a9
Do not crash on empty main function body. (#10990)
Fixes #10976

https://github.com/user-attachments/assets/00b2279d-2acf-468b-8c3c-aa6885cba23d


Addressed issue of empty body block being incorrectly "repaired" into an empty group, geneating invalid `()` syntax. Appending nodes to an empty function now actually replaces its body block, instead of creating a temporary orphan body block node.

Note that empty main function is still considered an error on the engine side, but it doesn't impact the IDE in negative way. Things work again as soon as a node is inserted.

Also fixed a few issues causing hot-reloading to break. Now edited AST code properly hot-reloads all affected modules without breaking the app.
2024-09-06 18:45:20 +00:00
..
.vscode Settings improvements (#10924) 2024-09-06 14:29:26 +00:00
dashboard Dashboard improvements 08/26/2024 (#10946) 2024-09-06 15:13:56 +00:00
gui2 Do not crash on empty main function body. (#10990) 2024-09-06 18:45:20 +00:00
ide-desktop Dashboard improvements 08/26/2024 (#10946) 2024-09-06 15:13:56 +00:00
rust-ffi Split ydoc server into separate module (#10735) 2024-08-08 12:12:05 +00:00
ydoc-server Fullscreen improvements (#10876) 2024-08-23 13:00:44 +00:00
ydoc-server-nodejs More robust ydoc server watch (#10817) 2024-08-14 13:17:53 +00:00
ydoc-server-polyglot More robust ydoc server watch (#10817) 2024-08-14 13:17:53 +00:00
ydoc-shared Do not crash on empty main function body. (#10990) 2024-09-06 18:45:20 +00:00
.example.env Debug Ydoc/LS interaction without making code changes (#10687) 2024-08-06 19:53:36 +02:00
.gitignore Inline modules in app/ide-desktop/ (#10305) 2024-07-17 09:10:42 +00:00
eslint.config.mjs Remove all usages of unstable rust features (#10813) 2024-08-22 14:09:17 +00:00
modules.d.ts Format TS code (#10648) 2024-07-26 17:47:59 +10:00
README.md Inline modules in app/ide-desktop/ (#10305) 2024-07-17 09:10:42 +00:00
tsconfig.json Split ydoc server into separate module (#10735) 2024-08-08 12:12:05 +00:00

Desktop app

This folder contains projects related to the desktop app.

Folder structure

Refer to the README.md in each individual module (if it exists) for the internal folder structure of the module.

  • assets/: Icons and images used by other modules. Currently these are only used by dashboard/.
  • client/: The code for the Electron desktop app.
  • common/: Utility functions required by multiple other modules.
  • content/: The entry point for the GUI1 web app. This is the main page for the desktop app.
  • content-config/: The statically-typed configuration object for content/.
  • dashboard/: The dashboard, used to manage projects. It launches the GUI (located in content/ for GUI1, or /app/gui2/ for GUI2) when a project is opened.
  • icons/: Generates the logo for the app.
  • ts-plugin-namespace-auto-import/: (WIP) A TypeScript plugin to change auto-import to use import * as moduleName rather than import {}.
  • types/: Miscellaneous types used by multiple modules.