Martín Lucas Golini
f5ce1589e3
Some snippets improvements to support insertTextFormat (SpartanJ/ecode/discussions#929).
...
Closes SpartanJ/ecode#933
2026-07-18 13:31:06 -03:00
Martín Lucas Golini
3312419fd6
Fix horizontal scroll when line wrap type set is Line Breakin Column ( SpartanJ/ecode#915 ).
...
A few improvements for related to LSP rules overriding (SpartanJ/ecode#913 ).
2026-06-13 18:40:33 -03:00
Martín Lucas Golini
96cee9d1c4
This should make premake5 configuration beta8 friendly.
...
Improvement for: SpartanJ/ecode#913 .
2026-06-12 14:43:35 -03:00
Martín Lucas Golini
b91b922ac8
This should fix the use after free rare issue: C++ destroys class members in reverse declaration order. mProcess was declared before mHandlers. So during destruction, mHandlers was freed first, then mProcess destructor ran and joined the async read threads but by then the threads were already accessing freed memory.
2026-06-11 20:47:27 -03:00
Martín Lucas Golini
10588e3eb4
Revert last commit, won't fix it properly.
2026-06-11 15:29:36 -03:00
Martín Lucas Golini
ff97358695
This should fix a possible but very implausible heap-use-after-free issue in the LSP client.
2026-06-11 02:16:24 -03:00
Martín Lucas Golini
9bc9b099ad
Implemented calc, min, max, clamp CSS functions.
2026-06-06 02:19:40 -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
81afcda1b1
Log the LSP command used to run the LSP.
2026-04-02 11:37:36 -03:00
Martín Lucas Golini
39176282bd
User "command_parameters" is not appended anymore, now it replaces ( closes SpartanJ/ecode#865 ).
...
Try to fix issues in Git::status update (SpartanJ/ecode#866 ).
2026-04-02 01:59:38 -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
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
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
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
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
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
7f340bad76
For the sake of being 100% safe while sending the didChangeConfiguration, always send at least an object and avoid sending a null (some servers are too strict with these things although I haven't found any case yet).
2025-12-18 13:30:29 -03:00
Martín Lucas Golini
825523bc47
Ups, revert back positionEncodings, that was not intentional.
2025-12-18 13:19:29 -03:00
Martín Lucas Golini
8a409d762a
LSP client: always send the didChangeConfiguration, it seems that some servers won't initialize properly otherwise (pyright).
2025-12-18 13:14:34 -03:00
Martín Lucas Golini
23265d2a9b
Fix for SpartanJ/ecode#742 . Implement workspace/configuration.
...
Also send "initialized" notification... as notification and not request, which might not be accepted by some LSPs.
2025-11-30 01:20:57 -03:00
Martín Lucas Golini
1d2369ecf9
Fix Process::kill() in Windows.
...
And a couple of minor fixes.
2025-11-27 11:45:11 -03:00
Martín Lucas Golini
2115546349
Refactor and performance improvements.
2025-11-03 00:06:58 -03:00
Martín Lucas Golini
4814569db1
Implemented workspace/didChangeConfiguration command in LSP client. Now it's possible to set LSP settings for this command ( SpartanJ/ecode#694 ).
2025-10-30 22:15:20 -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
Martín Lucas Golini
240961864d
A couple of optimizations in terminal display.
2025-09-14 13:22:56 -03:00
Martín Lucas Golini
1568a442b8
Try to be a little defensive during the LSP server shutdown.
2025-09-01 23:38:42 -03:00
Martín Lucas Golini
bdde898d52
MouseBindings in UICodeEditor WIP.
2025-08-25 00:41:54 -03:00
Martín Lucas Golini
54aaeb4931
Spell-checked the whole project.
2025-08-22 01:33:51 -03:00
Martín Lucas Golini
4b4a5f3491
More work on the Spell-Checker ( SpartanJ/ecode#515 ).
...
Spell-Checked a lot of code.
2025-08-21 01:43:42 -03:00
Martín Lucas Golini
66e793436c
Implemented a basic Spell Checker plugin using typos-cli. Still needs some improvements but it's working ( SpartanJ/ecode#515 ).
2025-08-20 20:45:36 -03:00
Martín Lucas Golini
f8dde719a6
Nit: improve LSP mouse hover merging with linter errors (commented in SpartanJ/ecode#620 ).
2025-08-17 23:08:46 -03:00
Martín Lucas Golini
dbb36cdcf4
Fix Objective-C highlighter.
...
Added Objective-C++ highlighter (SpartanJ/ecode#616 ).
Replaced "Treat .h file as C++" in favor of "Treat .h files as..." with multiple options, including auto-detection (SpartanJ/ecode#614 ).
Refresh semantic-highlighting after syntax highlighter change.
2025-08-17 16:56:12 -03:00
Martín Lucas Golini
6d8d991abc
Add ellipsis to the error lens if it does not fit in the line, also display code lens in the correct visible line index when the line is wrapped.
2025-08-15 23:57:05 -03:00
Martín Lucas Golini
929b38410b
Fix slowdown due to locking the main thread when sending text buffer changes to the LSP.
2025-08-14 00:17:16 -03:00
Martín Lucas Golini
0ec2a4dba9
Try fix invalid memory access in SyntaxDefinitions.
...
Added attach in Chat UI.
Some minor improvements in Http pool implementation.
2025-08-12 00:49:13 -03:00
Martín Lucas Golini
a1959fd149
Fix a memory leak in the debugger session where memory was never released after session due to cyclic references in ModelVariableNode.
...
Fix an incorrect std::move in `DebuggerClientDap::variables` which could have caused incorrect states.
Fix invalid memory access in `LSPDocumentClient::requestSemanticHighlighting`.
2025-08-10 17:34:32 -03:00
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
f4a58fd585
Do not trigger documentHover if server capabilities do not provide hover.
...
Fix in TypeScript pre-definition.
2025-07-14 01:00:03 -03:00
Martín Lucas Golini
ec4f122519
Register more makefiles extensions ( SpartanJ/ecode#578 ).
...
Some minor nits in LSP.
2025-07-10 22:55:25 -03:00
Martín Lucas Golini
4877a4341a
Added "Buffer Only Mode" to Global Search & Replace ( #545 ).
...
emscripten build is now multi-threaded only.
2025-07-05 20:57:21 -03:00
Martín Lucas Golini
e0b763f637
Node debugger fixes.
...
LSP mouse hover fix when there's also a linter error in the same position.
Fix in emscripten file parameter parsing.
2025-07-02 01:41:18 -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
0a5c4cff54
Revert some locks in LSPClientServerManager.
2025-06-27 21:30:23 -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
e4bf8215a6
Prevent crashes when restarting the LSP server.
2025-06-14 14:03:58 -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
132dd01ecd
More WIP for TextMate grammars support.
2025-05-19 20:54:03 -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