Commit Graph
100 Commits
Author SHA1 Message Date
Martín Lucas Golini fc45707cd1 Fix padding and margin in empty spans with children. 2026-05-01 00:37:28 -03:00
Martín Lucas Golini 12b1ff0d62 Create the code element with the correct tag. 2026-04-30 20:59:13 -03:00
Martín Lucas Golini 76de6553b4 Introducing UITextNode, a native text node representation within the eepp UI hierarchy. This solves issues where text content incorrectly intercepts CSS structural pseudo-classes (like :nth-child and :first-of-type) because it was previously wrapped in standard UIWidget components (UITextSpan).
In standard web browsers, a `Node` represents anything in the DOM (including text), whereas an `Element` represents an HTML tag. CSS selectors strictly filter by `Element`.
Currently, `eepp`'s CSS engine (`StyleSheetSpecification`) evaluates selectors directly against `Node` sibling counts (`getNodeIndex()`, `getChildCount()`). By distinguishing between "Widgets" (Elements) and "Text Nodes" at the node level, we updated these selectors to count only true structural elements, matching web standards with zero performance overhead.
2026-04-30 20:57:32 -03:00
Martín Lucas Golini 2b5d08d3b0 UITextSpan now inherits from UIRichText, if it's inline-block it will behave as a block otherwise it will continue behaving as inline. This improves inline-block behavior and it's much close to the specification. 2026-04-30 16:49:03 -03:00
Martín Lucas Golini 10b8ed8622 Fix incorrect wrap in inline-blocks. 2026-04-30 13:31:36 -03:00
Martín Lucas Golini 6691d9c174 Improvements for ul and ol.
Added a few tags: dl, dt, dd.
Load style tags inside UIRichText blocks.
Added `display: list-item`.
2026-04-30 12:58:05 -03:00
Martín Lucas Golini bcdd88d1e6 Fix french translation xml corrupted by accident. 2026-04-29 14:54:24 -03:00
Martín Lucas Golini 04d69e2871 Several HTML widgets fixes. 2026-04-29 14:07:56 -03:00
Martín Lucas Golini 4ab9942e37 Merge remote-tracking branch 'origin/develop' into develop 2026-04-29 13:05:37 -03:00
Martín Lucas Golini ae0fd6bc2b Fixes for absolute positioning and some minor details. 2026-04-29 13:05:29 -03:00
Martín Lucas Golini 80faf01cf4 Tolerate a minor difference in border visual tests due to graphics drivers behaving slightly different to render rounded corners. 2026-04-29 02:03:52 -03:00
Martín Lucas Golini 84331ad9ad 1024x653 px width seems to be the upper limit to create windows on macOS CI, no idea why. 2026-04-29 01:16:13 -03:00
Martín Lucas Golini dcd8ecee55 Split borders tests into two to fit in 650px height, which seems to be the maximum height we can use in macOS CI worker. 2026-04-29 00:56:01 -03:00
Martín Lucas Golini e1d9642dc6 Simulate content-box for HTML compat layer. 2026-04-29 00:28:11 -03:00
Martín Lucas Golini f765eae28d Greatly improve borders rendering, added a few tests.
Fixed `UIStyle::getProperty`, now respects specificity.
Fixed `StyleSheetPropertiesParser::addProperty` when inserted an already existing property.
2026-04-28 21:52:31 -03:00
Martín Lucas Golini 350bc8a95d Fix strong being created as b by accident. 2026-04-28 01:52:34 -03:00
Martín Lucas Golini c65122e120 UITextSpan drawBorder fix when span has padding. 2026-04-28 01:28:25 -03:00
Martín Lucas Golini 7c2fad64bc Add font shorthand parser (a simplified version to what we can support now). 2026-04-28 01:14:04 -03:00
Martín Lucas Golini f6e284c6f5 Move Default Block-Level Margins from Stylesheet to Widget Construction. This is needed in order to have working rules line: * { margin: 0; } with low specificity. 2026-04-28 00:11:18 -03:00
Martín Lucas Golini bbd91d2399 Added support for margin and padding in text spans. 2026-04-27 23:58:13 -03:00
Martín Lucas Golini ab712cd5c8 Correctly set HTML img alt text color. 2026-04-27 16:48:31 -03:00
Martín Lucas Golini 24cf3ad6c7 Added UISvg (for embedded svg in XML) and UIHTMLImage (to handle HTML img, although still WIP). 2026-04-27 16:41:37 -03:00
Martín Lucas Golini 939ce02a3a Support "inherit" keyword in CSS properties. 2026-04-27 10:53:53 -03:00
Martín Lucas Golini 82a93dada4 Added UIHTMLListItem to handle list items properly. 2026-04-27 01:38:37 -03:00
Martín Lucas Golini 41e979d314 CSS Position (Out of Flow) implementation.
Added a few plan descriptions that I want to implement later.
2026-04-26 21:50:34 -03:00
Martín Lucas Golini ca3e2e2020 If a full directory path is pasted in the File Name input and it's opened it will try to first open that directory, if valid it will open (SpartanJ/ecode#872). 2026-04-26 18:33:52 -03:00
Martín Lucas Golini 4660257857 Remove ellipsis from some actions / commands (SpartanJ/ecode#892). 2026-04-26 17:37:36 -03:00
Martín Lucas Golini 926bf3102f Fixes for Haiku build. 2026-04-26 14:29:27 -03:00
Martín Lucas Golini 009140f798 Update efsw and SOIL2. 2026-04-26 01:26:27 -03:00
Martín Lucas Golini d93b03f624 Pump versions.
Add keybindings to the ecode markdown viewer.
Optimization in BlockLayouter.
Hack to display code in <pre><code> HTML elements.
2026-04-26 01:12:42 -03:00
Martín Lucas Golini d8596bbdcd Merge remote-tracking branch 'origin/develop' into develop 2026-04-25 20:48:35 -03:00
Martín Lucas Golini c6bf311766 Merge branch 'feature/css-display' into develop 2026-04-25 20:48:10 -03:00
Martín Lucas Golini 8a9bc2cd47 Some HTML rendering fixes. Most important is the media query is correctly processed when combining style sheets. 2026-04-25 20:47:51 -03:00
Martín Lucas Golini 1970b8bbe9 WIP CSS Display support. 2026-04-25 18:55:39 -03:00
Martín Lucas Golini 5e85425f27 Fix bug that blocked horizontal scroll on lines larger than the viewport when horizontal scrollbar was disabled. 2026-04-25 13:41:59 -03:00
Martín Lucas Golini 3715933d7a Fix folder not closing when a terminal has focus (SpartanJ/ecode#890).
Fix release notes in nightly.
2026-04-25 11:41:30 -03:00
Martín Lucas Golini bc37296f66 Added kerning cache in FontTrueType. 2026-04-25 02:03:21 -03:00
Martín Lucas Golini c76f9bf3c2 Merge remote-tracking branch 'origin/develop' into develop 2026-04-25 01:19:35 -03:00
Martín Lucas Golini 18ff217a11 Don't lock the editor while matching brackets. 2026-04-25 01:13:50 -03:00
Martín Lucas Golini 1a2d4b1473 Fix in AI Assistant keybindings. 2026-04-25 00:31:06 -03:00
Martín Lucas Golini f21972fd75 Merge remote-tracking branch 'origin/develop' into develop 2026-04-24 19:36:38 -03:00
Martín Lucas Golini 42108f442a Properly display untracked files diff view. 2026-04-24 19:36:30 -03:00
Martín Lucas Golini dea87f345e Disable ASAN leak detection when run unit-tests with xvfb-run (because the tool leaks all X11 windows). 2026-04-24 12:00:45 -03:00
Martín Lucas Golini 7d2d4c0a3b Address comment: https://github.com/SpartanJ/ecode/discussions/884#discussioncomment-16692272 . 2026-04-24 00:15:39 -03:00
Martín Lucas Golini 0bb3f1157f Auto-Close brackets improvements:
1. Word boundary behavior: Typing an opening bracket directly preceding an alphanumeric character prevents auto-closing. (e.g. typing ( before word correctly inserts ( without closing it).
2. Whitespace boundary behavior: Typing an opening bracket before a space triggers normal auto-closing.
3. Forward unbalanced brackets: Typing an opening bracket when there's an unmatched closing bracket ahead on the same line prevents auto-closing (so typing ( when the line is () ) doesn't insert an extra )).
4. Balanced brackets: Regular auto-closing when brackets are completely matched.
5. Quote balancing: If the line already has balanced quotes and your cursor is right before a quote, typing a quote will just overwrite/step over the right quote instead of adding a new pair.

(SpartanJ/ecode#888)
2026-04-23 16:12:25 -03:00
Martín Lucas Golini 8fef89138b Change the Update Tag step in CI. 2026-04-21 17:07:23 -03:00
Martín Lucas Golini 9ccd79b2a7 Upgrade softprops/action-gh-release 2026-04-21 12:56:32 -03:00
Martín Lucas Golini eec7eeb284 Fix a possible dead-lock during closing.
Update to actions/checkout@v6.
2026-04-21 00:20:39 -03:00
Martín Lucas Golini 7307b524f4 Fix UISceneNode::solveRelativePath.
Some fixes in LLM Chat UI, also added the option to display the reasoning (`display_reasoning`).
2026-04-20 01:42:12 -03:00
Martín Lucas Golini 7ec6e3cf1f Greatly improved signature help rendering, now allows to render in multi-line with text-wrapped and it's enabled by default. Added new options for the Auto Complete Plugin:
* **max_signature_helper_width**: The maximum width in stylesheet length of the signature helper (default value: "90%").
* **max_suggestion_documentation_width**:  The maximum width in stylesheet length of the currently selected suggestion item documentation (default value: "100%").
* **signature_help_multi_line**: Enables the signature help to be rendered in multiple lines if needed (wraps text), otherwise it will render in a single line and ensure the current parameter is visible.
* **suggestion_documentation**:  Enables the suggestion item documentation.

(SpartanJ/ecode#874).
2026-04-19 00:52:03 -03:00
Martín Lucas Golini 878307df78 Ups, forgot to export the new class in Windows build. 2026-04-18 15:55:59 -03:00
Martín Lucas Golini 4180e9d7c3 Separate the box placement logic into an static class UIPlacementUtils so it can be used in different cases (SpartanJ/ecode#874). 2026-04-18 15:24:27 -03:00
Martín Lucas Golini da1bbda8c7 Much better documentation placement in the auto-complete suggestions function/method documentation (SpartanJ/ecode#874). 2026-04-18 13:27:03 -03:00
Martín Lucas Golini 18be45681d Prevent miss-matching new/delete when using ASAN. 2026-04-17 18:22:40 -03:00
Martín Lucas Golini 9a094f8770 Reset multi-selection with escape in UITreeViewFS. 2026-04-17 00:26:29 -03:00
Martín Lucas Golini 3908920485 Fix annoying warning. 2026-04-16 23:18:59 -03:00
Martín Lucas Golini 20f44697a0 Add support to select multiple-files in file tree view (SpartanJ/ecode#869). 2026-04-16 19:13:43 -03:00
Martín Lucas Golini ac811a38d9 Add getSelectionRange to UIAbstractTableView and UITreeView. 2026-04-16 01:00:38 -03:00
Martín Lucas Golini e15925dc1e Fix arm64 builds with premake5-beta8 (they broke it with this PR: https://github.com/premake/premake-core/pull/2591). 2026-04-15 12:00:02 -03:00
Martín Lucas Golini 47bab386bb Forgot to delete this file... 2026-04-15 01:55:40 -03:00
Martín Lucas Golini 3d894eb566 Add Together LLM provider to the AI Assistant plugin. 2026-04-15 01:45:30 -03:00
Martín Lucas Golini f95f32eeba Add ${relative_dir} useful to solve case mentioned at https://github.com/SpartanJ/ecode/discussions/876 2026-04-15 00:34:49 -03:00
Martín Lucas Golini 4a4da521d9 Change default keybindings using option+key for macOS to make possible to input text with those key combinations. Mostly changes on modifier keys for some operations: status control panels will switch with mod+number and ctrl+number will switch to tab number, also ctrl+tab and ctrl+shift+tab will advance and move to previous tab.
Also: "lsp-symbol-code-action" will default to cmd+return. "format-doc" will default to mod+option+f.
Important: these changes do not *change* any currently configured shortcut, existing users will have to migrate manually, this is intentional to not disrupt current users work flows.
These changes are for the issue: SpartanJ/ecode#877.
2026-04-14 20:56:49 -03:00
Martín Lucas Golini 530c869a02 Added TERM_PROGRAM and TERM_PROGRAM_VERSION environment variables to the new terminal instances (SpartanJ/ecode#878). 2026-04-14 18:32:14 -03:00
Martín Lucas Golini 04db5aa2f7 Fix text span attribute changes not updating the layout.
Fix UIHTMLBody.maxWidthResizingBug.
2026-04-14 01:24:50 -03:00
Martín Lucas Golini 16579dad0e margin: auto support.
background from body to html when html background is transparent.
2026-04-14 00:54:47 -03:00
Martín Lucas Golini e2b9b47b21 A couple of nits. 2026-04-13 15:42:27 -03:00
Martín Lucas Golini 9a6733e52b Some improvements to the ACP protocol. 2026-04-12 20:26:37 -03:00
Martín Lucas Golini 382781edec Make auto-indent configurable (none, preserve, smart). 2026-04-12 16:42:54 -03:00
Martín Lucas Golini 2e481f40f3 Update app title when focusing any new tab that it's not an editor or a terminal. 2026-04-12 15:45:04 -03:00
Martín Lucas Golini c013546d52 Implemented what it's described in SpartanJ/ecode#852 (Curly braces completion and Enter behavior). Which is also the same behavior mentioned in SpartanJ/ecode#875 and is an improvement for SpartanJ/ecode#294. 2026-04-12 13:55:26 -03:00
Martín Lucas Golini 88e88ab592 Add a few keybindings to the AI Assistant plugin. 2026-04-12 01:26:39 -03:00
Martín Lucas Golini a401f260e8 Fix underline in some cases not being rendered.
Fix UIWidget::propagateInheritedProperty incorrect length calculation in some specific cases.
2026-04-11 00:23:03 -03:00
Martín Lucas Golini 5c18b2c02f A couple of minor improvements to the UIFileDialog. 2026-04-10 01:56:24 -03:00
Martín Lucas Golini 400d143d9c Fix emscripten build. 2026-04-09 11:13:33 -03:00
Martín Lucas Golini 9c80091bba Fix Android build.
Add Brotli support to Compression, IOStreamInflate and HTTP client.
2026-04-09 01:43:25 -03:00
Martín Lucas Golini 7d09138bb0 Add woff2 font format support.
Try again luck with the test that it's failing in macOS...
2026-04-09 00:54:22 -03:00
Martín Lucas Golini b43508b106 CI fails on macOS just because (window has a different size for some unrelated bug I cannot replicate or control), trying different window size. 2026-04-09 00:26:38 -03:00
Martín Lucas Golini 8bbb61d8f5 Open folder if valid on press enter in path input (SpartanJ/ecode#872).
Improved resources path solving.
Minor changes in tests.
2026-04-08 20:05:52 -03:00
Martín Lucas Golini b2a4239c14 Fix path issues in Windows. 2026-04-08 16:47:59 -03:00
Martín Lucas Golini 57929621df Prevent a crash when signature parameters are incorrect.
"About ecode" close with escape (SpartanJ/ecode#873).
2026-04-08 15:51:35 -03:00
Martín Lucas Golini f72b1c2f13 Fix failing build with mingw. 2026-04-08 10:43:44 -03:00
Martín Lucas Golini 7c86ced332 Disable some test until i found out why they fail badly on windows.
Minor fixes in UIRichText for late recomputations (InvalidWidthLengthComputation4 test).
2026-04-08 02:01:47 -03:00
Martín Lucas Golini fd01c1ad2c Add a few HTML visual tests. 2026-04-08 01:02:23 -03:00
Martín Lucas Golini 311dffba7c Improved RichText custom sizes to indicate if it's a block. 2026-04-08 00:28:23 -03:00
Martín Lucas Golini 20c826d2ae Some minor stuff. 2026-04-07 13:27:07 -03:00
Martín Lucas Golini 5e6c05d0c5 Fixes in Color::isColorString, added some functions to String, refactored a few things in LuaPattern. Fixed a crash while rendering text with only spaces. Improved FunctionString performance. 2026-04-07 00:05:51 -03:00
Martín Lucas Golini 1be1137ebd Forgot to include dir for args library. 2026-04-06 02:48:33 -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 535353dd02 Fixes for min-width and max-width within layouts. 2026-04-06 02:01:35 -03:00
Martín Lucas Golini fcacef0b3d Some fixes to font-face loading. 2026-04-05 22:21:16 -03:00
Martín Lucas Golini 3fd6e5637b Fix SVG align rendering defaults to match HTML.
Fix accidental reflow on UIRichText.
2026-04-05 13:17:57 -03:00
Martín Lucas Golini 061cb53dbf Fix pt, em, rem, pc, in, cm, mm to follow HTML spec.
Fix hexa color validation in Color::isColorString.
2026-04-05 03:21:57 -03:00
Martín Lucas Golini c3135e0b84 Deprecate TextInputPassword and its aliases. 2026-04-04 22:03:03 -03:00
Martín Lucas Golini 98088dd44d Add color boxes support (SpartanJ/ecode#825). 2026-04-04 14:11:05 -03:00
Martín Lucas Golini 2a410876a7 Fix "box" shorthand parser.
AI Assistant: Added some new free models.
Fixed a crash in UIWidgetInspector.
2026-04-04 02:42:10 -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 385a07a385 Set minor issue when setting attributes / properties with "style" attribute. 2026-04-03 20:17:40 -03:00
Martín Lucas Golini a79fde17d2 Improve table-layout algorithms and added fixed table layout support. 2026-04-03 19:24:14 -03:00
Martín Lucas Golini d4ec180134 ecode: allow configuring the default working directory of a new terminal (SpartanJ/ecode#857). Fix border of app_hint.
eepp: UIHTMLTable column width calculation improvements.
2026-04-03 18:21:44 -03:00