Commit Graph

58 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
8a3b763b4a Fix bug introduced recently in semantic highlighting. 2025-04-08 15:24:43 -03:00
Martín Lucas Golini
2a88bac8a1 Performance improvements due to not debouncing some function calls.
Adjust JSX and TS syntax definitions.
2025-04-02 20:24:45 -03:00
Martín Lucas Golini
48772bc6d3 Minor fixes. 2024-12-27 01:03:49 -03:00
Martín Lucas Golini
a10f587545 Invalidate draw when editor updates its highlight.
Minor improvement on breadcrumb draw invalidation.
2024-08-29 11:41:07 -03:00
Martín Lucas Golini
a836f6335e FoldRangeProvider is now an interface.
Fix rare crash in linter plugin.
2024-07-11 20:04:47 -03:00
Martín Lucas Golini
1cbdf3ba0c Try fix a weird crash with fold service. 2024-07-08 21:16:29 -03:00
Martín Lucas Golini
1be7884c85 Better visual indicator of modified file.
Try fix a very rare crash when loading document while starting LSP and requesting folding information.
2024-06-30 20:33:12 -03:00
Martín Lucas Golini
c8288ed568 Ignore LSP folds that are less or equal to 2 lines. 2024-06-04 21:34:30 -03:00
Martín Lucas Golini
6832032470 Added configuration for code-folding. 2024-06-02 22:12:52 -03:00
Martín Lucas Golini
a4be2966fd More code folding improvements. Added generic methods to not depend on the LSP when it's not available. 2024-05-30 00:56:20 -03:00
Martín Lucas Golini
416663675b Visual improvements for folding. 2024-05-29 21:33:05 -03:00
Martín Lucas Golini
73958d442f Code Folding fixes. 2024-05-28 23:49:32 -03:00
Martín Lucas Golini
0bd4de1d27 More code folding work. 2024-05-28 00:42:06 -03:00
Martín Lucas Golini
396f1e2558 Code Folding WIP. 2024-05-27 00:57:18 -03:00
Martín Lucas Golini
2b0c59c658 Minor fix. 2024-05-21 20:14:11 -03:00
Martín Lucas Golini
c768277c71 Reset line wrap info on document reset. 2024-05-20 21:19:22 -03:00
Martín Lucas Golini
36c91989d3 Lambda captures clean up, plus other minor clean ups. 2024-02-17 18:19:55 -03:00
Martín Lucas Golini
7da6093507 Http now can consume ThreadPool for async requests.
Minor clean up.
2024-02-02 10:53:15 -03:00
Martín Lucas Golini
aaa70460d8 Remove use of va_list in favor of template fwd args.
Several bug fixes.
Git plugin more WIP.
2024-01-16 20:14:38 -03:00
Martín Lucas Golini
d378c39d5a Minor fixes. 2023-10-13 22:20:37 -03:00
Martín Lucas Golini
1bae4a4a9a Fix TextDocument load error with big source files. 2023-10-07 02:41:32 -03:00
Martín Lucas Golini
a29f0bcfa0 Improve Jai and Odin syntax highlighting.
Reduce memory usage of SyntaxTokens. Fix token signature calculation.
2023-09-30 17:07:18 -03:00
Martín Lucas Golini
4286976099 Represent token types as integers instead of strings to reduce memory footprint and improve performance. 2023-09-27 01:35:38 -03:00
Martín Lucas Golini
3231dabbee Minor fixes and improvements. 2023-09-05 19:51:36 -03:00
Martín Lucas Golini
ff7d8c3478 ecode: Improve LSP code action implementation, now typescript-language-server will be able to recommend adding imports. Fixed a bug introduced in the previous commit, scrollTo for Y axis now moves correctly. Started implementing LSP Code Lens but I'll keep it for the moment since it's support in LSP implementations is very limited. 2023-07-07 01:01:26 -03:00
Martín Lucas Golini
c6b308a118 ecode: Improve rust support. 2023-07-06 02:03:45 -03:00
Martín Lucas Golini
f58866dd66 eepp: Added ScopedOp and BoolScopedOp. General optimization of lambda captures. Added support in UICodeEditorSplitter for navigation history.
ecode: Implemented navigation history over the editor, with Alt + Left | Right you can navigate over the relevant code navigation history.
2023-06-25 21:14:36 -03:00
Martín Lucas Golini
de4875b255 eepp: Allow to unselect selection from UIAbstractView.
ecode: Updated icons ttf.
Completed implementation of Build Output, now it will list Issues found when compiling in the Issues section inside Build.
Tentative fix in LSPDocumentClient when parsing semantic highlight.
Improved Features Health GUI.
2023-06-11 17:23:18 -03:00
Martín Lucas Golini
ba4655553c eepp:
Added to UIWidget: setClass, setClasses, resetClass.
Added support for custom styling of cells in models using custom classes. With the new ModelRole::Class.
ecode:
Fixed LSPs with multiple languages.
Fixed Status Bar not hiding.
Added option to request refresh the document semantic highlighting.
2023-06-09 19:36:03 -03:00
Martín Lucas Golini
893943cc85 eepp: Improved String::unescape. Improved JavaScript+TypeScript regex tokenization. Minor fix for unescaped search in text highlights in UICodeEditor.
ecode: Avoid reloading plugins when a new instance of ecode is opened. Improved plugins logs.
2023-05-25 02:10:41 -03:00
Martín Lucas Golini
25c45ae1a4 ecode: Fix minor semantic highlighter parsing bug. 2023-04-20 16:16:49 -03:00
Martín Lucas Golini
da44cca16e eepp: mojoAL is now used by default.
ecode: Tentative fix for a segfaul when accesing an LSP Server that isn't running anymore.
2023-04-19 20:37:34 -03:00
Martín Lucas Golini
3a8bd77c95 Allow disabling semantic highlighting for a specific lang. 2023-04-14 21:29:38 -03:00
Martín Lucas Golini
0886aded95 Fixed syntax highlighting issues when inserting or removing multi-line comments.
Added support for ranged semantic highlighting, improving performance for LSPs that support ranges but not fullDelta changes.
2023-04-14 20:52:29 -03:00
Martín Lucas Golini
2d3661e1b9 Added keyword3 for color schemes. Some minor improvements in color schemes and syntax definitions. 2023-04-05 15:50:50 -03:00
Martín Lucas Golini
2eae0ab652 Improved semantic highlighting. 2023-04-03 01:47:24 -03:00
Martín Lucas Golini
ab04f9b06e eepp:
Added Window::showMessageBox.
ecode:
Closes SpartanJ/ecode#93 (ecode does not properly warn the user of the lack of GPU acceleration).
Minor refactor.
2023-04-02 19:37:31 -03:00
Martín Lucas Golini
e62b42267f SyntaxHighlighter and semantic highlighting optimizations and improvements. Now the highlighters detect new lines and remove lines operations and translate all the already processed highlighted lines to it's new position, this means that only the lines with new content are processed again for highlighting tokenization. 2023-04-02 14:34:58 -03:00
Martín Lucas Golini
d0099f2538 ecode: Minor fixes. 2023-03-30 01:51:17 -03:00
Martín Lucas Golini
98b9a972e6 ecode: LSP fixes. 2023-03-27 12:28:23 -03:00
Martín Lucas Golini
53e44cbac9 ecode: Added LSP semantic highlighting support. 2023-03-27 03:16:27 -03:00
Martín Lucas Golini
323c3ebc01 ecode: Implemented search document symbols in current document. Fixed a minor bug in log level configuration. 2023-03-01 23:04:15 -03:00