Fixes#10459
The node is no longer removable and have special icon; if consist of only an identifier (a typical case for collapsed node), the identifier is replaced with icon (like self arguments in normal components).
[Screencast from 2024-07-17 15-18-28.webm](https://github.com/user-attachments/assets/91d48759-3d44-47ac-bbd2-b9a6085ade82)
Single-phase whitespace-aware precedence resolution.
#### Performance
![newplot(4)](https://github.com/user-attachments/assets/9822b0dc-17c3-4d2d-adf7-eb8b1c240522)
Since this is a major refactor of the core of the parser, I benchmarked it; it's about 3% faster.
# Important Notes
- Move operator-identifier recognition to lexer.
- Move compound-token assembly out of precedence resolver
Closes#10564. Dashboard accepts only projects with non-empty namespace.
The change in project-manager ensures that we serialize `namespace` even if it is a default one.
The change in dashboard ensures that namespace can be empty.
- Close https://github.com/enso-org/cloud-v2/issues/1318
- Rename tab when project is renamed
- Update project name in GUI when renamed on Cloud backend (since it does not trigger a LS rename when on the cloud backend)
# Important Notes
None
- Remove unnecessary modules
- Remove `ts-plugin-namespace-auto-import` as it was a workaround to use the non-conventional `import *` convention
- Remove `esbuild-plugin-copy-directories` as it is unuse
- Inline modules that are only ever used once
- Inline `project-manager-shim` into `gui2` - it is only used during `gui2`'s dev mode
- Inline `content-config` into `client`
- Flatten `app/ide-desktop/lib/` to `app/ide-desktop/`
- Flatten `app/ide-desktop/lib/dashboard/` to `app/dashboard/`
# Important Notes
- As mentioned above, all remaining modules have been moved up from `app/ide-desktop/lib/` to `app/ide-desktop/`. It's not ideal but I'd rather hold off on moving them anywhere else before we have a consensus on what should go where.
- (That is to say, this may not be the final directory structure - but I figure it's fine to get *something* done so that hopefully the rest of the restructuring is simpler.)
One of our tests was flaky: one check failed immediately because there were two drop-down elements. I've never caught them in the screenshot, so it's probably near-one-frame state caused by some transitioning.
I added a "wait-check" for single drop-down.
Brings back `shortcuts.md` that was removed when refactoring the repo.
We plan to auto-generate this file from the list of our shortcuts, but for now, a manually edited and imperfect document is better than no document.
Fixes#10311
Using `ExternalId` for `NodeId` allows us to match the idea of node identity with engine. That means any bugs that would cause the identity to change will be immediately visible on UI due to misplaced metadata or node being unnecessarily rerendered from scratch. This change and an addional bugfix of argument deletion handling makes the node view stable on edits and allows tabbing through arguments.
https://github.com/enso-org/enso/assets/919491/72d9ec29-54ed-4899-aac1-6678a001a21d
* Share tanstack QueryClient between dashboard and IDE
Part of #10400.
* Lint
* Review: Use enso-common
* Remove outdated README
* Naming
* Fix
* Lint
* enso-common CODEOWNERS: GUI+Dashboard
* Review: Prepare for GUI to be run from cloud entry point
* Lint
* Lint
* Fix e2e tests
* Fix e2e tests in CI?
* Clean CI build
* Revert "Clean CI build"
This reverts commit 73f2fb7972.
* Fix redundant dependency
* Work around a vue-query bug
* Lint
* fmt
close#9257
Changelog:
- update: Store in the file only the subset of IdMap containing the IDs used in the metadata section on the 2nd line. The full IdMap is transmitted as a parameter of the `text/applyEdit` request.
Fixes#10197
# Important Notes
From now on, package installation will be using `pnpm install`. Installing it globally is fine for convenience, but it can also be used as `corepack pnpm install` without having to install anything other than node. For now, all other scripts are still invoked using `npm`, so we can still invoke them with usual `--workspace` setting. As far as I can tell that doesn't really have any other side effects and is identical as running the script through `pnpm run` in respective workspace project subdirectory.
- Rename `Location.Start` to `Location.Left`.
- Rename `Location.End` to `Location.Right`.
- Use auto-scoping for `Location`.
- Tune widgets for `Text.trim`.
- Correct signature of `Text.split`.
- Adjist `generateLocallyUniqueIdent` to not fail on bad signature.
Dock improvements:
- Right and bottom docks are toggled with buttons.
- Bottom dock:
- Fills available width.
- Height resize handle behaves like right dock's.
- Documentation editor: Top toolbar is outside scrollable area.
- Extended menu: Entries have icons.
- Add component button: Now in bottom-right.
https://github.com/enso-org/enso/assets/1047859/19d64fed-74ab-48c2-af0e-48f140fa8474Closes#10385, #10386.
# Important Notes
- `unrefElement`: Fixed a type-safety bug in; documented a reactivity limitation.
- `keyboardBusy`: Fixed a bug where shortcuts were ignored after clicking any button.
- Fixed right-dock slide-in animation.
- Fix https://github.com/enso-org/cloud-v2/issues/1337
- Fix#10381 (same issue)
- This was caused by queued execution context tasks delaying the disposal of the WebSocket connections - I guess because the WebSocket is closed, either the queue never reaches that point, or retries take too long to reach that point?
- There was also another issue caused by the Dashboard incorrectly caching the `project`, causing the endpoint URLs to become outdated.
Misc changes:
- Change `Editor.tsx` to not return two different component trees. This avoids React unmounting and re-mounting the GUI app.
# Important Notes
None
When copying from AG Grid, include additional information in the clipboard to enable the data to be pasted into the graph as a new Table component.
Closes#10275.
# Important Notes
- Data copied from the table visualization now include headers.