Commit Graph

3715 Commits

Author SHA1 Message Date
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
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
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
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
42108f442a Properly display untracked files diff view. 2026-04-24 19:36:30 -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
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
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
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
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