Stable releases

April

Zed 0.132.2

04/24/2024

Download (Apple silicon)

Download (Intel chip)

Download (Universal binary)

Enhancements

General

  • Added preview tabs (#4922).
  • Added an editor controls menu to the tool bar. This will contain visual, editor-specific options like toggling inlay hints, showing git status or blame, etc.
    • The top-level inlay hint toggle has been removed from the tool bar, as it is now in this menu.
    • Toggling the inline git blame is also possible from this menu.
  • Added support for Centered Layout (#4685).
  • Added restore_on_startup option, accepting last_workspace (default) and none options. With none, new Zed instances will not restore workspaces that were open last.
  • Added a setting under scroll_sensitivity that allows user to control the scroll sensitivity. This value acts as a multiplier for the horizontal and vertical scroll speed.
  • Improved search UI. It now works in narrower panes, and avoids scrolling the editor on open.
    image-search-one
    image-search-one
    image-search-two
    image-search-two
    image-search-three
    image-search-three
    image-search-four
    image-search-four
  • Added a setting to show/hide the terminal button in the status bar: {"terminal": {"button": false}} to hide it (#10513).
  • Improved ordering and organization of context menus in the project panel to bring them closer to those in similar applications.
  • Hovering over an edited message in the chat now displays a tooltip revealing the timestamp of the last edit.
  • Added bindings to allow up and down arrow keys to be used while the tab switcher is open.
  • Added support for toggling a checkbox in markdown preview by clicking on it (cmd+click) (#5226).
  • Signing out of Zed will now clear the credentials state and delete the corresponding keychain items (#4716).
  • Added support for scrolling to the message you are replying to when clicking on the reply preview (#10028).
  • Added a project_panel.auto_fold_dirs setting which collapses the nesting in the project panel when there is a chain of folders containing a single folder.
    autofolddir-image
    autofolddir-image
  • Increased diagnostic context to match the project search context.
  • Adjusted Zoom In/Out for Pane and Terminal Pane to show keybinding labels.

Git

  • Added inline git blame information the editor. It's enabled by default. It can be turned off in the settings with {"git": { "inline_blame": {"enabled": false } } } for every buffer. It can be turned on/off temporarily for the current buffer, with editor: toggle git blame inline (#4793).
  • Added a notification to show git blame errors.

Tasks

  • Added task summary output into corresponding terminal tabs.
  • Task::Rerun action can now override allow_concurrent_runs and use_new_terminal properties of the task that is being reran.
  • Added tasks for bash and Python to execute selections and open files in terminal.
  • Improved task modal ordering, run, and deletion capabilities.

Extensions

  • Changed the "Install" button for extensions to always install the latest compatible version instead of becoming disabled when the latest version of an extension is incompatible with the current Zed version.
  • Added an indicator to show the currently-installed extension version when not on the latest version.
  • Disabled extension entries when there is a development copy of that extension installed.

Languages

  • Added ability to specify clangd binary path (must be absolute) and arguments in user settings. Example: {"lsp": {"clangd": {"binary": {"path": "/usr/bin/clangd", "arguments": ["--log=verbose"] }}}}

Vim

  • Added the current operator stack to the Vim status bar at the bottom of the editor (#4447).
  • Added g c c and g c to Vim keybindings to toggle comments in normal and visual mode respectively.
  • Added g ] and g [ to Vim keybindings to go to next and previous diagnostic error.
  • Changed [ x and ] x (which select larger/smaller syntax node) in Vim mode to also work in visual mode.
  • Updated Vim regexes to use \< \> instead of \b (#10539).
  • Added a vim: open default keymap command to show the default Vim keymap (#8593).

Bug Fixes

  • Fixed project panel entries misalignment with narrow panel & file icons turned off.

  • Fixed git blame data not handling the undoing of deletions correctly. (#10583).

  • Fixed git blame functionality not handling errors correctly when there are no commits yet or when file isn't committed yet.

  • Fixed caret movement issue for some special characters.

  • Fixed "Find In Project" app menu item having no keybinding (#10611).

  • Fixed some cases where diagnostics tab showed outdated entries before the language server is done with its analysis.

  • Fixed a bug where multiple extension suggestions for the same extension could be shown at once (#10320).

  • Fixed a bug where project panel settings changes would not be applied immediately.

  • Fixed Markdown code blocks in tooltips not having correct language highlighting.

    Before:

    image
    image

    After:

    screenshot-2024-04-16-12 43 39@2x
    screenshot-2024-04-16-12 43 39@2x
  • Fixed Markdown returned by clangd being rendered the wrong way (#10511).

    Before:

    screenshot-2024-04-16-12 32 15@2x
    screenshot-2024-04-16-12 32 15@2x

    After:

    screenshot-2024-04-16-12 33 02@2x
    screenshot-2024-04-16-12 33 02@2x
  • Fixed left movement in Vim mode when soft wrapping is enabled (#10350).

  • Fixed a panic when installing the CLI/registering for the zed:// protocol.

  • Fixed a panic when rendering certain malformed SVGs.

  • Fixed a (rare) panic when closing a window.

Breaking Changes

  • Pulled support for the following languages out into extensions, with automatic suggestions for their corresponding file extensions:
    • Elm (.elm)
    • GLSL (.vert, .frag)
    • Lua (.lua)
    • Nix (.nix)
    • Nu (.nu)
    • OCaml (.ml, .mli)
    • Racket (.rkt)
    • Scheme (.scm)
    • Terraform (.tf, .tfvars, .hcl)
    • Vue (.vue)

Zed 0.131.6

04/17/2024

Download (Apple silicon)

Download (Intel chip)

Download (Universal binary)

Enhancements

General

  • Reduced memory usage for files by up to 50%.
  • Added action to open markdown preview in the same pane.
  • Added support for displaying channel notes in markdown preview.
  • Added support for displaying the current active editor when opening markdown preview.
  • Added support for scrolling the editor to the corresponding block when double clicking an element in markdown preview.
  • Added tooltips when hovering over links inside the markdown preview.
  • Added support for detecting and highlighting links in markdown preview.
  • Added a status indicator for LSP actions (#4380).
  • Added selection and line counts to the status bar (#4204). The format of the line indicator can be made more compact via the following setting:
"line_indicator_format": "short"
  • Added a setting to hide/show the navigation history buttons:
"tab_bar": {
   "show_nav_history_buttons": true
 }
  • Improved error reporting on startup (#9036).
  • Increased search result context from 3 lines to 4 lines.

Tasks

  • Added more icons to task modal.
  • Added task status indicator to the status bar.

Languages

  • Added yield keyword highlight for Rust.
  • Added highlighting for parameters in blocks in Ruby.

Vim

  • Added search motions (/,?,n,N,*,#) in visual modes and as targets for operators like d,c,y (#4346).
  • Added support for vim-surround (#4965). Note that HTML tags are not yet supported.

Bug Fixes

  • Fixed an issue where the "New messages" indicator in the channel chat would be shown even if the message was deleted.
  • Fixed highlighting of messages when clicking on the reply message text in the chat and there were no other messages from other users (#10024).
  • Fixed clear chat state when switching edit/reply message state (#10042).
  • Fixed an issue where the status of failed LSP actions was left in the status bar.
  • Fixed status bar focus issues when spawning a terminal via workspace: new terminal action.
  • Fixed language server notifications being too large (#10090, #10190, #10217).
  • Fixed "quickfix" code actions that were based on diagnostics not showing up in Go files (#10177).
  • Fixed a bug where some hover popovers would render \n instead of a new line.
  • Fixed Zed not picking up shell environments correctly when running on macOS 12 (#9786).
  • Fixed project shared notification staying open, when the user that shared the project left the room.
  • Fixed highlighting of constants in Ruby (#9995).
  • Fixed a bug where newline characters in file names would introduce UI artifacts in the project panel (#8603).
  • Fixed several bugs in the project panel related to directories whose names contain numbers (#9729, #10193).
  • Fixed crashes with huge buffer_font_size values (#10149).
  • Fixed a (rare) panic while collaborating.
  • Fixed a crash when joining two consecutive lines (#9692).
  • Vim: Fixed a bug with cgn backwards movement.
  • Vim: Fixed a bug where the block cursor would not render italic text under it (#8799).
  • Vim: Fixed undo grouping in Replace mode (#10031).
  • Vim: Fixed : when no files are open.

Breaking changes

  • Removed built-in support for HTML and Dart, 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: .html, .htm, or .shtml for HTML, and .dart for Dart.
  • Disabled format_on_save by default in C and C++.
  • Updated gn and gN to select the next search result as in Vim. Adding multi-cursors to the next/prev copy of the word under the cursor is now bound to gl/gL.
  • Switched to the system UI font for user interface elements on macOS. The previous default font can be restored via the following snippet in your settings.json file:
"ui_font_family": "Zed Sans"

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.