Added TextHint::NoKerning to skip kerning in Text and TextLayout.
Added Gemini 3 Pro Preview new Gemini model.
Some minor changes in TextEmulator, backported from st latest version.
Several fixes in AI Assistant chat UI.
TextLayout cache is now returned as a shared pointer to avoid copying the struct each time.
Some minor changes in FontTrueType and FontManager.
ShapedGlyph now stores the TextDirection of each glyph.
Fixed some minor issues cleaning up memory while destroying the engine (this is to be able to create a new window and load resources without issues, a not very common behavior but needed for tests).
Added `Primitives::drawSoftShadow` to draw simple shadows with primitives. Improved the shadow rendering adding correct rounded borders. UIWindow::drawShadow now uses this function.
Fixed a bug not displaying a recently create window when default transitions are enabled.
Plus some minor fixes.
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.
* "convert-indentation-to-tabs" and "convert-indentation-to-spaces" (SpartanJ/ecode#667).
* "fold", "unfold", "toggle-fold", "fold-all", "unfold-all" (SpartanJ/ecode#683).
Added logic for file associations in SyntaxDefinitionManager, not used yet. Also added generic logic to detect languages from file path (specifically for C++ headers that contain file names without extension).
Minor changes in String.
Added "move-to-previous-paragraph", "move-to-next-paragraph", "select-paragraph", "delete-paragraph" (SpartanJ/ecode#670).
Updated codicon font and changed the AI Assistant main icon.
Improved `CommandPalette::build`.
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).
Fix a use-after-free bug in Font::getGlyph and FontTrueType::getGlyphIndex.
Some extra checks to avoid crash reported in SpartanJ/ecode#650.
Some minor improvement in auto-close brackets logic.
Added clone document buffer (SpartanJ/ecode#632).