Commit Graph
557 Commits
Author SHA1 Message Date
Martín Lucas Golini 98088dd44d Add color boxes support (SpartanJ/ecode#825). 2026-04-04 14:11:05 -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
Martín Lucas Golini 26a97be74d Added HTML native linting.
Added HTML folding-ranges.
Fixed HTMLFormatter::HTMLtoXML.
Added `TextDocument::toString` and `TextDocument::toUtf8String`.
Fixed incorrect check for emojis in Text.
Fixed potential crash due to CSS parsing issues in StyleSheetSpecification.
2026-03-29 14:31:26 -03:00
Martín Lucas Golini 084152ec09 Don't force the Diff View when opening diff or patch files, give a menu option to show the diff preview (closes issue SpartanJ/ecode#863). 2026-03-27 11:24:05 -03:00
Martín Lucas Golini 43a1dca16c Layouting improvements for UIImage and HTML elements.
Default StyleSheetUnit is now Dp when it's not specified (this is not used very often but in HTML mode we need to respect the DPI).
Fix MarkdownView fonts color when on Light theme.
2026-03-27 00:01:09 -03:00
Martín Lucas Golini 939316365e Fixed text-decoration in spans.
Added markdown live preview option in markdown files (I'll iterate later).
2026-03-26 01:01:04 -03:00
Martín Lucas Golini 571ed644f5 Integration of the diff/patch viewing and file comparison in ecode (SpartanJ/ecode#130). 2026-03-25 23:44:57 -03:00
Martín Lucas Golini 527c1dc56c Fix in drop-down height calculation.
Added `--diff` parameter.
Allow to load multiple files and folders from the CLI.
2026-03-25 13:20:10 -03:00
Martín Lucas Golini d0093a7801 Added multi-file diff / patch visualization support. 2026-03-25 00:54:48 -03:00
Martín Lucas Golini d38415f335 UIDiffView: Added Reduced / Complete toggle. Added LCS support. A lot of extra improvements. 2026-03-24 18:50:54 -03:00
Martín Lucas Golini 534c052722 Added side by side view in the diff viewer, allow to change view mode with a switch. Performance improvements and more. 2026-03-24 13:34:56 -03:00
Martín Lucas Golini 0e923adea9 UI: Add UIDiffView for specialized diff/patch visualization
- Integrated dtl into thirdparty for native string diffing
- Implemented UIDiffView, a composite wrapper for UICodeEditor with a custom plugin (UIDiffEditorPlugin)
- Handles dynamic string diffing and standard .patch file parsing
- Automatically extracts target filename from patch headers for proper syntax highlighting
- Corrects line numbers in gutter to match the diff origins while hiding patch headers
- Wired into App::loadDiffFromPath and GitPlugin
- Added exhaustive unit tests in uidiffview_test.cpp
2026-03-23 18:50:26 -03:00
Martín Lucas Golini 047ce7abdd Fix terminal close warning spawning multiple times and allowing to crash the app. 2026-03-20 12:40:40 -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 dcf118f739 ecode: Fix "Show Image Preview". 2026-03-02 11:05:58 -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 e553398b04 ecode: log the configuration path during initialization. 2026-02-02 19:04:39 -03:00
Martín Lucas Golini e2c390eedf Fix --verbose on Windows. 2026-02-02 14:49:25 -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 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 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 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 93a8c6e4ab Fix crash when drag & dropping images into ecode.
Fix Windows temp path resolution.
2026-01-07 16:25:17 -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 34d6115db8 Fix opening nonexistent files from CLI. 2025-12-29 19:42:06 -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 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 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 7cfd823881 Some clean up to the terminal configurations. 2025-12-27 20:01:48 -03:00
Martín Lucas Golini 674c4c3011 Minor change in how ecode tints the title bar on macOS. 2025-12-26 20:30:34 -03:00
Martín Lucas Golini 8f2b9d65ba Register debugger commands globally. 2025-12-24 00:39:26 -03:00
Martín Lucas Golini b0707119ad Fix macOS build. 2025-12-22 01:34:10 -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 5965d77e02 Add an option to configure the Settings -> Window -> "Use editor font in input fields" (this is enabled by default but not always convenient). 2025-12-21 13:00:52 -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 97ed873daa Take into account the line spacing to position the cursor. 2025-12-20 15:35:09 -03:00
Martín Lucas Golini abda8775ac Add terminal cursor styles selection at Settings -> Terminal -> Cursor Styles.
Fix how selection in terminal is enabled or disabled based on the reported application capabilities.
Added sharedir option in premake files.
2025-12-19 12:56:16 -03:00
Martín Lucas Golini e357785767 Disable mouse up event in UITab, does not seem to make much sense.
Fix unbinded buttons in side panel when ecode is started with `-t` CLI parameter (SpartanJ/ecode#755).
2025-12-17 00:19:12 -03:00
Martín Lucas Golini 1cd943ae26 Side Panel right click context menu improvements (SpartanJ/ecode#712).
Side Panel: Right click on a sub-directory and "Find in folder..." (SpartanJ/ecode#720).
File Save now defaults to the most recent save location (SpartanJ/ecode#734).
Side Panel: right click on a directory and open it on new window (SpartanJ/ecode#736).
Build and Run: fix run in terminal on Windows 8.1 (SpartanJ/ecode#740).
2025-12-07 00:24:04 -03:00
Martín Lucas Golini 51fcf80fe0 Fix minor bug when changing terminal font and creating a new terminal was still using the old font. 2025-11-17 19:40:01 -03:00
Martín Lucas Golini 2d700f9e36 Use Resources path when building ecode.app. Should fix signing. 2025-10-08 22:21:59 -03:00
Martín Lucas Golini 4edb776d51 Added a new option to set files associations in projects.
Introduced a new configuration file for projects in the project file `.ecode/settings.json` file.
Initially it supports files associations the following way:
```json
{
	"files.associations": {
		"glob_pattern": "language_name",
		"functional": "cpp",
		"map": "cpp",
		"**/c++/**": "cpp"
	}
}
```

Format is exactly the same as in vscode, and also, if no `.ecode/settings.json` file exists but does `.vscode/settings.json` file exists, it will fallback to that one.
This is related to the discussion in issue SpartanJ/ecode#585.
2025-10-06 00:12:05 -03:00
Martín Lucas Golini 7dde5826c7 In widgets rename all the addEventListener calls to on.
Some minor fixes in cpp, css, xml and html syntax highlighters.
2025-10-03 21:12:08 -03:00