by overwriting an occupied default shortcut, which treated user bindings like mod+d=duplicate-line-or-selection as stale
because that command is not in the default keybinding table. Now it only adds a default when the default shortcut is actually
free.
Added a regression test in src/tests/unit_tests/uicodeeditor_tests.cpp:108 covering the reported case: mod+d reassigned, then
an extra mod+e=show-markdown-preview binding exists. This was reported in SpartanJ/ecode#914.
• Implemented the splitter-level focus state cache, it will remember closed documents cursor state when reopened and it will restore cursor state per-code editor and not per-document (SpartanJ/ecode#893).
| Option | Behavior |
| --- | --- |
| **`afterActive`** | Opens immediately to the right of your currently focused tab. *(VS Code default)* |
| **`last`** | Opens at the very end of the entire tab bar, to the right of all open tabs. |
| **`first`** | Opens at the very beginning of the tab bar, to the far left. |
| **`leftOfActive`** | Opens immediately to the left of your currently focused tab. |
Revisiting some old code, the Map Editor, many things are not properly layouted, I might fix it later, for the moment a few minor fixes.
Fix build output and app output highlighting.
Fix isStopSelChar used in UITextInput for text selection (double click).
Added UINodeLink, this is a very simple node that lets you set a link to another node.
Improved focus control in the status bar panels and windows.
It's possible now in UICodeEditorSplitter to cancel a split request with a custom function checker.
When downloading a file that it's not a supported format, it will try to open with the default external program set in the host OS.
Adjust `window-flags` behavior when used from CSS.
Display a download progress window when download-file-web is used. Also support loading images and sounds from downloads.
Minor safety checks added for engine termination and window closing.
Minor changes in Http.
Set language extension priorities per-project.
Added "reset-global-language-extensions-priorities" and "reset-project-language-extensions-priorities" commands.
Added FreeBASIC and QB64 syntax highlighting.
Fixed a minor bug that loaded the same language into memory multiple times.
Hack auto-scroll in terminal for Windows 11.
Renamed ScrollViewType and made it global, properties are now `overlay` or `outside`.
Added a couple of goodies for the terminal mode (retain side panel configuration and restore it if no terminals are left).
Introduced a new configuration file for projects in the project file `.ecode/settings.json` file.
Initially it supports files associations the following way:
```json
{
"files.associations": {
"glob_pattern": "language_name",
"functional": "cpp",
"map": "cpp",
"**/c++/**": "cpp"
}
}
```
Format is exactly the same as in vscode, and also, if no `.ecode/settings.json` file exists but does `.vscode/settings.json` file exists, it will fallback to that one.
This is related to the discussion in issue SpartanJ/ecode#585.
Added a new UIMessageBox event: `Event::OnDiscard`, this will triggered when window is closed without confirmation (`Event::OnConfirm`). And now `Event::OnCancel` is only triggered when is manually cancelled (click the cancel button).
ecode: Greatly improved image viewing experience. Now you can switch images from the same directory with the mouse wheel, also zoom, translate and rotate the images, images open in a new tab by default but quick-preview can be activated in `Settings -> Window -> Quick Preview Images` (SpartanJ/ecode#96).
Build ecode with -g1, it should improve crash information.
Regain editor focus after escaping from settings menu.
Prevent crash when during widget splitting (couldn't reproduce it but this just avoid crashing, SpartanJ/ecode#650).
Added Objective-C++ highlighter (SpartanJ/ecode#616).
Replaced "Treat .h file as C++" in favor of "Treat .h files as..." with multiple options, including auto-detection (SpartanJ/ecode#614).
Refresh semantic-highlighting after syntax highlighter change.
MenuBar buttons are now slightly more separated.
When switching between dark and light ui prefers color scheme now pick a dark/light color scheme if the currently set is the default (SpartanJ/ecode#535).
Fix a bug in menu bar pop-up not hiding properly.
Minor improvements in CPP, CSS, xit syntax highlighting.
AI Assistant / LLM Chat now can restore previous opened chats and states (last model used, panel split), can have private conversations, can clone a previous conversation, plus some visual improvements.
Fixed a bug in tab widget splitting.