enso/app
Kaz Wesley 2b3bd2cc90
Move documentation into documentable types (#11441)
Move documentation into documentable types (implements #11302).

# Important Notes
GUI:
- Distinguish expression and statement
- `Ast.Ast` is still present, as the base class for AST objects. Most references to `Ast.Ast` are now references to `Ast.Expression`. Operations on blocks use `Ast.Statement`.
- `Ast.parse` has been replaced with: `Ast.parseExpression`, `Ast.parseStatement`, and `Ast.parseBlock`
- `syncToCode` is internally context-aware; it parses the provided code appropriately depending on whether its AST is an expression, a statement, or the top level of a module.
- Remove `wrappingExpression` / `innerExpression` APIs: Wrapper types have been eliminated; modifier lines are now fields inside parent types.
- Simplify AST printing:
- Fully implemented autospacing in `concreteChildren` implementations; the type returned by `concreteChildren` now ensures that spacing has been fully resolved.
- Eliminate `printBlock` / `printDocs`: `concreteChildren` is now aware of indentation context, and responsible for indentation of its child lines.
- The `Pattern` type is now parameterized to identify the AST type it constructs. The `Pattern.parseExpression` function helps create a `Pattern<Expression>`.
- Refactor `performCollape` for testability.
- e2e tests: Improve table viz test: It still doesn't pass on my Mac, but these changes are necessary if not sufficient.

Compiler (TreeToIr):
- An expression in statement context is now found in an `ExpressionStatement` wrapper.
- Documentation for a `Function` is now found inside the function node.
- Deduplicate some polyglot-function logic.
2024-11-04 15:33:53 +00:00
..
.vscode Unify Frontend App (#11287) 2024-10-11 18:23:02 +00:00
common Optimize asset table rendering (#11382) 2024-10-31 10:36:10 +00:00
gui Move documentation into documentable types (#11441) 2024-11-04 15:33:53 +00:00
ide-desktop A set of little improvements. (#11386) 2024-10-24 07:38:08 +00:00
rust-ffi Distinguish assignment/thunk by statement context (#11324) 2024-10-18 17:54:55 +00:00
ydoc-server Move documentation into documentable types (#11441) 2024-11-04 15:33:53 +00:00
ydoc-server-nodejs A set of little improvements. (#11386) 2024-10-24 07:38:08 +00:00
ydoc-server-polyglot A set of little improvements. (#11386) 2024-10-24 07:38:08 +00:00
ydoc-shared Move documentation into documentable types (#11441) 2024-11-04 15:33:53 +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
modules.d.ts A set of little improvements. (#11386) 2024-10-24 07:38:08 +00:00
README.md Inline modules in app/ide-desktop/ (#10305) 2024-07-17 09:10:42 +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.