Quick-fix for #11798: If a code-editor edit cannot be applied, revert it in the editor view and display a message "Unable to apply source code edit." This prevents module corruption, but can be inconvenient when trying to perform an edit involving certain syntactically-incorrect intermediate states that are not currently representable. An upcoming PR will provide a more comprehensive solution for that case.
- When comparing pre-release version, the last part is compared lexicographically. In #11796, I did not consider that `rc` is a suffix that is 'larger' than `nightly` (because `r > n`).
- Now, we set this to a relatively recent nightly build.
- The self-upgrade mechanism will use the latest available build, so once the stable version is released it will be preferred.
- The project-manager should be working again because `2024.5.1-nightly.2024.12.10 > 2024.5.1-nightly.2024.11.29` and also `2024.5.1-rc1 > 2024.5.1-nightly.2024.11.29`.
Fixes:
- Opening deleted folder
- Icons
- Diff view collapsed
- Password input for passwords in settings
- Save button appears only if form in settings is dirty
- Disable clear trash button if it's empty
- Disable D&D in the root folder
- Disable Create actions if user select a folder without sufficient permissions
- Many more
Storing `0.0.0-dev` into `package.yaml` makes little sense:
- no two _development version_ are the same
- there is no way to _download_ `0.0.0-dev` version via `ensoup`
- regular releases refuse to process `0.0.0-dev` projects
Better to avoid storing such _development version_ at all.
Recognize Markdown link title syntax. We don't use the title content because we display the 'Ctrl-Click to follow link...' message, but this PR hides the title when displaying the link in rendered view.
Convert HTML clipboard data to Markdown when pasting into documentation editor:
https://github.com/user-attachments/assets/e87ba419-7465-48a7-bb08-101a76012a72
# Important Notes
- The best HTML-to-Markdown converter available seems to be Lexical. It's a large dependency, but this implementation lazily loads it only when rich pasting functionality is needed. In the future, we could cut it down a lot; we only need (parts of) the node definitions, the transformers, and (parts of) the core.
- Not all formatting in the example webpage is supported yet; some issues added to #11772.
- Also: Fix undo/redo in documentation editor (prevent graph editor from also handling).
* Ctrl+click to follow link; clicking link opens a popup. Fixes#11692.
- Ctrl+click to follow link (and add hover text)
- When editing, if the cursor is in a link a popup allows following the link.
- Text filters (e.g. recognizing links) now apply to text dragged into the
editor, or pasted with the context menu, besides pasting with the keyboard
(uses new feature from updated CM).
- Simplify CM editors by moving setup and reactivity patterns into shared
helpers.
- Add integration tests for link interactions in component comments and documentation panel.
- Fix code editor tooltips (fixes#11740).
- All lines containing selected text show markup
Fix performance issue reported by @JaroslavTulach on Discord.
- Fix accumulation of unreferenced AST objects when reconciling module content with `syncToCode`.
- Add a unit test checking that `syncToCode` does not allocate unneeded objects in the module.
Fixes#10768.
Fixes#11729
The issue was quite rare indeed: it happened only when somehow nodes had idmap and metadata cleared from the file, and then only metadata change was applied.
In this case, because there was no idMap change, idMapToPerstist was also empty; metadata were stored with proper ids, but those ids weren't assigned to any span.
- Clicking a component's menu button makes the component the sole selection
- When a component becomes the sole selection due to a user interaction, it is raised to the top
Fixes#11767.
Fix failure to parse a syntax case involving unexpected usage of annotated expressions (fixes#11691).
The root cause of the bug was usage of the `matches!` macro in a situation where a `match` statement should have been used to enforce exhaustiveness.
- I have corrected the bug, and reviewed all usages of the `matches!` macro. I didn't find any other *incorrect* usages of `matches!`, but I found and replaced some potentially *fragile* uses. I also simplified some unnecessary uses of `matches!`, replacing them with expressions that are more-obviously correct.
- Stricter parsing: It is now a syntax error for an inline annotation to occur in the RHS of an application (e.g. `fn @Tail_Call recur`)--the precedence in this case may be surprising, so parentheses should be used around the annotated expression.
`parse_all_enso_files.sh`: This PR does not affect any AST in the .enso corpus.
Fixes#11406
Also refactored the right panel state into its own store, so it is less coupled with the graph editor.
<img width="439" alt="image" src="https://github.com/user-attachments/assets/73e6bb92-235f-497d-9cff-126dc4110f8b">
The function definition widget tree displays the icon, name and all arguments. The name is editable, everything else right now is just read-only. The icons next to the arguments are just placeholders intended to be replaced with a "drag handle" icon.
Also fixed issues with missing rounded corners on the ag-grid widget.
<img width="263" alt="image" src="https://github.com/user-attachments/assets/cb61f62a-755c-4865-ba6c-ab9130167713">
Context menu improvements:
- Activate component context menu only for clicks on component widget area (fixes#11745).
- In a table-editor widget, if AG Grid opens a context menu, don't open the component menu.
- Enable the AG Grid context menu on OS X.
Fixes#11716
The previoud implementation of restoring execution context assumed, that any synchronization in progress on connection close will fail - but actually if the synchronization just waited for executionContext/create, it might be successfull and effective after reconnecting.
Also, show "Language Server connection lost" when the actual language server connection is lost, and dismiss the message on reconnect.
# Important Notes
The hibernation still does not work properly - connection to Project Manager is not restored.
This PR removes sending the pre-generated name to the remote backend. We don't have full control over this and can't guarantee the uniqness of the name purely client-side.
Closes: https://github.com/enso-org/cloud-v2/issues/1600
For the local backend we still generate the name though.