Stable releases

April

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.

Zed 0.129.2

04/04/2024

Download (Apple silicon)

Download (Intel chip)

Download (Universal binary)

Bug Fixes

  • Improved error handling when formatting buffers with prettier. Previously prettier errors would be logged but ignored. Now prettier errors are shown in the UI, just like language server errors when formatting. And if no formatter is specified (or set to "auto") and Zed attempts to use prettier for formatting, then prettier errors are no longer skipped. That fixes the issue of prettier not formatting invalid syntax, but its error being skipped, leading to typescript-language-server or another language server formatting invalid syntax.

Zed 0.129.1

04/03/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 built-in tasks for Rust and Elixir files.
  • Added a keybinding (shift-f12) for editor::GoToImplementation.
  • Added support for inserting newlines (\n) and tabs (\t) in editor Regex search replacements (#7645).
  • Added an assistant.enabled setting to control whether the Assistant is enabled.
  • Added the ability to specify no base keymap to allow for a blank slate for custom keybindings.
  • Added a fast-switch mode to the file finder: hit p or shift-p while holding down cmd to select a file immediately (#8258, #8757).
  • Improved efficiency by avoiding formatting and full saving for buffers without changes (#9475).
  • Improved visuals of task lists inside the markdown preview.
  • Improved the clarity of the UI for diagnostic and search result headers.

Languages

  • Added ability to specify gopls binary path (must be absolute) and arguments in user settings. Example: {"lsp": {"gopls": {"binary": {"path": "/my/abs/path/gopls", "arguments": ["-debug=0.0.0.0:8080"] }}}}.
  • Added workspace configuration settings support for elixir-ls language server. Those can now be configured by setting {"lsp": {"elixir-ls": { "settings: { "your-settings-here": "here"} } } in Zed settings (#4260).
  • Added more path suffixes recognized as C++.
  • Improved C/C++ support by using user-installed clangd when available.

Bug Fixes

  • Pinned @vue/language-server to version 1.8 until Zed supports 2.x (#9388, #9329).
  • Fixed positioning of popup windows (e.g. when sharing a project) when using multiple external displays.
  • Fixed a bug where channel chat notifications were no longer working.
  • Fixed a bug where right clicking in the project panel's empty region did not produce an action menu (#9723).
  • Fixed markdown preview task list rendering when there was a line break between two list items (#9783).
  • Fixed markdown preview not handling hard breaks (e.g. \) correctly (#8990).
  • Fixed a bug where upgrading an extension did not work correctly if the extension had switched from using an old extension schema with extension.json to the new schema with extension.toml.
  • Fixed a bug where Zed did not respond to the first, focusing, click on the application window (#4336).
  • Fixed alignment of items in the title bar (#9709).
  • Fixed a bug where code completions were overriding text around the cursor (#4816).
  • Fixed a bug where multiple instances of the extensions view could be opened at once.
  • Fixed a bug where tasks could not be used if the user had venv activation (detect_venv) enabled.
  • Fixed a bug where environment variables were being leaked from tasks to the subsequent terminals.

Breaking changes

  • Removed built-in support for Astro, Dockerfile, Gleam, Haskell, Prisma, PureScript, and Svelte, 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: .astro for Astro, Dockerfile for Docker, .gleam for Gleam, .hs for Haskell, .prisma for Prisma, .purs for PureScript, and .svelte for Svelte.
  • Renamed the copilot::Suggest action to editor::ShowInlineCompletion.
  • Renamed the copilot::NextSuggestion action to editor::NextInlineCompletion.
  • Renamed the copilot::PreviousSuggestion action to editor::PreviousInlineCompletion.
  • Renamed the editor::AcceptPartialCopilotSuggestion action to editor::AcceptPartialInlineCompletion.

March

Zed 0.128.3

03/27/2024

Download (Apple silicon)

Download (Intel chip)

Download (Universal binary)

Enhancements

Languages

  • Improved Ruby language to recognize Guardfile.
  • Added support for regex syntax highlighting in JS and TS.
  • Added support for JSDoc syntax highlighting (#7224).
  • Added updating for node-based language servers (#9234).
  • Improved syntax highlighting for TS/TSX and JSON.
  • Added a file_types setting that can be used to associate languages with file names and file extensions (#5178).
  • Added ability to specify rust-analyzer binary path (must be absolute) and arguments in user settings (#9292). Example:
{ 
  "lsp": {
    "rust-analyzer": {
      "binary": {
        "path": "/my/abs/path/rust-analyzer", 
        "arguments": ["--no-log-buffering"] 
      }
    }
  }
}

Collaboration

  • Added editing of chat messages (#6707).
  • Redesigned message replies in the chat panel.
  • New users are now automatically added to the #zed channel.

Vim

  • Improved undo. It will now restore you to normal mode in the same position as vim, and group deletions caused by c or s with the concomitant insert (#7521).
  • Fixed overeager auto-indentation on line removals in Vim mode.

Extensions

  • Adds suggested extensions for some filetypes (#7096).
  • Added support for opening the theme selector with installed themes after installing an extension containing themes (#9228).

General

  • Zed now ships as a non-universal binary, reducing binary size by ~50%.
  • Added the setting always_treat_brackets_as_autoclosed (default: false) to always treat brackets as "auto-closed" brackets, i.e. deleting the pair when deleting start/end, etc (#7146).
  • Added a spinning animation to the LSP checking indicator.
  • Added support for rendering image files (#5251).
  • Fixed file Git status refreshing on .gitignore update (#7831).
  • ⌘-Delete/⌘-Backspace will now suppress deletion confirmation prompts in project panel (#7228).
  • Updated various UI and file icons for consistency.
  • Added experimental ZED_PACKAGE task variable which contains name of the current crate in Rust files.
  • Improved project-wide search performance (#9135).
  • Changed Zed to always open new windows with the same position and location as the previous instance of Zed.
  • Added a reveal: always|never (always is a default) field in task definitions from tasks.json , allowing to customize task terminal behavior on spawn
  • Added recent projects into Zed's macOS dock icon context menu (#8416).
  • Added option to root project folder to collapse all subfolders.
  • Improved responsiveness when loading files into memory.

Bug Fixes

  • Fixed a general class of crashes that could occur due to bugs in grammars added via extensions.
  • Fixed a crash that could occur when editing certain SQL files.
  • Fixed a bug that caused flickering when interacting with the language server logs (#9340).
  • Fixed an issue where not all editor hover popovers would be accounted for when choosing to hover above or below the mouse cursor (#5227).
  • Fixed an issue where editor hover could be dismissed by moving the mouse between hover popovers (#7304).
  • Fixed language servers erased from the disk when project is opened offline.
  • Fixed a panic caused by allowing the CLI to re-use workspaces.
  • Fixed an issue where long extension descriptions could push the GitHub repository icon off the screen (#9331).
  • Fixed an empty search being kicked off involuntarily if no query was typed in yet but an option was toggled.
  • Fixed a bug that broke search filtering when searching a project with multiple worktrees (#9285).
  • Improved scrollbar markers visualization (#9070).
  • Fixes "go backwards" not considering multibuffers in history.
  • Fixed tooltips not working for links in chat panel (https://github.com/zed-industries/zed/pull/9699).
  • Fixed a bug where upgrading an extension did not work correctly if the extension had switched from using an old extension schema with extension.json to the new schema with extension.toml.

Breaking Changes

  • We are temporarily removing the semantic index in order to redesign it from scratch.

Zed 0.127.3

03/20/2024

Download (Universal binary)

Enhancements

Languages

  • Added @callback, @type and @typep Elixir symbols in outline view.
  • Added autoclosing of ( and ' in Lua.

Vim

  • Added option use_smartcase_find.
  • Added subword motions.
  • Added [x and ]x as default keybindings to select larger and smaller syntax nodes respectively.

Collaboration

  • Added autocompletion for emojis in chat when typing emoji shortcodes (#7299).
  • Added support for automatically replacing emoji shortcodes in chat (e.g. typing ":wave:" will be converted to "👋").
  • Reworked date time formatting in the chat and the notification panel.
  • Added hover style to notifications and hovering tooltip on timestamps.
  • Improved sign in latency by 40ms.
  • Improved message hovering in chat panel.
  • Reduced likelihood of being disconnected during deploys.

General

  • Added editor::RevertSelectedHunks (cmd-alt-z by default) for reverting git hunks from the editor.
  • Added support for opening files on the zed protocol open zed://file/Users/example/Desktop/a.txt (#8482).
  • Added -n/--new and -a/--add to the zed CLI. When neither is specified, if you open a directory you get a new workspace, otherwise files are added to your existing workspace. With --new files are always opened in a new workspace, with --add directories are always added to an existing workspace. (#9076, #4861, #5370).
  • Added a double_click_in_multibuffer setting. When select is used, the multi-buffer behaves the same as a singleton buffer, when open is used, the excerpt is opened in a new tab (same as editor: open excerpts) (#5275).
  • Added support for overriding the current theme's syntax font styles and weights in settings (#9121).
  • Added support to click on LineColumn on StatusBar to open the go to line modal.
  • Added ESLint config nodePath.
  • Added strikethrough to deprecated methods in completions menu (#8390).
  • Added ZED_SELECTED_TEXT task variable which contains contents of selection.
  • Added message to activity indicator if last attempt to format a buffer failed. Message will get reset when next formatting succeeds. Clicking on message opens log with more information. (#8072 and #9061).
  • Added syntax highlighting to code blocks in markdown preview.
  • Improved cmd-click navigation around the editor: now, if cmd-click did not find a reference to go to, Zed calls FindAllReferences (#5351).
  • Improved FindAllReferences action by not allowing concurrent requests for the same multi buffer source (#9242).
  • Improved performance when loading large files.
  • Improved the zed command to not create files until you save them in the editor (#7400).
  • Improved the size and position of the hitbox for resizing left, right, and bottom panels. (#8855).
  • Improved Copilot configuration modals by allowing ESC to close the modals (#8852).
  • Improved the UI of popover buttons when hovering over chat messages.
  • Improved task modal UX with long bash-like commands.
  • Improved zed: Open Log action to not mark the opened log file as dirty and to always scroll to the bottom of the log.

Bug Fixes

  • Fixed a bug that was causing popovers to flicker (#9010).
  • Fixed the double-click action on the terminal tab bar opening a new buffer instead of a new terminal (#9003).
  • Fixed a bug where empty panes could be created during drag & drop (#9198).
  • Fixed the pane resize handler not consistently triggering on mouse hover.
  • Fixed focus not being consistently changed when switching between multiple Zed windows via cmd-backtick.
  • Fixed editor layout for large files, where the lines might have been laid out with incorrect Y offset from the top (#5371).
  • Fixed language server glob patterns for file watching being ignored if they were relative patterns.
  • Fixed language servers not being notified of file changes if language server registers for file-notification right after starting up. (#8896).
  • Fixed word boundaries in Ruby by restoring old behavior (@, :, ... are no longer considered word characters) (#9069).
  • Fixed completions being filtered out when they happened at word boundaries on special characters (e.g. :).
  • Fixed URL detection at very beginning and very end of buffer (#9210).
  • Fixed a rendering glitch that could cause code actions to not display correctly (#8341)
  • Fixed a bug that would cause hover information to not be dismissed when hovering over negative space (#8340).
  • Fixed copilot suggestions not disappearing after disabling the tool (#6793).
  • Fixed empty channel notes always showing as unread.
  • Fixed font ligatures not always respecting the setting (#4313).
  • Fixed empty tooltip on Recent Projects.
  • Fixed a bug where the ZED_FILE task environment variable contained a relative path, not an absolute one.
  • Fixed a bug where the project panel icon was bouncing when renaming.
  • Fixed some slowness when collaborating with verbose language servers.
  • Fixed scrolling position restoration in the Project Panel.
  • Fixed scroll position in markdown preview when editing a markdown file (#9208).
  • Fixed a bug where prettier plugins were being ignored (#8841).
  • Fixed panics when .git was opened as a Zed worktree (#9174).
  • Fixed a panic that could occur when displaying too many breadcrumbs. (#9079).
  • Fixed a segfault that could show up when closing windows.

Breaking changes

  • Removed git_commit syntax highlighting. The Git Firefly extension covers this functionality now.
  • Changed default keybindings in the VS Code keymap so that alt-[up|down] now move lines up/down and alt-shift-[up|down] duplicate lines up/down. Previous bindings for selecting larger/smaller syntax nodes are now bound to ctrl-shift-[left|right] (#4652, #7151).