- Closes#11821 by updating the upgrade logic to the new executable name
- Re-enables the long disabled `UpgradeSpec` to make sure this remains tested.
- If the tests were enabled we would have caught the regression in #10535
- The tests have been heavily outdated due to being disabled, many small details changed and had to be amended.
- The tests are still marked as Flaky - they were known to be problematic on CI so their failures will not stop CI for now. But at least they are run and we can see if they succeed or not. Plus when running tests locally they will fail (as all tests marked as Flaky - the failure is only ignored on CI).
- Fixes another issue with an infinite cycle when no upgrade path can be found and adds a test for this case.
- If running a development build, the minimum version check can be ignored, as the check does not really make sense for `0.0.0-dev` build.
- Thus it closes#11831 also.
- Makes sure that `GithubAPI` caches the list of releases as fetching it can take time.
Implementation of **type checks** for **intersection types**. The idea is to split the list of `types[]` in `EnsoMultiValue` into two parts:
- first `methodDispatchTypes` represent the types the value _"has been cast to"_
- the rest of the types represent the types the value _"can be cast to"_
By performing this separation we address the #10882 requirements. After a type check only methods available on the `methodDispatchTypes` can be invoked. However the value can still be cast to all the possible types.
A missing value error message is more of a something you haven't done yet message than an error. So coloring it blue is more friendly and also ties into the blue highlighting of the widget names.
Also removed the default text when it isn't text but a function call
![image](https://github.com/user-attachments/assets/3c26dae8-8f38-4ddf-aefe-4ec625e812a6)
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.