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.8.1·July 21, 2026

Release Notes

ecode 0.8.1 ecode 0.8.1 adds LSP snippet support, a built-in scientific calculator, a new system font picker, configurable tab placement, date and time insertion, new syntax definitions, and numerous improvements to stability, performance, file dialogs, AI assistance, localization, and editor behavior. Highlights LSP snippet support ecode now expands snippets received through LSP completion responses. The new snippet editing mode supports:

  • Tab stops and final cursor positions
  • Linked placeholders
  • Placeholder choices
  • Snippet variables and transformations
  • Visual placeholder feedback
  • Navigation using Tab and Shift+Tab
  • Multi-cursor snippet insertion This currently applies to snippets provided by language servers. Support for user-defined snippets is planned separately.

#111, #933 Built-in scientific calculator The Universal Bar can now evaluate mathematical expressions directly, without opening a terminal or leaving the editor. It supports common arithmetic operations, constants, and scientific functions such as trigonometric functions, logarithms, powers, and square roots. #701 New system font picker ecode now includes a full font picker dialog capable of discovering installed system fonts and selecting the font family, style, and size with a live preview. The new dialog is used by ecode’s font-selection settings and replaces the previous basic file-oriented font selection workflow. #903 Configurable new-tab placement A new New Tab Position setting controls where newly opened tabs are placed. Available positions include:

  • After the active tab
  • Before the active tab
  • At the beginning of the tab bar
  • At the end of the tab bar The selected behavior now applies consistently to all newly created tabs.

#904 Insert date and time New editor commands can insert the current date, time, or date and time into the active document. The commands are available from Edit → Insert Date and can also be assigned custom keybindings. #173 Editor improvements

  • Added optional documentation display to the LSP signature-help popup. Documentation is enabled by default. #911
  • Fixed a crash that could occur while displaying LSP signature help or autocomplete information. #902
  • Improved overriding of inherited LSP server configurations, including command_parameters, making it possible to customize language-specific configurations without modifying their parent template. #913
  • Fixed custom keybindings being overwritten or removed when ecode merged newly introduced default bindings into the user configuration. #914
  • Recently closed files now preserve their cursor and focus state when reopened during the same session. State is tracked independently for each editor view. #893
  • Fixed horizontal scrolling remaining available when line wrapping was configured to break at a specific column. #915
  • Improved the display of keyboard shortcuts in menus for commands that previously omitted them.
  • Fixed a use-after-free condition in the code-editor splitter.
  • Improved handling of mixed or unexpected line endings in files otherwise detected as CRLF. File dialogs
  • Pasting an absolute directory path into the file-name field of the folder chooser now navigates to and opens that directory when valid. #872
  • Improved file-picker behavior and integration throughout ecode.
  • Fixed row selection behavior when interacting with the file dialog’s text input.
  • Improved dropdown-list scrolling used by dialogs and other interface elements. AI Assistant
  • Fixed a crash that could occur while cancelling an AI Assistant request. #906
  • Improved AI Assistant request handling and error behavior.
  • Added further configuration capabilities for supported AI providers. Search and performance
  • Project-wide search now uses memory-mapped access for large files and reduces unnecessary allocations, improving search performance and memory usage on large projects.
  • Improved UI and stylesheet matching performance through optimized CSS selector indexing, cached hashes, faster attribute matching, and reduced layout overhead.
  • Improved application shutdown and asynchronous resource cleanup, reducing leaks, stale callbacks, and shutdown-time crashes.
  • Fixed several graphics, font, SVG, OpenGL-context, HTTP, TLS, and resource-lifetime issues. Syntax highlighting
  • Added syntax highlighting for Gemini protocol documents using the .gmi extension. #917
  • Registered Genie source files, temporarily using Python syntax highlighting until a dedicated definition is available. #924
  • Registered .vapi files as Vala source code. #925
  • Registered .meson files as Meson source files. #926
  • Added recognition for CMake .in files.
  • Improved Vala function-call detection.
  • Added and pre-registered several additional file extensions and syntax definitions. Localization
  • Fixed Chinese language resource loading by using the expected ISO 639-1 language identifier and renaming the translation resource accordingly. #908
  • Updated German, French, Chinese, and English translation resources.
  • Corrected several translated strings and removed outdated entries. Interface and usability
  • Removed trailing ellipses from menu actions that execute immediately rather than requesting additional user input. #892
  • Improved Breeze theme styling and consistency.
  • Improved font discovery and native font-weight/style resolution.
  • Improved scrolling visibility and layout behavior in several UI components.
  • ecode now respects SDL hints explicitly configured by the user instead of unconditionally replacing them with internal defaults. #921
  • Window raising behavior was improved on supported SDL versions. Stability fixes
  • Fixed crashes related to LSP signature help and completion handling. #902
  • Fixed AI Assistant request-cancellation crashes. #906
  • Fixed a code-editor splitter use-after-free.
  • Fixed unsafe asynchronous UI resource deliveries during application shutdown.
  • Fixed several HTTP request cancellation, callback re-entry, and shutdown issues.
  • Fixed socket initialization and failed TLS-handshake cleanup.
  • Fixed OpenGL context and SVG resource leaks.
  • Fixed stale image and layout resource caching.
  • Fixed several editor, layout, rendering, and resource-lifetime race conditions. Build and platform support
  • Added preliminary SDL 3 build support to Windows and MinGW build scripts through the --backend=sdl3 option.
  • Improved Windows ARM64 nightly builds.
  • Improved macOS and Windows build compatibility.
  • Updated bundled dependencies, including efsw and SOIL2.
  • GLEW is now disabled by default while the renderer transitions away from the dependency. Additional fixes
  • Improved HTML, Markdown preview, and rich-text layout behavior.
  • Fixed CSS variable resolution, specificity, font-weight selection, box-sizing, percentage sizing, floats, flex layouts, inline blocks, whitespace handling, and image sizing.
  • Fixed HTML documents containing a UTF-8 byte-order mark.
  • Improved UIWebView resource loading, local-path resolution, font handling, isolation, hit testing, and asynchronous cleanup.
  • Fixed incorrect external-resource loading attempts for non-URL paths.
  • Improved memory management and deterministic application shutdown.

Installer type: zip

x643F5B5C8F20A3BDE60F7DEB211CD39834144011AE242B422B296F9662DA0D9783
arm64B5E54F3B4E17FABDEB3C0C0299E981AB91963D188C897FE1DD3670834841F7B4

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

Older versions (2)

0.8.0
x64A9037835838ED2BFA01F2CE98B3E2D12A88CDBF3D3C21C206AC37861C30746AE
arm6439906837D3606B4B6D71DF55E4F30AE5086BAE1D5AA401357C0AEBE121820CA1
0.7.4
x6454C72DF79E095BAC24BF95BF2BE2D1C597199C0B3BF7EE88FAC1572F456216EB
arm64C0C0842B7553C679F0D09177121C5406FC87C3842378D56C70EC3E30A02EF795