68 Commits

Author SHA1 Message Date
Martín Lucas Golini
aa9efcf13b Load CSS default HTML element styles from a CSS file with no specificity. This simplyfies how to setup the HTML defaults. Also set new defaults matching closer HTML spec. 2026-05-24 13:15:31 -03:00
Martín Lucas Golini
0defa0ada3 Fix hex color string parsing.
UIMarkdownView now uses the HTMLFormatter::HTMLtoXML.
Removed formatting hack to force strict XML from HTML, now we should always use HTMLFormatter::HTMLtoXML.
2026-05-20 01:39:05 -03:00
Martín Lucas Golini
8cfedc4590 Added alignment-baseline and vertical-align support in RichText and all its consumers. 2026-05-17 21:54:08 -03:00
Martín Lucas Golini
828adf581d Initial work on the system font resolver. 2026-05-13 23:59:36 -03:00
Martín Lucas Golini
336afe90d7 Fixed a rendering bug in the terminal emulator when updated line only updated spaces.
Added an optimization for scene loading.
Do not allow the spell checker renderer to try to render on too long lines.
2026-05-04 19:30:56 -03:00
Martín Lucas Golini
6e65ef31f2 Merge branch 'develop' into feature/sdl3 2026-04-23 17:57:31 -03:00
Martín Lucas Golini
dbde511d99 Fix UIRichText children sizing, take into account padding. 2026-04-06 02:39:14 -03:00
Martín Lucas Golini
56c8bdcc5b Treat width/height px units as dp in HTML environments for better scaling. 2026-04-04 00:53:07 -03:00
Martín Lucas Golini
a14b8f4de0 Minor fix in UIHTMLTable layouting.
Add *very* basic HTML test. And *very* basic HTML demo. This is more than basic, it's just that I need something to quickly test stuff.
2026-03-28 02:45:24 -03:00
Martín Lucas Golini
affd3737b5 Merge branch 'develop' into feature/sdl3 2026-03-22 17:50:28 -03:00
Martín Lucas Golini
70cec917da SDL3 port WIP. 2026-03-21 19:06:19 -03:00
Martín Lucas Golini
05d6d3e2a3 Redesigned LLM model selection in AI Assistant chat UI (now it's possible to search by filtering its name).
Redesigned UIDropDownList to inherit from UIDropDown which is a base class to handle different types of drop-downs. Added UIDropDownModelList which is the same as UIDropDownList but uses a UIListView by default so it's a model/view based DropDown.
Fix crash when changing states of the buttons in the build panel.
Increased the default animations speed.
2026-03-21 15:02:50 -03:00
Martín Lucas Golini
d6fa55a696 Added UIMarkdownView and Markdown class (integrated md4c into eepp).
Fixes in HTML rendering.
Fix deadlock in Http pool shutdown.
2026-03-05 01:31:25 -03:00
Martín Lucas Golini
fc0f33201c RichText class now can hold any Drawable.
Added UIRichText with spans (UITextSpan). Still a WIP but core is working.
2026-03-02 00:20:24 -03:00
Martín Lucas Golini
677aab8e0c UIAbstractView::findRowWithText now accepts FindRowWithTextMatchKind instead of a boolean to force equal comparison.
Refactor of some examples, added a new hello world example but using UIApplication.
ecode: Fixed how it filters the `sbt`, `srt` and `sb` universal locator switches.
2026-02-26 00:32:48 -03:00
Martín Lucas Golini
7977cd99dd Minor changes in DropDownList style.
Added StringMapModel and an example.
2026-02-09 13:37:18 -03:00
Martín Lucas Golini
e0bf0a23e5 Added a basic RichText class (and added tests and an example).
Fixed LineWrap when using initial X offset and the word does not fit in the current line but it fits in the next.
Added basic agent rules.
2026-02-08 13:35:16 -03:00
Martín Lucas Golini
faedaa43f4 Refactor in LineWrap operations enums and structs, moved everything into linewrap.hpp.
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).
2026-01-21 00:03:01 -03:00
Martín Lucas Golini
534e9a8f59 Improved FunctionString::parse to support function calls within function calls. Also fixed some corner cases and added unit tests for the function. 2026-01-15 22:05:29 -03:00
Martín Lucas Golini
caebfc4d81 premake projects now enable text shaping by default. 2026-01-08 19:23:22 -03:00
Martín Lucas Golini
70f7a1cc61 Added String::stripAnsiCodes. Now used in build and run settings, this can be configured for the build and the run options.
Minor fixes in C and C++ grammars.
Debugger: Expressions are now evaluated as soon as they are added if debugger is running but paused.
Fix a newly introduced bug that incorrectly calculated string widths when string contained new lines.
2026-01-06 00:46:31 -03:00
Martín Lucas Golini
d5e10aa790 Improve color emoji rendering.
Add new test for emojis + text.
Enabled text-shaper by default.
Updated the NotoColorEmoji font with the latest version.
2025-12-30 17:52:31 -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
fa5c6017f7 WIP text shaping refactor. 2025-10-26 21:29:50 -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
d75c0991cc Some improvements to TextDocument::fileMightBeBinary and added some unit tests for it. 2025-10-12 14:04:21 -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
921ad5c4c4 Update submodules. 2025-10-08 01:40:54 -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
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
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
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
Martín Lucas Golini
4b4a5f3491 More work on the Spell-Checker (SpartanJ/ecode#515).
Spell-Checked a lot of code.
2025-08-21 01:43:42 -03:00
Martín Lucas Golini
fa84a0253b Clean up some unused Font functionality. 2025-06-08 01:22:54 -03:00
Martín Lucas Golini
cec4fa6e72 Add webp image format support (load and save).
Fix bug introduced in the last commit for UIDataBind initialization.
Change gmake2 in favor of gmake when using premake5 since it has been depreated in premake5-beta6 (hopefully I did not miss anything).
2025-06-04 21:02:38 -03:00
Martín Lucas Golini
61e2df83db Added UIProperty to easily bind values with UI elements (very basic initial implementation). 2025-06-04 00:24:21 -03:00
Martín Lucas Golini
c156b53e4b Rename "keyword2" to "type" and "keyword3" to "parameter".
Added some String overloaded functions.
2025-06-01 20:07:23 -03:00
Martín Lucas Golini
d3667b55fd Fix auto-close brackets when used with multiple cursors.
Remove the old Hide Tab Bar in single tab button.
2025-05-24 10:48:06 -03:00
Martín Lucas Golini
821e7f50dd SyntaxTokenizer: improve the stack-based pattern matching to support include / repositories.
Added some *very basic* support for some *very basic* TextMate grammars, `$language.tmLanguage.json` files are now parsed and supported internally. Full support is not currently possible, and might never be. This is to facilitate converting grammars to ecode format.
Updated python linter and formatter to the latest ruff version.
2025-05-07 21:17:07 -03:00
Martín Lucas Golini
fe84f10794 Improve tokenizer for closing sub-syntaxes.
Allow adding alternative names to languages.
2025-05-02 23:57:08 -03:00
Martín Lucas Golini
3958977752 This should be slightly more correct. 2025-04-05 18:33:11 -03:00
Martín Lucas Golini
7c71f6e1fb Try to enable backward-cpp for all ecode builds. This might break CI, let's see... 2025-04-05 18:25:18 -03:00
Martín Lucas Golini
d58e846cce Improve tokenizer performance by adding a couple of simple tokenizing hacks.
Added UUID class.
Fixed TextDocument folding ranges not updating on untitled docs.
Fixed UILinearLayout bug I introduced the other day.
Improved the Spreadsheet parser to allow direct use of arithmetic operators.
2025-03-10 21:06:36 -03:00
Martín Lucas Golini
5533ab46f1 More improvements to debugger. Allow to pick running process to debug. Improve expressions inspection. 2025-01-19 23:40:15 -03:00
Martín Lucas Golini
5e73886cc6 More debugger fixes. 2025-01-15 01:49:50 -03:00
Martín Lucas Golini
2f6f825a63 More WIP implementing more functionalities in DAP. This commit will probably fail on some OSes. 2025-01-11 16:24:27 -03:00
Martín Lucas Golini
df65ec78c3 Basic debugging working. 2025-01-04 15:43:54 -03:00
Martín Lucas Golini
a74263af3d Add support double click to open a new untitled document over the tab bar (issue SpartanJ/ecode#361). 2024-11-20 23:51:40 -03:00
Martín Lucas Golini
d307d78adf Fix Windows build. 2024-11-19 00:50:38 -03:00
Martín Lucas Golini
1e58843896 Optimized String::toString.
Revert a change in focus behavior in UIDropDownList since it's incorrect.
Measure plugin load times.
2024-10-22 21:23:31 -03:00