Commit Graph

248 Commits

Author SHA1 Message Date
Martín Lucas Golini
23b14ba2fe Fix unit-tests (ups).
Fix an issue when setting an invalid color to the terminal display.
Update efsw.
2026-05-09 19:52:06 -03:00
Martín Lucas Golini
336afe90d7 Fixed a rendering bug in the terminal emulator when updated line only updated spaces.
Added an optimization for scene loading.
Do not allow the spell checker renderer to try to render on too long lines.
2026-05-04 19:30:56 -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
20c826d2ae Some minor stuff. 2026-04-07 13:27:07 -03:00
Martín Lucas Golini
a5822268cb ACP Support Improvement for ecode (Terminal output, better error reporting). ACP plans.
Safety memory clean ups.
2026-03-23 02:48:04 -03:00
Martín Lucas Golini
89c11fbd74 Fix create pseudo-console spawn issues in Windows (SpartanJ/ecode#856). 2026-03-20 12:41:57 -03:00
Martín Lucas Golini
c201c8bb50 Fix text-selection in opencode. There was an incorrect handling of the terminal state. 2026-03-18 20:07:55 -03:00
Martín Lucas Golini
9409a82092 Added syntax highlighting for WebAssembly Text Format (SpartanJ/ecode#842) and WebAssembly Interface Types (SpartanJ/ecode#844).
Improvements in SyntaxTokenizer TextMate compatability.
Fixed debugging types definition scripts.
2026-03-16 01:11:23 -03:00
Martín Lucas Golini
afb055405e Do not change terminal scroll position on terminal resize. 2026-03-15 16:47:53 -03:00
Martín Lucas Golini
1d9dcb40f7 Implemented TerminalEmulator::xgetcolor. 2026-03-13 01:51:52 -03:00
Martín Lucas Golini
752ef139a2 Don't clear rectangular selection on size change. 2026-03-12 20:33:05 -03:00
Martín Lucas Golini
382a5d2476 Terminal selection reflow fixes. 2026-03-12 15:41:42 -03:00
Martín Lucas Golini
acb76936c1 Selection reflow. 2026-03-12 03:03:30 -03:00
Martín Lucas Golini
a8384f183b Terminal reflow improvements, add debounce for reflow when not in alt screen, clear prompt line and refresh the buffer for better readjustment of the prompt line. 2026-03-12 01:29:20 -03:00
Martín Lucas Golini
61fad1b4a3 Some nits. 2026-03-09 01:29:38 -03:00
Martín Lucas Golini
fe1149ffcf Terminal Reflow WIP 2026-03-09 00:25:15 -03:00
Martín Lucas Golini
cebde979c9 Fixes and sanity checks for issue SpartanJ/ecode#836. Added several tests that triggered the crashes. 2026-03-06 19:14:38 -03:00
Martín Lucas Golini
106af2f060 Minor refactor. 2026-02-15 00:07:08 -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
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
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
9fa7b2bb57 Correctly handle Private mode queries in the terminal emulator implementation.
Fix in terminal keybindings handling.
2026-01-07 13:23:22 -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
45e1a9bf54 Update in C, C++, C#, Obj-C, Obj-C++, PowerShell, SmallBasic keywords. 2026-01-02 12:21:13 -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
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
b11985f5e0 In OSes with no primary selection if there's a selection over the terminal use that when pasting with middle mouse click, otherwise use the clipboard. 2025-12-28 12:07:29 -03:00
Martín Lucas Golini
5fc5fcccb2 A couple of minor fixes to the terminal emulator. 2025-12-27 00:32:07 -03:00
Martín Lucas Golini
7004d7c282 Added an option to "Use status bar terminal" in the Run configuration. 2025-12-24 01:42:52 -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
f1157f3ac8 Minor nit fix in terminal text selection. 2025-12-20 11:17:14 -03:00
Martín Lucas Golini
e4354787aa Build fix for macOS and FreeBSD.
Update SOIL2.
Use Ubuntu 24.04 on the Linux build (untested).
2025-12-20 10:30:21 -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
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
622deb96df Do not trigger up/down when isn't in alt screen.
Fix copy from history scrollback.
2025-12-18 10:46:42 -03:00
Martín Lucas Golini
7e2479778b In terminal simulate arrow keys when mouse is not active. Plus fix small bug. 2025-12-18 01:54:12 -03:00
Martín Lucas Golini
1116575774 Adds ecode nightly build MSVC arm64 target. 2025-12-14 19:40:00 -03:00
Martín Lucas Golini
08a8c2b06e Added an option to reuse the previously launched terminal (SpartanJ/ecode#710). 2025-12-07 00:53:58 -03:00
Martín Lucas Golini
4e45131d7b Added a few keywords to C# syntax definition. 2025-11-26 23:29:14 -03:00
Martín Lucas Golini
a4002717be Added String::isLatin1 and String::getTextHints.
Added TextHint::NoKerning to skip kerning in Text and TextLayout.
Added Gemini 3 Pro Preview new Gemini model.
Some minor changes in TextEmulator, backported from st latest version.
2025-11-19 01:24:39 -03:00
Martín Lucas Golini
cc709e9d5d Fixed positioning with grapheme clustering in TextDocument. Added String::isGraphemeBoundary, String::isWordBoundary and String::isSentenceBoundary that help this.
Added unicodelib.h dependency.
In TerminalEmulator allow to select text outside the visible range.
2025-11-15 19:48:24 -03:00
Martín Lucas Golini
066425d63b Minor fixes in terminal. 2025-11-09 00:03:25 -03:00
Martín Lucas Golini
e23ae24ac3 Fix terminal not redrawing after child process finish.
Fix minor annoyance in build settings, not setting the current run setting.
2025-10-27 01:22:19 -03:00
Martín Lucas Golini
2d9e352818 Remove mScreenPosi from Node. 2025-10-18 23:41:07 -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