Commit Graph

1782 Commits

Author SHA1 Message Date
Martín Lucas Golini
02cd65eebe A few extra optimizations. 2025-11-20 00:19:45 -03:00
Martín Lucas Golini
a4002717be Added String::isLatin1 and String::getTextHints.
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.
2025-11-19 01:24:39 -03:00
Martín Lucas Golini
e3ca29842f Rename TextLayouter and move the static functions to TextLayout.
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.
2025-11-17 00:23:58 -03:00
Martín Lucas Golini
c704e00833 Improve editor "add-cursor-above" and "add-cursor-below" behavior. 2025-11-16 20:04:46 -03:00
Martín Lucas Golini
24e8ec447b Try again, not sure what failed in Windows tests (cannot repro). 2025-11-16 11:02:42 -03:00
Martín Lucas Golini
276c481f00 Added support to OpenType SVG font files in FontTrueType. 2025-11-16 00:52:45 -03:00
Martín Lucas Golini
cc709e9d5d Fixed positioning with grapheme clustering in TextDocument. Added String::isGraphemeBoundary, String::isWordBoundary and String::isSentenceBoundary that help this.
Added unicodelib.h dependency.
In TerminalEmulator allow to select text outside the visible range.
2025-11-15 19:48:24 -03:00
Martín Lucas Golini
a1b08cdc38 More fixes for RTL. 2025-11-12 21:42:41 -03:00
Martín Lucas Golini
b0f6e6083d Clean up. 2025-11-12 00:06:38 -03:00
Martín Lucas Golini
7fc992ef2a Fix RTL text rendering. 2025-11-11 01:43:43 -03:00
Martín Lucas Golini
2008b57033 Added SheenBidi segmentation. 2025-11-10 00:53:28 -03:00
Martín Lucas Golini
c114b57b09 Fix Windows build. 2025-11-09 16:01:24 -03:00
Martín Lucas Golini
91f93184af Update FreeType to 2.14.1.
Add SheenBidi dependency (still not in use).
Update tests with the new FreeType version.
2025-11-09 13:36:13 -03:00
Martín Lucas Golini
9d8878a60b ecode: Fixed crash when waiting from an LLM prompt response and closing the Chat UI. eepp: Http client fixes. Thread::getCurrentThreadId() fix. 2025-11-08 01:08:43 -03:00
Martín Lucas Golini
fcce822350 Add LRUCache and use it in TextLayouter. 2025-11-06 01:17:28 -03:00
Martín Lucas Golini
2115546349 Refactor and performance improvements. 2025-11-03 00:06:58 -03:00
Martín Lucas Golini
491b15d6ca Some extra improvements and adjustments. 2025-11-02 17:58:05 -03:00
Martín Lucas Golini
58b8a815d2 Many text-shaper fixes and many more tests. 2025-11-02 13:47:15 -03:00
Martín Lucas Golini
f91c6d0f48 Merge branch 'develop' into text-shape 2025-10-28 00:48:31 -03:00
Martín Lucas Golini
6ec1a10c47 Minor changes in UIApplication. 2025-10-28 00:48:21 -03:00
Martín Lucas Golini
7f30a7e22b Glyph get fixes. 2025-10-26 21:50:09 -03:00
Martín Lucas Golini
fa5c6017f7 WIP text shaping refactor. 2025-10-26 21:29:50 -03:00
Martín Lucas Golini
41be87b4fe Fix Windows build. 2025-10-25 23:47:29 -03:00
Martín Lucas Golini
74ef41e029 Improve font rendering test suite.
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).
2025-10-25 21:15:18 -03:00
Martín Lucas Golini
521631decf Fix ARGB images save when using WebP.
Upload artifacts.
2025-10-25 02:52:21 -03:00
Martín Lucas Golini
af5daa4717 Add Image::diff.
Fixed inavalid memory access due to double free in FontBMP and FontSprite.
Added FontRendering unit-tests.
2025-10-25 00:56:05 -03:00
Martín Lucas Golini
5f678f2dfe Pump versions. 2025-10-19 00:30:33 -03:00
Martín Lucas Golini
2d9e352818 Remove mScreenPosi from Node. 2025-10-18 23:41:07 -03:00
Martín Lucas Golini
022e680a00 ecode Debugger: Enable the variable context menu options (right-click) in the hover variable menu.
Fix a double free bug in UIWindow.
2025-10-15 00:40:13 -03:00
Martín Lucas Golini
fcc517a926 Display tooltip also for chat names. 2025-10-11 22:40:15 -03:00
Martín Lucas Golini
30e7b84c05 Reduce some padding in UI elements.
Minor change in AI assistant attachments UX.
2025-10-10 13:57:24 -03:00
Martín Lucas Golini
ba1d9bdba2 Fixed a few bugs in Color (this fixes the eepp Tests blurred windows background).
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.
2025-10-07 00:13:45 -03:00
Martín Lucas Golini
4edb776d51 Added a new option to set files associations in projects.
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.
2025-10-06 00:12:05 -03:00
Martín Lucas Golini
7dde5826c7 In widgets rename all the addEventListener calls to on.
Some minor fixes in cpp, css, xml and html syntax highlighters.
2025-10-03 21:12:08 -03:00
Martín Lucas Golini
15f9bc3fd8 Arrange correctly the elements in statusbar on some cases.
Add the option "Open URL" in the context menu when right clickin a URL.
2025-10-03 00:05:28 -03:00
Martín Lucas Golini
04c846b569 Implemented new text document commands:
* "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.
2025-10-02 01:11:55 -03:00
Martín Lucas Golini
3d002678a8 Added "join-lines" (SpartanJ/ecode#669).
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`.
2025-10-01 00:50:03 -03:00
Martín Lucas Golini
3248543ce2 Added trim-trailing-whitespace command (SpartanJ/ecode#667).
Added `delete-to-start-of-line` command (SpartanJ/ecode#668).
Added OpenRouter support to the AI Assistant.
2025-09-30 01:13:24 -03:00
Martín Lucas Golini
2cc0aa6ac6 Should fix build. 2025-09-29 00:56:04 -03:00
Martín Lucas Golini
0ec661852a eepp: Updated mojoal, dr_mp3, dr_flac. Fixed various mojoal bugs. Added SoundFileFactory::isKnownFileExtension. SoundFileFactory::isValidAudio, SoundFileFactory::isValidAudioFile.
ecode: Added audio player support (SpartanJ/ecode#96).
2025-09-29 00:02:06 -03:00
Martín Lucas Golini
9d2aec8e14 eepp: Added UIImageViewer new tool widget to view images.
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).
2025-09-28 00:39:17 -03:00
Martín Lucas Golini
6244563e7d Fix a GL sync issue when loading huge texture asynchronously.
Fix a bug in String::numberCleanInPlace.
Added a few Node::setScale related functions.
2025-09-27 12:59:47 -03:00
Martín Lucas Golini
da9c8f42ac Fix crash when using native file dialogs. 2025-09-25 12:42:02 -03:00
Martín Lucas Golini
ec8016eb0e Added CSS light-dark function support (https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/light-dark).
Fix minor bug in SyntaxTokenizer.
Fix default Google chepeast model.
2025-09-24 00:35:37 -03:00
Martín Lucas Golini
997be992fe Add a few function helpers in tRECT. 2025-09-23 11:09:31 -03:00
Martín Lucas Golini
b3447f8a55 Pump eepp minor version since there are a log of new ABI changes. 2025-09-22 23:53:04 -03:00
Martín Lucas Golini
dfd47dd1e3 Native file dialogs support WIP (SpartanJ/ecode#653). 2025-09-18 23:20:16 -03:00
Martín Lucas Golini
240961864d A couple of optimizations in terminal display. 2025-09-14 13:22:56 -03:00
Martín Lucas Golini
993506dfb7 Added "Open Project in New Window" (SpartanJ/ecode#654). Can be enabled from Settings -> Window -> Open Project in New Window.
Close UIFileDialog with escape key down and not key up.
2025-09-13 19:26:03 -03:00
Martín Lucas Golini
fe5d226fae Finished implementing the logic of warn before tab close on terminals (SpartanJ/ecode#644). Also added this feature in eterm (enabled with --warn-before-closing).
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).
2025-09-13 17:07:55 -03:00