Commit Graph

1839 Commits

Author SHA1 Message Date
Martín Lucas Golini
a9901ef23b Allow to configure window shadow style with: window-shadow-color, window-shadow-offset, window-shadow-size. 2026-02-16 13:32:14 -03:00
Martín Lucas Golini
106af2f060 Minor refactor. 2026-02-15 00:07:08 -03:00
Martín Lucas Golini
1b1782bb2d I'll need this later.
Updated TODO.
2026-02-13 20:38:44 -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
4979623687 Added initial offset for Text (plus tests).
Added Primitive::drawPixelPerfectLineRectangle.
Added tRect::enlarge.
2026-02-07 13:01:10 -03:00
Martín Lucas Golini
a82a9652fb This really fixes MSVC build. But I don't understand how this broke in a first place... it makes no sense. 2026-02-05 01:44:09 -03:00
Martín Lucas Golini
9d81f9d96b I guess this should fix MSVC build. 2026-02-05 01:19:55 -03:00
Martín Lucas Golini
2687f49294 Refactor in ContextSettings.
Added NVIDIA provider in AI Assistant and updated Perplexity models.
2026-02-05 00:53:07 -03:00
Martín Lucas Golini
f2d491384d Some UI widgets constructor refactor and minor function renaming.
Added Moonshot LLM models support.
2026-02-04 01:31:43 -03:00
Martín Lucas Golini
ec47dffa30 Several fixes in soft-wrap implementation.
Added soft-wrap support in UITextView and UITooltip.
Added more soft-wrap tests, now testing also selection.
2026-02-03 01:41:15 -03:00
Martín Lucas Golini
bbb8fce43f Instead of using *::cell::text and tableview::cell::icon in breeze and styles we will just use *::tableview::cell. And leave the inner elements of PushButton unaltered (since the father already can alter them).
Did some fixes in `Text::findCharacterPos` and `Text::findCharacterFromPos`, also tentatively added support for soft-wrap in those function (I haven't tested much yet).
2026-02-01 21:46:42 -03:00
Martín Lucas Golini
b7d9fd0567 Soft-Wrap in Text support WIP. 2026-02-01 00:56:37 -03:00
Martín Lucas Golini
256df44a4d Better wildcard matching in utest (allow multiple wildcards). 2026-01-29 17:37:54 -03:00
Martín Lucas Golini
b3b5f97ab8 Optionally return wraps width when computing breaks WIP. 2026-01-26 21:59:53 -03:00
Martín Lucas Golini
efc361b654 LineWraps now also report real new line breaks (otherwise it will not be possible to partition into visual lines).
Added more text hard-wrap tests.
RGB now has a constructor that accepts Color. Color now has `toRGB()`.
2026-01-25 14:53:55 -03:00
Martín Lucas Golini
9d4fce4524 Implemented soft-wrap support in TextLayout.
Also fixed an old LineWrap::computeLineBreaks bug that wrapped too soon some texts, I had to update the tests (they where looking strange but I thought it was some unfortunate wrapping).
2026-01-25 00:26:54 -03:00
Martín Lucas Golini
1789540388 Separate TextLayout result into paragraphs with ShapedTextParagraph.
Change the `Text::wrapText` implementation to use the `LineWrap::computeLineBreaks` function, so it's consistent across eepp. Also renamed the function to `Text::hardWrapText` to be more descriptive.
Added new-line support in `LineWrap::computeLineBreaks`.
2026-01-24 17:59:09 -03:00
Martín Lucas Golini
baa16fe44d Some minor changes in TextLayout and LineWrap. 2026-01-24 13:55:58 -03:00
Martín Lucas Golini
b3748d05f2 Add yet another text rendering test. 2026-01-24 01:01:16 -03:00
Martín Lucas Golini
409cda3ba5 Minor refactor in LineWrap. 2026-01-23 21:48:10 -03:00
Martín Lucas Golini
5d56e4da34 Added String::formatBuffer for char32_t strings.
Minor fixes in breeze theme.
2026-01-22 01:41:25 -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
f180e58e56 Added Settings -> Window -> UI Theme -> Syntax Color Scheme to use the editor color scheme globally for the UI Theme colors, having a single color palette for the whole UI and making much easier to style the UI, this solves SpartanJ/ecode#661, since now we support one UI theme for each existing syntax color scheme. Still a WIP, I'll continue improving it during the development of 0.7.5, but it's ready to use. 2026-01-18 01:38:27 -03:00
Martín Lucas Golini
cf6c14fbda Do not copy the whole SyntaxDefinition into TextDocument but instead keep the shared pointer to the definition.
Did some minor SyntaxDefinition memory access safety improvements.
In breeze color scheme definition renamed `--win-icon` to `--icon-line` and removed `--scroll-button` since it was not being used.
2026-01-17 00:19:51 -03:00
Martín Lucas Golini
a8cde70eb1 Fix a couple of very unlikely invalid memory access bugs (I was able to reproduce one of those). 2026-01-16 20:07:44 -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
f8fe1d9687 Add multi-thread protection to: ModelSelection.
Make UIAbstractView::notifySelectionChange thread-safe.
Added new UI Test (FontRendering.UITextTest).
2026-01-14 20:12:45 -03:00
Martín Lucas Golini
0f8f15fa53 Pump ecode and eepp versions.
Fix sharedir option in premake files.
Minor logic fix in copy file buffer.
2026-01-13 00:05:20 -03:00
Martín Lucas Golini
ac91cedf9c Added support for maximizing the current tab widget (commands: maximize-tab-widget and restore-maximized-tab-widget), it can also be triggered right clicking a tab -> Maximize Tab Widget (SpartanJ/ecode#651).
Added UINodeLink, this is a very simple node that lets you set a link to another node.
Improved focus control in the status bar panels and windows.
It's possible now in UICodeEditorSplitter to cancel a split request with a custom function checker.
When downloading a file that it's not a supported format, it will try to open with the default external program set in the host OS.
2026-01-11 13:32:48 -03:00
Martín Lucas Golini
d6f60354c1 Improve UIWindow default focusing behavior.
Adjust `window-flags` behavior when used from CSS.
Display a download progress window when download-file-web is used. Also support loading images and sounds from downloads.
Minor safety checks added for engine termination and window closing.
Minor changes in Http.
2026-01-10 01:49:20 -03:00
Martín Lucas Golini
056c9e022c Expose some extra info in ShapedGlpyh and TextLayout.
Improve text selection with RTL layouts.
2026-01-07 20:15:26 -03:00
Martín Lucas Golini
7bc446e9f1 Allow to set TextDirection as text segmentation hint.
Update efsw.
2026-01-07 00:42:14 -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
dbcb93a438 Optimize String::isAscii using AVX2 or NEON (not tested with MSVC yet).
Added EE::System::CPU static class to query about CPU capabilities.
2026-01-04 19:47:48 -03:00
Martín Lucas Golini
331f769590 SyntaxTokenizer improvements for pushTokensToOpenCloseSubsyntax with non-sequential captures.
Added VimL support.
2026-01-04 18:15:15 -03:00
Martín Lucas Golini
b084cab449 Text::setFillColor improvements for shaped text. 2026-01-03 18:38:33 -03:00
Martín Lucas Golini
014d2b767c Improve UIMenu positioning (allow to take into account the trigger button to position). 2026-01-01 14:17:10 -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
1d2dd61cf5 Added option to force opening documents in main split (Settings -> Window -> Open Documents in Main Split). 2025-12-29 01:44:04 -03:00
Martín Lucas Golini
7cfd823881 Some clean up to the terminal configurations. 2025-12-27 20:01:48 -03:00
Martín Lucas Golini
0ca36374c4 Terminal status bar now is a Tab Widget and can create any number of terminals.
Fix a bug when initializing the LSP that provoked to not correctly send the initial commands.
Added `expand-text` to UIPushButton.
Added `setAcceptsDropOfWidgetFn` to externally control which widgets are accepted as droppable in UITabWidget.
Improved draw invalidation in UIStackWidget.
2025-12-27 17:22:12 -03:00
Martín Lucas Golini
8f2b9d65ba Register debugger commands globally. 2025-12-24 00:39:26 -03:00
Martín Lucas Golini
396b3d9d07 Fix paste with middle-click in OSes with no primary selection.
Fix emoji color positioning (broke in previous commit).
Prevent dead-locks in LSP *very* heavy usage scenarios (added a few logs i might remove later).
Enable auto-complete list highlighting by default.
2025-12-23 18:04:36 -03:00
Martín Lucas Golini
0cb44a39d2 Fix bitmap fonts text and cursor positioning. 2025-12-22 14:40:11 -03:00
Martín Lucas Golini
f3b6fcacf4 Implementation for "Light/dark theme should follow system default" (issue SpartanJ/ecode#754). 2025-12-22 01:16:05 -03:00
Martín Lucas Golini
8378f2a1fa Add scrollbar type and mode options for the terminal.
Hack auto-scroll in terminal for Windows 11.
Renamed ScrollViewType and made it global, properties are now `overlay` or `outside`.
Added a couple of goodies for the terminal mode (retain side panel configuration and restore it if no terminals are left).
2025-12-21 02:01:37 -03:00
Martín Lucas Golini
a696c95d75 Improve bitmap fonts support in UICodeEditor.
Refactor font loading.
2025-12-20 23:09:31 -03:00
Martín Lucas Golini
35fbf7c733 Terminal: multiple issues with the copy/paste operations fixed. Now uses the primary selection when corresponds (middle mouse click, shift+insert). Fixed paste operation, it does not hang the app, pastes instantly contents and behaves exactly the same as other terminals.
Incorporated new features into eterm.
2025-12-20 01:58:21 -03:00
Martín Lucas Golini
e5a67727c4 Terminal: Add auto-scroll when selecting and mouse cursor moves out of vertical view range.
Fix tab owned widget focus.
Fix overlapping shortcuts and terminal shortcuts in terminal.
2025-12-19 14:20:17 -03:00