Skip to content

Releases: SpartanJ/ecode

ecode 0.6.3

03 Nov 16:27
Compare
Choose a tag to compare

This release is a hot-fix for a crash that can happen very easily while switching folders or any multi-threaded event.

Please read 0.6.2 release logs for more information about what's new.

ecode 0.6.2

30 Oct 04:28
Compare
Choose a tag to compare

Another small release with some nice improvements and many important fixes.

  • When files are opened from a file explorer or from the command line and there is currently a running ecode instance files will be loaded in the last ecode instance instead of launching a new ecode instance. Option to toggle this is at Settings -> Window -> Open Files in New Window, which is disabled by default (issue #58).
  • Added Regular Expressions support in all searches (document and global) (issue #147).
  • Added Regular Expressions support in syntax highlighter (issue #225).
  • Display subfolder hint/info when two or more files have the same file name but different paths.

subfolder-hint

  • ecode now offers nightly builds available from here.
  • ecode releases can now be triggered from Github Actions, simplifying the work required for new releases (this will probably translate in more frequent releases).
  • Improvements in syntax highlighting for CMake files and Makefiles.
  • Improved theming support, now changing themes during the same instance should work correctly (before this some colors glitched and were not applied properly, a restart was needed).
2024-10-30.00-43-06.mp4
  • Added a glob match for path and extension search in the "Locate" bar (write "g your_glob_match") (issue #336).
  • Added keybindings to the Auto Complete plugin. Now user can customize how auto-complete is triggered and consumed (issue #336).
  • Improvements in command palette fuzzy search.
  • Added a new document command to select a whole line ("select-single-line"), this differs from the normal "select-line" command that will select only the contents in the line without the last new line character (issue #340).
  • Added support for Windows Shortcuts (.lnk files).
  • Added Windows arm64 builds.
  • Updated German translation (thanks to @NullPlane).
  • Fixed a critical crash ocurred when the application was run on low-memory scenarios due to an invalid memory access, it was critical when ecode was run from Haiku (issue #292).
  • Fixed a critical crash when files were closed during its loading (issue #330).
  • Fixed cursor selection not selecting while hovering over minimap (issue #333).
  • Fixed general performance issues in Haiku (this was causing huge load times).
  • Fixed Recent Files and Recent Folders buttons in Welcome Screen not being reactive (issue #339).
  • Fixed a crash in build settings when adding or removing build steps and then writting into another step settings.
  • Several performance optimizations for big files, large lines and also for rendering.
  • And many more minor changes.

ecode 0.6.1

12 Sep 01:09
Compare
Choose a tag to compare

ecode 0.6.1

This is a small release with several bug fixes and minor improvements plus a few new features.

  • Added support for editor breadcrumb plus a search symbol window that displays the symbol-tree of the document (trigger with ctrl+alt+l if using LSP, this feature is an LSP plugin feature).
breadcrumb.mp4
  • Added support for custom tab visualization, now the user can customize the aligment and character used (issue #37).
indenttabcharacter.mp4
  • Added AWK syntax highlighting.
  • Added support for FreeBSD builds.
  • Allow to drag folder into the editor and it will load the folder (issue #314).
  • Allow opening multiple files from "Open File" (issue #252).
  • Don't open welcome tab when documents are already opened in a new session (issue #325).
  • Highlight fix for comments in a few languages (issue #326).
  • Added "create-new-welcome-tab" command to open the "Welcome" page anytime (issue #323).
  • Greatly improved performance drawing whitespaces when using line-wrap on large lines.
  • Flag the document as modified until saved when changing it's line ending (issue #315).
  • Fixes in Build Settings, there were some crashes related to UI element bindings.
  • Fixes an error initializing typescript-language-server on windows (issue #310).
  • Fixes a "New Folder" bug in Open File / Folder dialogs that ended up in a crash (issue #306).
  • Fixed custom color-schemes not loading properly (issue #301, fixes Ini file load bug).
  • Fixed double click selection on locked documents.
  • Fix crash when reloading plugins and triggering subscribed events.
  • Fixed multiline commit text not being visible after the first line.
  • Keep folded regions on folding ranges refresh even if the folded region disappears from the new folded regions. This will prevent ecode from crashing.
  • Display signature help if avialable and not symbol info is available when pressing lsp-symbol-info (F1).
  • Improved auto-close brackets behavior on selection (when you select a range an insert an open-close bracket).
  • File locator now displays the relative path to the open folder instead of the full path of a file.
  • Improve universal locator options when no folder is open (fixes #303).
  • Highlight LANGUAGE in CMake files (issues #293)
  • Several minor bugfixes don't worth mention in detail but that will help with ecode's stability.
  • Performance improvements when editing big files.

ecode 0.6.0

20 Jul 05:21
Compare
Choose a tag to compare

ecode 0.6.0

This release adds some of the pending fundamental features for a code-editor.

General

Features

Added soft-wrap / line-wrap support (#12)

soft-wrap.mp4

Added code-folding support (#231)

code-folding.mp4

Added support for session snapshots & periodic backup (editor will allow closing modified documents and restore its last state) (#220)

session-snapshots.mp4

Improved distinction between modified and unmodified documents (#69 and #287)
Added Shift-JIS encoding support (#276)
Added bend language syntax-highlighting support

Fixes / Minor improvements

Fix Vue codes in <script> doesn't have syntax highlight (#275)
Fix don't run program if compilation failed when using project-build-and-run command (#278)
Allow to disable the Welcome Tab/Screen (and opening ecode with a blank document) (#279)

welcome-screen-settings.mp4

Added Java Formatter-Support (#283)
Improvements in keywords for LSP Client ($FILEPATH and others) (#284)
Wrap text in linter tooltip (#289)
Fix pasting single-line text with multi-cursor
Fix haskell lsp command call
Fix a couple of rare crashes with observed file system changes
Plus many small improvements

Notice

This new release could be a little bit more unstable than usual given that the new features represent a big change over the editor and text document components, adding document virtual views. I've using it for a couple of months, I'm confident with the soft-wrap implementation but not so much with code-folding given that I don't particularly use the feature very often. Please, as usual, report any issue. Also please note that code-folding is enabled in most languages but not all of them (tag based languages as XML/HTML are still pending unless you configure an LSP with fold support). Code-folding is provided from two different providers: ecode own implementation for languages with folding based in braces and indentation and also via LSP folding provider. If LSP fold provider is present ecode will prioritise it (it's expected to be better and faster). Tag based folding has not been implemented due to the processing cost it has (will need more dedication for an optimised implementation).

ecode 0.5.2

01 May 21:22
Compare
Choose a tag to compare

ecode 0.5.2

This release adds some minor new features plus many bug fixes and minor improvements. It closes 40 issues!

General

Features

Added menu bar support (#128).

2024-05-01_18-02-51.mp4

Added a Run step to the Build Settings (#222). Applications can now be opened from ecode.

2024-05-01_18-04-05.mp4

Added the possibility to add path filters to the global search with glob patterns (#150). You can filter by file extensions by simply *.ext or ignore some extension with -*.ext, and filter or exclude complete folder paths for example like: src/**/include and -src/**/exclude.
Added the possibility to search and replace by replacing captures from Lua Pattern, for example, searching for: function (%w+)%(%) and replacing for fn $1() will replace the function declaration from function (functionName)() to fn (functionName)(). This feature is supported on all searchs (local and global).
Added vala-language-server support (#138), and in consequence formatter (#139) and linter support (#140).
Added clojure-lsp support for Clojure.
Added emmet-language-server support and in consequence emmet support for editing HTML, XML, CSS, SASS and SCSS files.
Added syntax-highlighting for Carbon, Fortran, SmallBasic, Vala (#137), Buzz, Clojure, Groovy, Brython (#172), Adept, Fantom and Xtend.
Added German and Chinese translations. First revision, still incomplete but very much functional, thanks to all the collaborators! :)
Added native linter support for XML.
Added case insensitive languages support.
Implemented global search and replace with dirty open documents support (#149).
Implement terminal fallback for legacy Windows users (#153).

Fixes / Minor Improvements

Some UI visual improvements.
Many fixe to the Git plugin.
Fix crash when picking a color, pressing escape closing the picker and picking some color right after.
Several changes to improve editor input latency.
LSP tooltip now wraps its contents.
Editor now tries to display an error when when the
Added menu bar support (solves #128). LSP Server fails to initialize.
Make auto-reload on disk change configurable (#197).
Fixes: meson_options.txt is treated as plain text (#165).
Save File As improvements (#171).
Set default folder for the Save file dialog (#183).
Syntax highlighting for PKGBUILD (#186)
Makefile detection improvement (#185)
Open File improvement (#184)
Improved LSP client close/exit.
Fixes broken IME support regression (#189).
Fixed JSON Linter.
Fixes not reloading loaded document from an file system modified event after the first reload (#196).
Fix bug in LSP Plugin when opening a same document in a split and then closing the original document, keybinds were lost after that.
Fix bug in ProjectDirectoryTree when a file is renamed with a name that it's part of the gitignore, now it will properly not remove the file from the files list.
Fix project search error incorrectly counting the result line number when searching with the wholeword flag.
Improve triple click on code editor.
Improved project search UI.
Implemented Closing Symbol Override (#121), improved the auto-close bracket to be balanced.
Fixes in automatic language selection.
Fix invalid memory access in accepted patterns fro the ProjectDirectoryTree.
Improved performance in document longest line detection.
Fix TypeScript React and JavasSript React files in LSP, they were recognized as TypeScript and JavaScript files so it was incorrectly parsed.
Fix crash when deleting an item in build settings.
Several improvements on the default menu to make it fit on small screens (#242).
Fixed single finger tap clicks not working on touchpads (#219).
Fix: When using letter keys to navigate file selector only the filenames with the capital of said letter can be selected (#241).
Fix for Global Settings not being saved if no editor is open (#248).
Single click navigation in file dialogs (#256).
And many more minor improvements.
Added predefined variables for build: ${current_doc}: The last or current focused document path. ${current_doc_name}: The last or current focused document name (without extension).
Added horizontal scrolling with shift + mouse wheel (#181).
Fix: Newly created file is not included in Recent Files (#260).
Fixed a crash provoked by the Linter and an improper management of the file-system reported file changes (#270).

Windows

Fixes an editor freeze when interacting with broken or closed LSPs (#129 and #227).
Fixes Windows Clipboard History not working (#123).

macOS

Fix spawned processes and terminal using wrong architecture in arm64 build.

ecode 0.5.1

20 Feb 23:13
Compare
Choose a tag to compare

ecode 0.5.1

This release has a new big feature: Git integration plus many improvements and fixes.

General

Added Git Plugin. This is an initial integration with Git, currently providing several useful utilities:

  • Git status displayed in the status-bar, displaying current branch and number of changed lines (added/modified and removed).
  • Project tree-view will highlight currently added and modified files.
  • Git blame can be run on any line and will display a blame information tooltip.
  • When opening a folder with a Git repo a new tab will be displayed at the side panel. This tab contains two main functionalities: Branches and Status.
    * Branches: In branches you'll be able to administrate your branches doing the basic and not so basic stuffs: pull, push, fetch, commit, locally renaming branches, merging branches and creating branches, fast-forward merge branches and more. Also managing stashes and tags. Sub-repositories branches are also manegable from here.
    * Status: Status will display the current status of the locally modified files. It will allow you to: stage, unstage, discard, view diffs and more plus managing the local branch with commit, fetch, pull push. Sub-repositories can also be managed from here.
git-plugin-demo.mp4

git-blame

Added file encoding detection and selection. Currently supporting UTF-8, UTF16-LE, UTF16-BE and ISO-8859-1 (Latin1) (issue #126).

Add portable mode (issue #113). Portable mode can be invoked by command line argument with --portable or -p or by creating a file besides the ecode binary called portable_mode.txt.

Added pony, GraphQL, MoonScript and blueprint lang support.

Several general visual improvements. Tabs visibility, scrollbars auto-hide, status-bar information.
new look

Semantic highlighting is enabled by default from now on.

Added context menu for tabs.

Tab widget now always keeps visible the currently focused tab.

Fixed an issue when reloading documents (with file system change) that disabled the linter by mistake.

Several improvements in syntax-highlighting for various languages.

Tabs now overflow text. For large named files it will display an ellipsis (...) and limit the maximum width of the tab.

Added catppuccin macchiato color scheme.

File type can be set from the universal locator (status bar Locate (Alt+1)) by using ft command (issue #127).

Added command to select all words from current cursor to create multiple cursors with the default shortcut ctrl/cmd+shift+d.

Fixes in XML Tools plugin.

Added HTML formatting support with prettier.

Completed implementation for multi-language suppport (Settings -> Window -> UI Language). Currently languages are in development.

And many more bug fixes, general improvements and performance improvements.

Improved/reduced general memory usage.

Fixed an important memory leak that could be problematic for extended app usage.

Windows Fixes

Fixed critical issue ecode deleting contents of files on Windows when filenames contains non-ascii names (issue #114).

Alt-tabbing on windows causes selected text to be deleted (issue #115).

Fixed ctrl+alt combination for text input on Windows (issue #119).

macOS Fixes

Status bar color is now the app background color.

Removed titlebar separator.

Added scroll-momentum support.

Fixed opening links did not open the browser.

ecode 0.5.0

06 Nov 23:16
Compare
Choose a tag to compare

ecode 0.5.0

This is a stabilisation release and contains mostly bug fixes, but it also adds some cool new features.

General

Added Jai, Verilog, Hare and Lobster syntax highlighting.

Improved Nelua and Odin syntax highlighting.

Added IME support (very important for Chinese, Japanese, Korean and many other languages).
ime

Added font-family support. Now default fonts will use real bold and italic versions of the font, editor now supports mixing different font stylings properly (see before-styling and after-styling in "Spartan" color-scheme).

Several fixes and improvements for the build and build output system.

Greatly improved editor rendering performance (+80% performance improvement on average).

Slightly reduced memory usage of ecode.

Many fixes in all plugins.

LSP Client performance improvements.

Replaced default V LSP in favor of the new oficial LSP: v-analyzer.

Added GLSL LSP support.

Ini configuration files now load around 10x faster (used for color schemes and config files).

Improved startup time.

Fixed a critical bug that crashed the application when a same document was being opened from two different editors and the first editor opened was closed and some document command was run after that.

Critical error fix when loading files of more than 1MB, sometimes they were loaded with some incorrect data.

Fixed an issue that provoked plugins to lose its configuration.

Allow selecting the default language for an extension when the extension could represent more than one language.

Terminal history/scrollback is now configurable.

Syntax Color Scheme now can support outline styling using: outline(thickness, color).

Minimap first-pass is now asynchronous and should not lock the UI.

Many improvements in tokenization performance.

Fixes for files not reloading when changed from disk.

Optimised document search (now is always asynchronous).

Added a new option un main menu to create a new instance of ecode (New Window).

The editor will display a file locked icon if the file is set as read-only (can be triggered with ctrl/cmd+shift+l).

And many more fixes!

Windows fixes

Fixed a critical issue that would not allow the user to save the file with a false positive error of no write permissions (issue #103).

Temporal files used by linter and formatter are now hidden by default and will not flash on the project tree view.

Linux fixes

Improved flatpak support.

macOS fixes

Improved default macOS shortcuts.

Improved "Open with ecode”.

ecode now checks the PATH defined in the shell and append all pending PATHs to the current environment. This should improve binary finding (solves issue #63).

Note: ecode-macos-0.5.0-arm64.dmg has been re-uploaded on November 15 because it was incorrectly packaged.

ecode 0.4.9

12 Jul 03:31
Compare
Choose a tag to compare
  • Improved semantic syntax highlighting (also some improvements for the base syntax highlighter). Now is enabled by default for new installations given that it's more stable. The experience will vary depending on the LSP support. Some good LSPs will give the user an experience similar to or equal to a tree-sitter, given that many LSPs use a tree-sitter to implement semantic highlighting.
    improved-semantic-highlighting

  • Added support for customizable project builds / configurable build pipelines. This enables the possibility of building your project directly from ecode, reading the output in the Build Output (Alt+4), and having the list of warnings and errors listed within ecode, allowing the user to navigate easily to those errors in the Build -> Issues panel.

build-settings.mp4
  • Implemented an optional (and enabled by default) Status Bar for quick access to central functionality (each element can be accessed with the Alt + Number combination (Alt+1 -> Locate, Alt+2 -> Search, Alt+3 -> Terminal, Alt+4 -> Build)
status-bar.mp4
  • Added a quick access terminal separated from the main editors' splitter (default key bind is Alt+4).

  • Improved syntax highlighting in many languages (much better TypeScript, TSX, and JSX support).

  • Implemented navigation history. Now you can navigate your cursor history easily with Alt+Left (history back) and Alt+Right (history forward).

editor-navigation-history.mp4
  • Linter now allows navigating between errors and warnings with keyboard shortcuts (default keybinding: Ctrl/Cmd + Shift + N).
linter-error-navigation.mp4
  • Implemented a GUI for Languages Health.
    languages-health-gui

  • Improved auto-completion suggestions.

  • Added a new plugin "XML Tools". Currently provides two features: highlight matching XML elements and auto edit XML element tags. The plugin will be disabled by default since it's considered "experimental" for its first release.

xml-highlighting.mp4
  • Added "Folder/Project Settings" menu.

  • Added LSP text range formatting support.

  • Allow sharing processes between language LSPs that use the same process (for example clangd for C and C++). If you run hybrid language projects that share the same LSP, it will spawn a single LSP.

  • Improved LSP code actions. New and more precise code actions should be available for errors and warnings.

  • Improved LSP shutdown.

  • Allow disabling semantic syntax highlighting for specific languages in the LSP client configuration.

  • Added support for optional column positioning with : separator in Universal Locator (l line:col). Thanks TerminalFi!

  • Added automatic memory trimming on Linux (ecode will report less memory usage).

  • Improved editor right-click context menu. Added "Copy Error Message", "Refresh Semantic Highlighting", "Copy File And Position", and others.

  • Added an option to treat ".h" files as C++ (as per folder/project configuration).

  • Added more commands to the command palette.

  • Fixed inability to comment a single line with ctrl/cmd + /.

  • Fixed: ecode does not properly warn the user of the lack of GPU acceleration.

  • Fixed keybindings not loading the user-configured keybindings in some components.

  • Fixed find text document references not showing all the results (only opened files).

  • Fixed editor not registering commands when another editor with the same document has been closed.

  • And many bug fixes and performance improvements.

  • For this release, a lot of work has been put into eepp GUI, which will allow extending the GUI capabilities of ecode.

ecode 0.4.8

31 Mar 17:02
Compare
Choose a tag to compare
  • Added Welcome screen
    welcome-screen

  • Added new official icon and logo
    ecode-icon

  • Added LSP semantic highlighting support (disabled by default since it's an experimental feature)
    Off:
    semantic-highlighting-off
    On:
    semantic-highlighting-on

  • Added LSP quick-fix support
    quick-fix

  • Added LSP "Rename Symbol Under Cursor" support (textDocument/rename)
    https://user-images.githubusercontent.com/650416/229183559-13bed968-0eb8-4c59-81ff-55e23797c1d4.mp4

  • Added an option to show relative lines position (Tools -> Show Lines Relative Position)
    lines-relative-position

  • Added "Show Image Preview" context menu option when editing an SVG file.
    https://user-images.githubusercontent.com/650416/229183621-5628d382-1a22-4d3b-951e-eccbb6d588b5.mp4

  • Added support for TCP LSP servers (it's now possible to connect to an LSP running via TCP instead of stdio, useful for remote LSP servers, more info here)

  • Make consistent the find/search highlighting with the actual results (issue #73)
    https://user-images.githubusercontent.com/650416/229183743-f2df511e-f7c4-4158-bf72-947d5ae593b4.mp4

  • Plugins are now auto-reloaded after any configuration change happened over its configuration file

  • Fixed trim trailing white spaces on save

  • Added syntax highlighting for x86 assembly (issue #75), PICO8, PSQL, Pascal, Visual Basic and Objeck

  • Added LSP support for Haskell, elixir, Objective-C, ELM, Crystal, V, Scala, Swift, CMake and R

  • Added formatter support for Haskell, Objective-C and V

  • Added linter support for Haskell

  • Added "url" key to formatters and linters configuration. Improved the markdown report of feature health

  • LSP "command" can now be customized per platform (more info here)

  • Improved JSON syntax definition to CPP converter

  • Improved CLI options --health output

  • Improved terminal selection (now it's possible to scroll and select)

  • Improved Pop Up Menu positioning

  • Fixed gracefully handle document save failing (issue #85)

  • Fixed running the ecode in Windows 8.1 (and probably Windows 8 and 7). Terminal won't be available on those OS

  • Fixed a crash while unloading documents that were still loading

  • Fixed $NPROC in LSP client commands

  • Fixed a crash when loading big files and using the LSP

  • Fix in search + replace that crashed the editor in some very particular situations

  • Fixed a crash when closed a document and the document symbols where received after the document closed

  • Fixed signature help rendering when no suggestions are available

  • Several minor fixes in the LSP client

  • Editor now tries to detect binary files and won't display binary characters as unicode characters

  • Improved memory usage and rendering performance

  • Added CLI option --disable-file-logs to disable writing logs to a file

ecode 0.4.7

07 Mar 03:05
Compare
Choose a tag to compare
  • Added workspace symbol search
    workspace-symbol

  • Added current document symbol search
    document-symbol

  • File locate now shows the available options when opened (workspace symbols search, document symbols search, command palette search, and go to line)
    search-symbols

  • Added Julia, R, Elm, TOML, Haxe, fstab file, .htaccess file syntax highlighting support.

  • Added Solidity LSP support using solc

  • Added linter and formatter support for JSX files

  • Added the option to configure the default terminal shell at Terminal -> Configure Terminal Shell. Also powershell is now the default shell for Windows (#70)
    default-shell

  • Added a new configuration to control the behavior of new open terminals (#68)
    new-terminal-behavior

  • Added "convert-lang-path" CLI command, to convert a JSON syntax definition to CPP code (it's just a helper to help me to migrate languages definitions from other editors)

  • Added the option to create and add custom UI themes (more information here

custom-ui-themes.mp4
  • Don't open a folder when it's not requested when opening ecode (#66). Changed the default behavior
    defaultview

  • Improved "Document" and "Terminal" setting menus

  • Fixed an issue that caused to pass an incorrect root path to the LSP making unusable the LSP (issue #64)

  • Fixed when opening file+folder via CLI the specified file is not given focus (issue #59)

  • Fixed a minor issue when dropping SVG files into the editor, they weren't being opened in a new tab

  • Fixed an issue that prevented LSP processes to be terminated/killed correctly (#61)

  • Fixed matching brackets (it wasn't matching correctly if a comment or a string containing the matching bracket)

  • Reduced syntax highlighter memory footprint and improved also its performance

  • Several minor fixes and improvements