Commit Graph

1714 Commits

Author SHA1 Message Date
Martín Lucas Golini
cec73de2eb Fix a couple of bugs related with use-after-free. Try to make some of the text document and syntax highlighter functionality more thread-safe. 2025-08-10 01:25:10 -03:00
Martín Lucas Golini
a537214cc7 Allow to add a filtered file to the project file tree by adding it in .ecode/.prjallowed (SpartanJ/ecode#592).
Allow canceling the global search with escape.
2025-07-17 16:43:42 -03:00
Martín Lucas Golini
3e6ab795b4 Fix crash in linter. 2025-07-15 19:51:48 -03:00
Martín Lucas Golini
2df4e88836 Improvements when opening binary files from drag and drop and from the tree-view (SpartanJ/ecode#589).
Fixes a bug that prevented signature help to not be displayed.
2025-07-13 19:22:31 -03:00
Martín Lucas Golini
23f90967c7 Fix some TypeScript React issues I introduced with the syntaxes pre-definitions.
Improved tokenizer performance, reduced heap allocations to the very minimum possible (lua patterns now can be flagged as anchored).
2025-07-12 13:47:42 -03:00
Martín Lucas Golini
e7a381eb5b SyntaxTokenizer: Prevent stalling in zero-width look ahead matches. 2025-07-12 01:51:35 -03:00
Martín Lucas Golini
fa5aa4d006 Add Qbs syntax highlighting (SpartanJ/ecode#553).
Add the possibility from inherit patterns and repositories from other syntax definition.
2025-07-11 01:02:46 -03:00
Martín Lucas Golini
a4deb66c2a Added pkg-config syntax highlighting (SpartanJ/ecode#563).
Register `.h.in` and `.c.in` extensions (SpartanJ/ecode#567).
Slight refactor for Repositories, now it will hold a SyntaxRespository struct (to easily extend it in the future).
2025-07-08 20:30:43 -03:00
Martín Lucas Golini
340e3e65e2 Add some basic keybindings to the debugger. 2025-07-06 16:20:03 -03:00
Martín Lucas Golini
aa7ee8093a Fix tab key-press not changing widget when a not main modifier is being used (for example enabling the numeric keyboard). 2025-07-01 19:20:48 -03:00
Martín Lucas Golini
a79c16ec0a Added the possibility to configure the font hinting and font anti-aliasing.
MenuBar buttons are now slightly more separated.
When switching between dark and light ui prefers color scheme now pick a dark/light color scheme if the currently set is the default (SpartanJ/ecode#535).
Fix a bug in menu bar pop-up not hiding properly.
2025-06-30 02:23:51 -03:00
Martín Lucas Golini
3797aa877b Minor refactor in SyntaxTokenizer.
Open .xbm and .xpm files as C (SpartanJ/ecode#532).
2025-06-28 20:55:09 -03:00
Martín Lucas Golini
7b5c1a2437 Registered a few requested file extensions SpartanJ/ecode#528, SpartanJ/ecode#529, SpartanJ/ecode#530).
Added MS Build Solution (sln extension, SpartanJ/ecode#527) and RC Script (rc extension, SpartanJ/ecode#521) syntax highlight support.
Minor changes in syntax definitions (now supports more than 255 repositories).
2025-06-28 12:53:08 -03:00
Martín Lucas Golini
df0a58c34e Some debugger improvements for node dap.
Fixed a bug in TextDocument that created new history in the undo/redo stack when not doing any operation when trying to cut.
2025-06-26 20:19:17 -03:00
Martín Lucas Golini
3170fd79ff Fix Node::removeActionsByTag and Node::getActionsByTag using the wrong tag type (and in consequence not removing anything whe requested, generating crashes on some cases). Improved LSP restart stability, although I still can crash it on some rare cases, haven't found the problem yet. 2025-06-22 20:47:20 -03:00
Martín Lucas Golini
6bdb75666d Fix warning in Variant produced by the use of memset. 2025-06-10 11:08:11 -03:00
Martín Lucas Golini
3871219c71 Nit: fix warning in Variant. 2025-06-10 00:41:23 -03:00
Martín Lucas Golini
4c67307308 Fix Variant class not implementing copy and move semantics, which fixes a crash in ecode when using the new Tab Switcher (#127). 2025-06-10 00:12:30 -03:00
Martín Lucas Golini
fa84a0253b Clean up some unused Font functionality. 2025-06-08 01:22:54 -03:00
Martín Lucas Golini
d375537b3f Fixes in SyntaxDefinitionManager.
Make UIProperty C++17 friendly.
Rename "arch" command line parameter for premake5 to "deps-arch" because it clashes with a new "arch" default parameter.
Fix for empty matches in SyntaxTokenizer.
Some very minor changes in language definitions.
2025-06-05 23:45:00 -03:00
Martín Lucas Golini
cec4fa6e72 Add webp image format support (load and save).
Fix bug introduced in the last commit for UIDataBind initialization.
Change gmake2 in favor of gmake when using premake5 since it has been depreated in premake5-beta6 (hopefully I did not miss anything).
2025-06-04 21:02:38 -03:00
Martín Lucas Golini
61e2df83db Added UIProperty to easily bind values with UI elements (very basic initial implementation). 2025-06-04 00:24:21 -03:00
Martín Lucas Golini
c156b53e4b Rename "keyword2" to "type" and "keyword3" to "parameter".
Added some String overloaded functions.
2025-06-01 20:07:23 -03:00
Martín Lucas Golini
9a8ece04d6 Adjust scissor test to current FBO coordinates. Fixes some clipping bugs when using FBOs withing UI components. 2025-06-01 01:35:05 -03:00
Martín Lucas Golini
eacb3a0f5b Syntax Definitions are going to be loaded on-demand instead of during start-up (this allows to add as many as wanted without worrying about memory usage or load times).
Added Racket syntax highlighting and LSP support (SpartanJ/ecode#459).
2025-05-28 23:54:34 -03:00
Martín Lucas Golini
9e0b3bc301 More RegEx fixes. 2025-05-28 17:56:09 -03:00
Martín Lucas Golini
0df86b1d53 RegEx fixes. TextMate grammars fixes. 2025-05-28 03:08:17 -03:00
Martín Lucas Golini
e072649221 Fixes for the UITabWidget tab switcher.
Remove "Flash Cursor" (it was too broken and it's not useful after alll).
2025-05-27 01:13:44 -03:00
Martín Lucas Golini
dcea675e5b Fix input methods that depend on OpenKey, Unikey and similar software.
Fix flashing cursor on Windows! How this was not reported?!
Fix crash when closing ecode on Windows and tabs with same name where present.
2025-05-24 20:48:42 -03:00
Martín Lucas Golini
70aecddd18 Added support for Tab jump modes (SpartanJ/ecode#469). Including a Tab Switcher (I have no better name for the moment).
Added support to hide the Tab Bar (SpartanJ/ecode#477).
Updated efsw.
Updated JS, TS, C++ grammars.
2025-05-24 01:10:50 -03:00
Martín Lucas Golini
b6ead5f2fd Added "Build & Run" and "Build & Debug" buttons. 2025-05-21 00:33:25 -03:00
Martín Lucas Golini
9b4e9f8613 TextMate parsing fixes and improvements. 2025-05-20 00:43:56 -03:00
Martín Lucas Golini
0fbebf6dfa TextMate support WIP. 2025-05-18 01:46:04 -03:00
Martín Lucas Golini
3ce1a16f0a Merge branch 'develop' into text-mate 2025-05-14 14:11:39 -03:00
Martín Lucas Golini
9f58ad38fc Experimenting with oniguruma fallback and text-mate improvements. 2025-05-14 00:48:01 -03:00
Martín Lucas Golini
77db743867 Fixes in syntax definition. 2025-05-14 00:47:11 -03:00
Martín Lucas Golini
058b9cab4d Fix for SpartanJ/ecode#461. Used CreateProcess is the Unicode version ("CreateProcessW"), and binary paths are now resolved as absolute paths in Windows. 2025-05-11 19:45:42 -03:00
Martín Lucas Golini
af381e400a More work to support TextMate grammars. 2025-05-10 21:34:02 -03:00
Martín Lucas Golini
51430ae87b Minor nits, about to implement some changes to complete the pending changes for sub-patterns in ranged matching. 2025-05-09 22:20:20 -03:00
Martín Lucas Golini
821e7f50dd SyntaxTokenizer: improve the stack-based pattern matching to support include / repositories.
Added some *very basic* support for some *very basic* TextMate grammars, `$language.tmLanguage.json` files are now parsed and supported internally. Full support is not currently possible, and might never be. This is to facilitate converting grammars to ecode format.
Updated python linter and formatter to the latest ruff version.
2025-05-07 21:17:07 -03:00
Martín Lucas Golini
6a39a7b458 SyntaxTokenizer and SyntaxDefinition repository support WIP. 2025-05-06 19:26:50 -03:00
Martín Lucas Golini
c19de0cb60 Refactor syntax tokenizer to simplify future improvements for it. 2025-05-04 20:00:19 -03:00
Martín Lucas Golini
c394cc4847 Improve regex captures result processing in tokenizer.
Improved Vala syntax highlighting.
2025-05-04 02:28:07 -03:00
Martín Lucas Golini
ebc35b4224 Some extra improvements for the syntax tokenizer. 2025-05-03 21:20:28 -03:00
Martín Lucas Golini
fe84f10794 Improve tokenizer for closing sub-syntaxes.
Allow adding alternative names to languages.
2025-05-02 23:57:08 -03:00
Martín Lucas Golini
3b3d1de420 In SyntaxDefinition add "end_type" support, to set the types of a closing pattern for multi-line block rules. 2025-05-01 00:32:11 -03:00
Martín Lucas Golini
2680499268 Prevent updating IME location if file is loading (SpartanJ/eepp#111). 2025-04-29 17:04:09 -03:00
Martín Lucas Golini
799d9f9371 Do not use malloc_trim if it's not available. 2025-04-22 12:08:47 -03:00
Martín Lucas Golini
5f9d2bd5ea Fix a bug when changing themes (some properties where not updated due to cached properties).
Fix a bug when displaying sub-menus, it was sometimes incorrectly positioned.
2025-04-20 12:41:36 -03:00
Martín Lucas Golini
3c4b2698c3 Add new OpenAI and Google models.
Pump eepp and ecode versions.
Try to fix a minor bug in Plugin Manager window.
2025-04-19 00:15:47 -03:00