Commit Graph

646 Commits

Author SHA1 Message Date
Martín Lucas Golini
0e7909a2f0 Add resource_link support.
Agent Config WIP.
2026-03-22 22:47:58 -03:00
Martín Lucas Golini
00739a7b4e Fix and improve ACP request permission. 2026-03-22 20:52:43 -03:00
Martín Lucas Golini
3b3a6dc78d Styling agentic conversation. 2026-03-22 20:02:27 -03:00
Martín Lucas Golini
721948c4e0 Error handle. 2026-03-22 00:41:09 -03:00
Martín Lucas Golini
163841c98c ACP list sessions and some refactor WIP. 2026-03-21 23:32:18 -03:00
Martín Lucas Golini
af9eebe9ea Agent picker. 2026-03-21 18:07:45 -03:00
Martín Lucas Golini
af75f88369 Merge develop into feature/acp and resolve conflicts 2026-03-21 15:20:15 -03:00
Martín Lucas Golini
03acb3f95b Branched WIP that needs to be merged with the new changes from develop. 2026-03-21 15:07:32 -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
4718a52423 Migrated from robin_hood to unordered_dense (for UnorderedMap and UnorederedSet).
Added support for SmallVector using svector (and we are already using it in a couple of places).
Added debug symbol inspector script for the new SmallVector in project/scripts/debug.
Added tilde support for files and folders passed as parameters from the CLI in ecode (and added FileSystem::expandTilde).
Fixed a bug in "light-dark" parsing.
2026-03-14 15:13:41 -03:00
Martín Lucas Golini
aea26546b8 Fixed a rare crash provoked by two factors:
* Fixed LSPDocumentClient::~LSPDocumentClient: It now explicitly calls `mDoc->unregisterClient(this);`. This ensures that whenever the client is destroyed—whether by the server shutting down or just the document closing—it cleanly detaches from the TextDocument.
* Fixed `TextDocument::notifyDocumentClosed` Iterator Invalidation: Since `onDocumentClosed` is called during a loop over `mClients`, and `LSPDocumentClient` now unregisters itself during that exact same loop, it was modifying the `mClients` `std::unordered_set` while it was being iterated (which is undefined behavior). I changed `notifyDocumentClosed` to iterate over a copy of the clients, safely allowing clients to unregister themselves when they receive the notification.
2026-03-13 01:00:46 -03:00
Martín Lucas Golini
bbba9b9023 ACP WIP 2026-03-09 20:19:10 -03:00
Martín Lucas Golini
a83812272c Fix accidental spaces inserted in chat ui. 2026-03-09 19:14:53 -03:00
Martín Lucas Golini
f2a70f9589 This should fix two crashes:
* A crash during debugging that happens due to invalid memory access (UIAbstractView + VariablesModel changes).
* A crash on ChatUI when closing a chat that was about to receive a server response.
2026-03-06 00:53:05 -03:00
Martín Lucas Golini
0a1c0de152 Silence premake5 beta8 warnings (make it future ready).
Minor nit in AIAssistant, added llama.cpp provider (since it's usually used in 8080).
2026-03-01 18:02:11 -03:00
Martín Lucas Golini
487fecc0bb Windows build: now it's really fixed. 2026-02-28 14:11:22 -03:00
Martín Lucas Golini
cfc6b546ac Added native support for YAML linting (SpartanJ/ecode#829). 2026-02-28 12:29:56 -03:00
Martín Lucas Golini
cfa4e548e9 Fix language health table not displaying correctly the text color (regression from the changes I made in breeze in current dev branch).
Pump plugins versions.
2026-02-28 00:28:24 -03:00
Martín Lucas Golini
bc83764358 Added native JSON linter (SpartanJ/ecode#828). 2026-02-27 18:41:56 -03:00
Martín Lucas Golini
8cd44ed8c5 Do not reconstruct user config files if the configuration file is broken, just notify the user that it's broken. Worst case scenario will have to reset it, addresses SpartanJ/ecode#827. 2026-02-27 01:19:55 -03:00
Martín Lucas Golini
ccf5a49f88 Minor fix in AI chat file links.
Minor improvements in breeze CSS rules and color scheme translator.
2026-02-23 01:05:33 -03:00
Martín Lucas Golini
4850833b00 A couple of minor changes in AI Assistant: Added option to regenerate the conversation title (useful for when you clone a conversation and you modify it). And allow to copy conversation bubbles during AI response. 2026-02-21 12:11:33 -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
ccd6da0a1b Fix a bug in LLMChatCompletionRequest that missed parsing packets without a complete JSON object (affected Copilot and Perplexity).
Fix a bug in Markdown parser, I misinterpreted the documentation.
2026-02-10 01:01:41 -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
619295fa62 Fix modifed files color highlight in treeview.
Minor change in AI Assistant.
2026-02-06 00:45:24 -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
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
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
73f04262be Fix user-after-free during plugin reload. 2026-01-30 00:35:34 -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
1082e6db9b Fix LSP graceful exit (this fixes clangd not erasing the preamble cache files). 2026-01-18 12:37:17 -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
d198f36eca Added an option to reset panel layout (SpartanJ/ecode#675).
Added options to "Reset Global File Associations" and "Reset Project File Associations" (renamed the command names too).
2026-01-11 18:25:49 -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
8260cf6999 Added an option to set to always open terminal in exclusve mode (SpartanJ/ecode#800).
Set language extension priorities per-project.
Added "reset-global-language-extensions-priorities" and "reset-project-language-extensions-priorities" commands.
Added FreeBASIC and QB64 syntax highlighting.
Fixed a minor bug that loaded the same language into memory multiple times.
2026-01-09 01:38:12 -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
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
35cd04e490 Revert "Add a hide / minize button on each panel vertical bar."
This reverts commit c85a431ae3.
2025-12-29 15:38:17 -03:00
Martín Lucas Golini
c85a431ae3 Add a hide / minize button on each panel vertical bar. 2025-12-29 10:47:19 -03:00
Martín Lucas Golini
da5ca25297 Added a Copy Contents button in AI Chat UI globes (since copying directly won't resolve the links automatically).
Fix how `ECODE_SHAREDIR` is set.
Fix a very rare race condition in LSPClientPlugin.
Always resolve line number when locating files (do not enforce the need of the absolute path).
Add aliases for YAML and Markdown.
2025-12-28 23:28:59 -03:00
Martín Lucas Golini
1df4972f56 Allow to expand/contract status bar panel. 2025-12-28 01:07:15 -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
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