ecode

SpartanJ · SpartanJ.ecode

Lightweight multi-platform code editor designed for modern hardware with a focus on responsiveness and performance.

ecode is a lightweight multi-platform code editor designed for modern hardware with a focus on responsiveness and performance. It has been developed with the hardware-accelerated eepp GUI, which provides the core technology for the editor. The project comes as the first serious project using the eepp GUI, and it's currently being developed to improve the eepp GUI library as part of one of its main objectives.

winget install --id SpartanJ.ecode --exact --source winget

Latest 0.7.4

Release Notes

Changelog

Added

  • Added text shaping and text segmentation support.
  • Added duplicate-line-or-selection text document command.
  • Added an option to reuse the previously launched terminal (#710).
  • Added the option to link files in AI Assistant chat (instead of attaching directly).
  • Added terminal cursor styles selection at Settings -> Terminal -> Cursor Styles.
  • Added scrollbar type and mode options for the terminal.
  • Added an option to configure the Settings -> Window -> "Use editor font in input fields" (this is enabled by default but not always convenient).
  • Added an option to "Use status bar terminal" in the Run configuration.
  • Light/dark theme now follows the system default configuration (#754).
  • Terminal status bar now is a tab widget and can create any number of terminals.
  • Added an option to configure to open new terminals in status bar panel (Settings -> Terminal -> New Terminal Behavior.
  • Added option to force opening documents in main split (Settings -> Window -> Open Documents in Main Split).
  • Added syntax highlighting for Vim Language, FreeBASIC, QB64.
  • Added strip ANSI Codes option in build and run settings (for the build and run outputs).
  • Added an option to set to always open terminal in exclusve mode (#800).
  • Added reset-global-file-associations (Window -> Reset Global File Associations) and reset-project-file-associations (Window -> Reset Project File Associations) commands to reset language extension priorities for languages that can be represented by more than one language grammar.
  • 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 (#651).
  • Added an option to reset panel layout (#675).

Improved

  • AI Chat UI has been slightly improved / redesigned.
  • Improve editor "add-cursor-above" and "add-cursor-below" behavior.
  • Grammars in many languages: C, C++, C#, Objective-C, Objective-C++, Markdown, PowerShell, SmallBasic, and more.
  • Terminal emulator capabilities.
  • File Save now defaults to the most recent save location (#734).
  • Side Panel: right click on a directory and open it on new window (#736).
  • Side Panel right click context menu improvements (#712).
  • Side Panel: Right click on a sub-directory and "Find in folder..." (#720).
  • LM Studio models are now supported in AI Assistant plugin.
  • Show the ecode version on the Welcome Screen (#752).
  • Improved drop-down lists width in several locations.
  • Add auto-scroll when selecting and mouse cursor moves out of vertical view range in terminal.
  • Improve bitmap fonts support.
  • Enabled syntax highlighting in auto-complete list by default (for the newly created profiles).
  • Allow to expand/contract status bar panel.
  • Language extension priorities are now per-project (this is when you pick which language grammar use when more than one is available for an specific file extension).
  • Display a download progress window when download-file-web is used. Also support loading images and sounds from downloads.

Fixed

  • Many fixes for the LSP plugin implementation which brings better general support to LSPs, which also fixes #694, #742 and #766.
    • Implemented workspace/didChangeConfiguration command in LSP client. Now it's possible to set LSP settings for this command (#694).
    • Prevent dead-locks in LSP very heavy usage scenarios
  • Many fixes to the terminal emulator (closes issues #740 and #800).
    • In TerminalEmulator allow to select text outside the visible range.
    • Fix minor bug when changing terminal font and creating a new terminal was still using the old font.
    • 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.
  • Many fixes in the DAP implementation.
    • Fix environment not being inherited in debuggee.
  • Minor fixes in native file dialogs (#706)
  • Fix ca-bundle path on macOS (fixes ecode macOS app not working through TLS since I moved the assets path).
  • Fixes in process kill behavior in Windows.
  • Build and Run: fix run in terminal on Windows 8.1 (#740).
  • Fixed various crashes related to closing a LLM chat tab while executing an HTTP request.
  • Fix in Markdown folding ranges.
  • Fix rare crash in debugger when dealing with multi-session DAP.
  • Fix unbinded buttons in side panel when ecode is started with -t CLI parameter (#755).
  • Fix how selection in terminal is enabled or disabled based on the reported application capabilities.
  • Fix overlapping shortcuts and terminal shortcuts in terminal.
  • Take into account the line spacing to position the cursor.
  • Fix underline and strikethrough size when top and bottom positions are the same due to the small difference generated by the underline thickness (otherwise it was sometimes invisible).
  • Fix paste with middle-click in OSes with no primary selection.
  • Fix move event not being handled correctly within the FileSystemModel fileIsVisibleFn configuration (discussed at: SpartanJ/ecode/discussions#776).
  • Fix opening nonexistent files from CLI.
  • Correctly handle Private mode queries in the terminal emulator implementation.
  • Fix crash when drag & dropping images into ecode.
  • Fix Windows temp path resolution.

Installer type: zip

Architecture Scope Download SHA256
x64 Download 54C72DF79E095BAC24BF95BF2BE2D1C597199C0B3BF7EE88FAC1572F456216EB
arm64 Download C0C0842B7553C679F0D09177121C5406FC87C3842378D56C70EC3E30A02EF795

Details

Homepage
https://github.com/SpartanJ/ecode
License
MIT
Publisher
SpartanJ
Support
https://github.com/SpartanJ/ecode/issues
Copyright
Copyright (c) 2023 Martín Lucas Golini

Tags

codecode-editordeveloper-toolseditorgeanyguiidelapcelitelite-xllsp-clientterminaltexttext-editorvscodezed