Enhancements
General
- Added
emmet
extension to the extension store. The extension offers initial support for Emmet in HTML files (#4992). - Added
editor: toggle git blame
command that toggles a sidebar with git blame information for the current buffer. By default,editor: toggle git blame
is bound tocmd-alt-g b
. - Added a tab switcher, which is accessible via
ctrl-tab
andctrl-shift-tab
(#7321, #7653). The tab switcher works in both the main workspace area and in the terminal panel. - Added the option to include the most-recently focused file in Zed as context to assistant chat panel (#9705).
- Check it out here.
- Added support for persisting project search history across a session (#9717).
- Added support for transparent and blurred window backgrounds on macOS (#5040).
- This requires themes to specify a new
background.appearance
key ("opaque", "transparent" or "blurred") and to include an alpha value in colors that should be transparent.
- This requires themes to specify a new
- Added an auto-update system for extensions (#8248).
- Added the ability to install any version of an extension (#8898).
- Added a close button to the
f8
inline diagnostics. - Improved editor performance when displaying lots of search results, diagnostics, or symbol highlights in the scrollbar (#9792).
- Improved discoverability of dev extension installation action (#10048).
- Improved target selection when jumping from multibuffer; final position in the buffer should more closely match the original position of the cursor in the multibuffer (#5296).
- Vim: Changed
cc
andS
in to only change the current line after its indentation (#9612).
Tasks
- Added a "remove" button next to oneshot tasks in tasks modal.
- Improved task tabs in terminal and show different icons based on task state.
- Improved
UseSelectedQuery
(shift-enter
) action for tasks modal by making it substitute a full command and not the task label.
Languages
- Added Tailwind CSS hover popovers (#7947).
- Added a new
formatter
/format_on_save
option:code_actions
. When configured, this uses language server code actions to format a buffer. This can be used if one wants to, for example, format a buffer with ESLint and not run prettier or another formatter afterwards. Example configuration:{"languages": {"JavaScript": {"formatter": {"code_actions": {"source.fixAll.eslint": true}}}}}
(#8992). - Added support for configuring ESLint
problems
settings, ie.{"lsp": {"eslint": {"settings": {"problems": {"shortenToSingleLine": true}}}}}
.- See it in action here.
- Added Tailwind support in
.vue
files (#4403). - Improved typescript-language-server integration by surfacing more information about completion items (#5287).
Bug Fixes
- Made "Find All References" respect the language server's capabilities. This fixes some instances where certain language servers would stop working after receiving a "Find All References" request.
- Fixed "Toggle comment" action not working in presence of non-default line comments such as doc comments in Rust (#10113).
- Fixed Zed sometimes missing environment variables from shell in case they were the first environment variable listed by
/usr/bin/env
. - Fixed issue where mention notifications are updated when channel message is updated and removed when message is removed.
- Fixed rejoining channels quickly after a restart.
- Fixed buffer being marked as dirty when using tab/tab-prev actions.
- Fixed tab header of project search changing when cycling through search history, even when there is no search submitted.
- Fixed a bug where git diff hunks were appearing in the symlinked files (#4730).
- Fixed a bug where the tooltip for the recent projects popover was not showing.
- Fixed the vertical alignment of labels in the file tree to better align with the file icons.
- Fixed one-shot tasks having duplicates in tasks modal.
- Fixed a file permissions issue when trying to use a Zig language server (
zls
) present on the $PATH. - Fixed a panic in
editor::SelectPrevious
(gN
in vim) (#9766). - Fixed a panic when deleting just-generated text.
- Fixed a panic when dragging into Zed.
- Fixed a panic in visual line mode with folds (#10284).
- Vim: Fixed motion bugs when softwrap, folds, or inlay hints were used.
- Vim: Fixed a bug where shortcuts in the command palette weren't showing the vim keymap keybindings (#4502).
- Vim: Fixed
%
in visual mode when at the end of a line. - Vim: Fixed the
t
object in not working correctly when cursor was on a tag (#8994, #9844).
Breaking changes
DuplicateLine
is now split into separateDuplicateLineUp
andDuplicateLineDown
commands, to improve discoverability in the command palette (#9601). If you are using a custom keybinding forDuplicateLine
, you will need to adjust it to reference the new command names.- Added "fire-and-forget" task spawning;
menu::SecondaryConfirm
in tasks modal now spawns a task without registering it as the last spawned task for the purposes oftask::Rerun
. By default you can spawn a task in this fashion withcmd+enter
or by holdingcmd
when clicking on a task entry in a list. Spawning oneshots has been rebound tooption-enter
(under apicker::ConfirmInput
name) (#9804). - Moved
menu::UseSelectedQuery
action topicker
namespace. - Removed built-in support for C#, Clojure, Erlang, PHP, TOML, and Zig, in favor of making them available as extensions. The respective extensions for these languages will be suggested for download when opening their associated file types:
.cs
for C#,.clj
or similar for Clojure,.erl
or.hrl
for Erlang,.php
for PHP,.toml
orCargo.lock
for TOML, and.zig
for Zig.