Stable release

April

Zed 0.130.4

04/10/2024

Download (Apple silicon)

Download (Intel chip)

Download (Universal binary)

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 to cmd-alt-g b.
  • Added a tab switcher, which is accessible via ctrl-tab and ctrl-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.
  • 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 and S 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 separate DuplicateLineUp and DuplicateLineDown commands, to improve discoverability in the command palette (#9601). If you are using a custom keybinding for DuplicateLine, 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 of task::Rerun. By default you can spawn a task in this fashion with cmd+enter or by holding cmd when clicking on a task entry in a list. Spawning oneshots has been rebound to option-enter (under a picker::ConfirmInput name) (#9804).
  • Moved menu::UseSelectedQuery action to picker 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 or Cargo.lock for TOML, and .zig for Zig.