Releases: zed-industries/zed
v0.160.0-pre
Enhancements
The action is happening on Zed Stable, where we are launching SSH Remoting (Beta). 💻🌐🎉
Check out the stable release for more details!
General
- Added support to show invisible characters in the editor (#19846).
- Added support for self-hosted GitLab instances when generating Git permalinks (#19909).
- The instance URL must have
gitlab
somewhere in the host in order to be recognized.
- The instance URL must have
- Added feature to show commit summary as part of the inline Git blame (#19759; thanks pjtatlow).
- Improved the parsing of Git remote URLs to support additional scenarios (#19924).
AI
- Added "Suggest Edit" button to the assistant panel if
"enable_experimental_live_diffs": true
is set in the"assistant"
section ofsettings.json
(#19900). This button takes the place of the previous/workflow
command, but it is experimental and may change!
Languages
- Added support for Doxygen-style doc comments starting with
///
or//!
in C++ (#19858). - Improved syntax highlighting for type hints in Python (#18185; thanks ClanEver).
Bug Fixes
v0.159.5
Enhancements
Today we're excited to launch Zed SSH Remoting in Beta. 💻🌐🎉
For remote hosts, we support macOS remotes (both Intel x86_64 and ARM aarch64) and Linux on x86_64 or ARM: Ubuntu 20/22/24, Raspbian, Debian 11/12, Fedora 40/41/42, ArchLinux, Alpine, NixOS, SUSE/OpenSUSE as well as RedHat 8.x/9.x, and clones (Rocky Linux, CentOS Stream, AlmaLinux, Amazon Linux, Oracle Linux).
Blog Post: https://zed.dev/blog/remote-development
Docs: https://zed.dev/docs/remote-development
Note: The original version of remote development sent traffic via Zed's servers. As of Zed v0.157, you can no longer use that mode.
General
- Added file icons for Gleam (#19887; thanks okkdev), Zig, Julia, SCSS, HCL, Nix, and Roc files.
- Added the ability to fold all blocks of code at a target "level." macOS:
cmd-k, cmd-<number>
, Linux:ctrl-k, ctrl-<number>
(#19750). - Added indent guides to the project and outline panel (#18260, (#19719)).
- Added macOS Services menu (fixed global macOS shortcuts) (#16959).
- Added support for detecting images with non-lowercase file extensions (#19304).
- Added a user-visible error message when a manual save fails (#19311).
- Added toolchain selector to the status bar with initial support for Rust and Python (#19576).
- Added ability to cancel language server work in remote development (#19946).
- Improved [re]open for external worktree entries (#19612).
AI
- Improved Inline Assistant placeholder text. Including focus context panel and navigate history key bindings (#19447).
- Improved prompt for generating context editor summaries (#19530; thanks wolffiex).
- Moved Git hunk controls to the right of the header (#19515).
Languages
- Added keybindings for applying hunks in Proposed Changes:
cmd-shift-y
/ctrl-shift-y
(#19749). - Added autoclosing of Rust multiline strings (#19765).
- Added
.editorconfig
support (#19455). - Registered
.postcss
files as CSS (#19416).
Vim
- Added support for incrementing and decrementing numbers with leading zeros in Vim mode (#18362; thanks ThomAub).
Bug Fixes
- Fixed directory name comparison on Linux not considering the case (#19211; thanks wannacu).
- Fixed issue where auto-update would quietly fail if rsync was not available (#19392).
- Fixed code action for
Fix with assistant
appearing when assistant was disabled (#19553). - Fixed empty keystroke with simulated IME (#19414; thanks brunocalza).
- Fixed a bug where auto-indent didn't work correctly when pasting with multiple cursors on adjacent lines (#19521).
- Fixed incorrect checkbox placement in Markdown preview (#19383; thanks zfz7).
- Fixed Markdown preview rendering of empty list items (#19449; thanks mgsloan).
- Fixed inconsistent serialization of workspace paths order (#19232; thanks eth0net).
- Fixed error handling when no project paths could be opened (#19320).
- Fixed an issue where the branch switcher would show an error when opening a file outside of the project (#19888).
- Fixed outline panel panicking on filtering (#19811).
- Fixed horizontal scrollbar not being hidden (#19767).
- Fixed an issue where HTML tags within list items would break the Markdown preview (#19785).
- Fixed an issue where clicking on an image inside the project panel would not re-use an existing image tab (#19717).
- Fixed autoclosing quotes when the string is already open (#19765).
- Fixed project panel bug when renaming files where up/down keys could select other files (#19670; thanks zhang0098).
- Fixed slowness when collaborating (#19912).
- Fixed an issue where diagnostic underlines and certain text highlights were not rendered correctly below block decorations such as the inline assistant prompt (#19920).
- Fixed a rare crash that could happen when certain SQL statements were prepared (#19922).
- Fixed prettier not reporting failures in the status panel on formatting and installation errors (#19951).
- Vim: Fixed a bug where the
o
andO
commands did not respect theextend_comment_on_newline
setting (#19766).
Breaking Changes and Notices
- Changed
terminal.option_as_meta
default fromtrue
tofalse
for better out-of-the-box experience on non-US keyboards. Terminal Emacs users will want to set this totrue
(#19364).
v0.159.5-pre
v0.159.4-pre
Bug Fixes
- Fixed slowness when collaborating (#19912).
- Fixed an issue where diagnostic underlines and certain text highlights were not rendered correctly below block decorations such as the inline assistant prompt (#19920).
- SSH Remoting: Fixed closing the auth dialogue to not try to auth with the empty password (#19925).
- SSH Remoting: Fix diagnostics summary over collab (#19923).
- Fixed a rare crash that could happen when certain SQL statements are prepared (#19922).
- Fixed a bug where the Julia icon was not displayed for Julia files (#19916).
- (preview only) Fixed quote-autoclose in Rust (#19914)
v0.159.3-pre
v0.159.2-pre
Enhancements
- Added indent guides to the project panel (#18260).
- Added indent guides to the outline panel (#19719)
- vim: o/O now respect
extend_comment_on_newline
(#19766) - Added autoclosing of rust multiline strings (#19765).
- Added the ability to fold all blocks of code at a target "level." macOS:
cmd-k, cmd-<number>
, Linux:ctrl-k, ctrl-<number>
(#19750). - Added keybindings for applying hunks in Proposed Changes:
cmd-shift-y
/ctrl-shift-y
(#19749). - Improved Inline Assistant placeholder text. Including focus context panel and navigate history key bindings (#19447).
- Added toolchain selector to the status bar with initial support for Rust and Python (#19576).
Bug Fixes
- Fixed outline panel panicking on filtering (#19811)
- Fixed horizontal scrollbar not being hidden (#19767).
- Fixed an issue where HTML tags within list items would break the markdown preview (#19785)
- Fixed an issue where clicking on an image inside the project panel would not re-use an existing image tab (#19717).
- Fixed autoclosing quotes when the string is already open (#19765).
- Fixed project panel bug when renaming files where up/down keys could select other files (#19670; thanks zhang0098).
SSH Remoting:
- Fixed a bug where the branch switcher could not be used remotely (#19755).
- Changed the update logic of the SSH remote server to not fetch the latest version for a current channel, but to fetch the version matching the current Zed version. If Zed is updated, the server is updated too. If the server is newer than the Zed version an error will be displayed (#19740).
- Changed the update process of the remote server binary to not attempt an update if we can detect that the current binary is used by another process (#19724).
- Changed the update process of the remote server binary to mark the lock file as stale in case the SSH connection of the process that created the lock file isn't open anymore (#19724).
- Reuse SSH connections across hosts (#19692).
- Fixed a bug where inerrrupting ssh connecting could leave your local binary cached in an invalid state (#19700).
- SSH connections now download the server binary on the host by default. (#19748)
If you want to upload the binary from the client machine, change the upload_binary_over_ssh
value to true
in the settings.
Example:
{
"ssh_connections": [
{
"host": "192.168.1.10",
"projects": ["~/code/zed/zed"],
// by default Zed will download the server binary from the internet on the remote.
// When this is true, it'll be downloaded to your laptop and uploaded over SSH.
// This is useful when your remote server has restricted internet access.
"upload_binary_over_ssh": true
}
]
}
v0.159.1-pre
v0.158.2
v0.159.0-pre
Enhancements
General
- Added file icons for Zig, Julia, SCSS, HCL, Nix, and Roc files (#19529; thanks PixelJanitor).
- Added macOS Services menu (fixed global macOS shortcuts) (#16959).
- Added highlighting for "invisible" unicode characters. This includes ASCII control codes, and best effort detection across the rest of the Unicode range (#19298).
- Added support for detecting images with non-lowercase file extensions (#19304).
- Added a user-visible error message when a manual save fails (#19311).
- Improved [re]open for external worktree entries (#19612).
- Improved prompt for generating context editor summaries (#19530; thanks wolffiex).
- Moved Git hunk controls to the right of the header (#19515).
SSH Remote
- Added support for machines with older versions of glibc, or not using glibc at all (#19571).
- Added project panel symlink icons for the remote clients (#19464).
- Improved reconnect modal's robustness (#19567).
- Improved error handling (#19533).
- Improved reconnects (#19485).
Languages
Vim
- Added support for incrementing and decrementing numbers with leading zeros in Vim mode (#18362; thanks ThomAub).
Bug Fixes
- Fixed directory name comparison on Linux not considering the case (#19211; thanks wannacu).
- Fixed issue where auto-update would quietly fail if rsync not available (#19392).
- Fixed code action for
Fix with assistant
appearing when assistant was disabled (#19553). - Fixed empty keystroke with simulated IME (#19414; thanks brunocalza).
- Fixed a bug where auto-indent didn't work correctly when pasting with multiple cursors on adjacent lines (#19521).
- Fixed incorrect checkbox placement in Markdown preview (#19383; thanks zfz7).
- Fixed Markdown preview rendering of empty list items (#19449; thanks mgsloan).
- Fixed inconsistent serialization of workspace paths order (#19232; thanks eth0net).
- Fixed error handling when no project paths could be opened (#19320).
- SSH Remoting: Fixed SSH fingerprint prompt (#19526).
- SSH Remoting: Fixed
Save As
to pick the file on the remote (#19517). - SSH Remoting: Fixed message reliability across restarts (#19398).
- SSH Remoting: Fixed
cmd-o
to always open a local project (#19376). - SSH Remoting: Fixed regression with ability to set arguments for SSH (#19336).
- SSH Remote: Fixed a panic when doing
zed ssh://server/
(#19322).
Breaking Changes and Notices
v0.158.1
Enhancements
General
- Added the ability to click intermediate auto-folded project panel entries (#18956).
- Added a new
editor: format selections
action that allows formatting only the currently selected text via the primary language server (#18752; thanks terziele). - Added an
editor: reload file
command (#18395; thanks schpet). - Improved performance on macOS when working with very long lines (#19215).
- Adjusted the divider rule in LSP hovers to be more muted (#19255; thanks dyedgreen).
- Switched to using the system locale in the terminal instead of forcing
en_US.UTF-8
(#18967; thanks shish). - Improved Supermaven completions by preventing suggestions based on outdated cursor positions (#18858; thanks kevmo314).
Languages
- Improved language auto-detection of TypeScript, JavaScript, and shell scripts. Added shebang detection for ts-node, tsx, bun, Deno JS, Deno TS, dash, and ash (#19114).
- Improved automatic indentation behavior in JSX (#18816; thanks schpet).
Vim
- Added basic support for Alacritty's vi mode to the built-in terminal (which is using Alacritty under the hood). Vi mode can be activated with
ctrl-shift-space
, enabling basic motions to navigate the terminal's scrollback buffer (#18715; thanks NukaCody). - Added support for using the insert button to activate vim mode (#19245; thanks axelcarl).
- Added
:e[dit]
,:e[dit]!
, which call theeditor: reload file
command (#18395; thanks schpet). - Added
z
keybindings for scrolling (#18928; thanks syndesis). - Changed
/
in Vim mode to always reset the search options in the search bar back to regex-only. That means using*
(in normal or visual mode) still works with its options, but the next/
will reset the search options. That makes it much closer to how/
behaves in Vim (#19058). - Improved vim mode's whole word match by using the search bar's "Match whole words" option, instead of wrapping the search term with
\<...\>
. This allows easier toggling of whole-word search, and it also works without enabling the regex mode (#18725; thanks osa1). - Added a
regex
option tovim::Search
command to allow disabling regex search by default in the keymap (#19177; thanks osa1).
Example usage:
{
"context": "VimControl && !menu",
"bindings": {
"/": ["vim::Search", { "regex": false }],
}
}
Bug Fixes
- Fixed Astro LSP interactions (#19266).
- Fixed a bug where prettier was attempting to install too frequently (#19283).
- Fixed a bug where language servers from PATH would sometimes be prioritized over the ones from
direnv
(#19144; thanks WeetHet). - Fixed
\s
in regex search not behaving correctly (#19241). - Fixed an issue where the project search would sometimes show "Search all files" when there were no results (#19108; thanks CharlesChen0823).
- Fixed a bug where relative paths were copied incorrectly from tab context menu (#19206; thanks CharlesChen0823).
- Fixed a bug where Supermaven was crashing on deleting non-ASCII text (#19153; thanks JunkuiZhang).
- Fixed tab closing not respecting history. You can use the
tabs.activate_on_close = neighbour
settings to activate adjacent tabs, if you prefer that behavior (#19150). - Fixed support for macOS Keyboard Shortcuts for specific menu items like
Window->Zoom
(#18921; thanks henryhchchc). - Fixed a bug where auto-indent was not enabled while typing in multi-buffers (#18984).
Breaking Changes and Notices
- Renamed one
cursor_shape
fromunderscore
tounderline
(#19028).