Stable releases

May

Zed 0.136.2

05/22/2024

Enhancements

General

  • Added support for hiding the tab bar (part of #6424, #4963). Turn off the tab bar by adding the following to your settings.json:
"tab_bar": {
    "show": false
}
  • Added support for opening subfolders of git repositories and treating them as part of a repository (show git status in project panel, show git diff in gutter, git blame works, ...) (#4672).
  • Added "Open permalink" option to right-click menu of git blame entries in gutter.
  • Added a pane: alternate file command, to navigate back and forth between two buffers, and bound it to ctrl-6 in Vim mode.
  • Added the current_line_highlight setting that defines how to highlight the current line in the editor (#5222).
  • Added --foreground to the CLI to allow running Zed on the current PTY.
  • Improved the behavioral consistency of editor: go to diagnostic and editor: go to prev diagnostic.
  • Improved responsiveness of the main thread under high system load.
  • Changed UI elements within the editor to scale based on buffer_font_size (e.g., code action indicators, task run indicators, etc.).

AI

  • Added support for interacting with Claude in the assistant panel (#8914). You can enable it by adding the following to your settings.json:
"assistant": {
    "version": "1",
    "provider": {
        "name": "anthropic"
    }
}
  • Added a new ambient context feature that allows showing the model up to three buffers (along with their diagnostics) that the user interacted with recently.
  • Added the ability to use the inline assistant within the assistant panel.
  • Added GPT-4o support to the assistant and made it the default.
  • Added a low_speed_timeout_in_seconds setting to the Assistant's OpenAI provider (#9913).

Tasks

  • Improved tasks modal by highlighting a distinction between a task template and concrete task instance and surfacing available keybindings more prominently. Task templates are now always available in the modal, even if there's already a history entry with the same label.

Vim

  • Added support for the changelist. g; and g, to go to the previous/next change.
  • Added support for the '. mark.
  • Added support for gi to resume the previous insert.
  • Added support for buffer-local marks ('a-'z) and some builtin marks '<,'>,'[,'], '{, '} and ^. Global marks ('A-'Z), and other builtin marks ('0-'9, '(, '), '', '., '") are not yet implemented (#5122).
  • Added support for pasting with a count (#10842).

Languages

  • Added ability to configure settings for tailwindcss-language-server, namely the includeLanguages and experimental objects.

Bug Fixes

  • Fixed icon in inline git blame entry not changing with the buffer font size (#11311).
  • Fixed rendering issues that could arise when having large amounts of text displayed on a large display. Fixed by dynamically increasing the size of the buffers used on the GPU (#11615).
  • Fixed the size of the completions menu changing based on the size of the aside (#11722).
  • Fixed a bug where all run buttons would show up as pressed when clicking on a single run button.
  • Fixed a bug where Vim bindings were not available when mouse context menu was open.
  • Fixed the go to definition before by not selecting the target range when the target range has more than one line (#11347).
  • Fixed ctrl-space not being forwarded correctly in the terminal view (#10502).
  • Fixed a bug where SHELL was outdated if Zed was launched via Finder or Raycast or other desktop launchers (#8794).
  • Fixed a panic caused by missing bounds check in completion handler.
  • Fixed a bug where autosave after_delay would auto-format the buffer (#9787).
  • Fixed a bug where the last character of a line could be hidden under the scrollbar (#7098).
  • Fixed completions inside snippets breaking the jump-to-next-tabstop behaviour when using Go/gopls (#10185).
  • Fixed scrollbar markers for folded code.
  • Fixed a bug where the code actions button and the test run button could not be triggered when the editor was not focused.
  • Vim: Fixed a bug where highlights would appear which were only cancellable by opening then closing the toolbar. Buffer search toolbar now opens on n and gn so that the highlights can be cleared.
  • Vim: Fixed a bug where e/E was blocked by hint text (#7046).

Breaking Changes

  • Removed built-in support for Ruby, in favor of making it available as an extension.
  • Changed the default key binding for picker::UseSelectedQuery to alt-e.
  • Changed the default format_on_save behavior for Markdown files to be off.

Zed 0.135.2

05/15/2024

Enhancements

General

  • Added editor::ToggleHunkDiff (cmd-') and editor::ExpandAllHunkDiffs (cmd-") actions to browse git hunk diffs in Zed.
  • Added an editor: convert to opposite case command.
  • Added a stop_at_soft_wraps setting for Editor::move_to_{beginning|end}_of_line. When true, it causes movement to the either end of the line (via, for example Home or End), to go to the logical end, as opposed to the nearest soft wrap point in the respective direction (#10888).
  • Changed the branch picker to always show the current branch as the default selected entry.
  • Changed inline git blame information to not show up on empty lines.

Tasks

  • Added buttons to the gutter to run tests in Rust files.

Vim

  • Added shift-k to show the hover tooltip.

Languages

  • Added syntax highlighting to regular expressions inside of Go.
  • Added ESLint as a default language server for Svelte.
  • Added brackets and missing operators to syntax highlighting in Python code (#4341).
  • Added support for function call completion when using typescript-language-server. This will result in parameters being added, which can then be changed and navigated with <tab>. For this to work with typescript-language-server, the documentation for a given completion item needs to be resolved, meaning that if one types very quickly and accepts completion before typescript-language-server could respond with the documentation, no full function completion is used.

Bug Fixes

  • Fixed terminals always using the global shell even when local settings specified a different shell (#7599).
  • Fixed false-positive hunks appearing in files with \r\n endings (#11452).
  • Fixed a bug where the Collab panel context menu could not be dismissed with Escape key (#11413).
  • Fixed Copilot suggestions preventing completions from appearing on completion trigger inputs (#8766).
  • Fixed alt-shift-left and alt-shift-right in the Textmate default keybindings (#10242).
  • Restored the ability to confirm a prompt by pressing "Enter" when deleting/trashing files.
  • Fixed detection of JSDoc to only do syntax highlighting in block comments (#7826).
  • Vim: Fixed last character of reversed mouse selections (#8492).

Zed 0.134.4

05/09/2024

  • fixed crash on deleting files in macOS Catalina (#11346)

Zed 0.134.3

05/08/2024

  • Fixed a panic in graphics allocation (#11583)
  • Fixed a panic in show hover (#11581)

Zed 0.134.2

05/08/2024

Enhancements

General

  • Added the ability to open directories using context menu (Right click -> Open With -> Zed).
  • Added support for avatars in git blame for repositories hosted on codeberg (#11043).
  • Added diagnostics for main-thread hangs on macOS. These are only enabled if you've opted into diagnostics.
  • Added support for replacing the current preview tab when using code navigation (enable_preview_from_code_navigation).
  • Added icons for JS, React, C, and C++ file types.
  • Improved the behavior of launching an empty already-running Zed application by respecting the user's restore_on_startup setting. (#10812).
  • Added a new project_panel::Trash action and changed the default behavior for backspace and delete in the project panel to send a file to the systems trash, instead of permanently deleting it (#7228, #5094). The original behavior can be restored by adding the following section to your keybindings:
{
    "context": "ProjectPanel",
    "bindings": {
        "backspace": "project_panel::Delete",
        "delete": "project_panel::Delete",
    }
}
  • Added displaying of cursor markers in the scrollbar. They can be switched on/off by the scrollbar.cursors setting.
  • Improved rendering performance of list elements inside the markdown preview (#10824).
  • Changed the diagnostics view to always update its excerpts eagerly when not focused.
  • Added an indicator to the project diagnostics view's toolbar, showing when diagnostics have been changed.

Tasks

  • Improved the task::Rerun action to toggle the tasks modal when no tasks have been scheduled so far.

Vim

  • Added support for line ranges in Vim replace commands (#9428).

Languages

  • Added highlighting to TypeScript's triple-slash reference directives (#11001).
  • Added @operator, @lifetime and @punctuation.delimiter captures to Rust highlights file.
  • Added support for configuring ESLint's rulesCustomizations settings, ie. {"lsp": {"eslint": {"settings": {"rulesCustomizations": [{"rule": "*", "severity": "warn"}]}}}}.
  • Added ESLint support for Vue.js files by starting it as a language server on .vue files. (#9934).

Bug Fixes

  • Fixed an issue where the project diagnostics view could update its excerpts while you were typing in it.
  • Fixed bugs where the project diagnostics view could show the wrong excerpts.
  • Fixed (maybe) a rare crash in watching settings files (#11168).
  • Fixed a bug where inline diagnostic messages were still visible after folding surrounding code(#4659).
  • Fixed ghostly artifacts in transparent window backgrounds.
  • Fixed sluggishness with blurred window backgrounds.
  • Fixed inline git blame information moving when horizontally scrolling.
  • Fixed error messages being logged due to inline git blame not working on an empty buffer that hasn't been saved yet.
  • Vim
    • Fixed ctrl-a when cursor is on a decimal point (#10865).
    • Fixed cursor not changing into a hollow block when editor loses focus.
    • Fixed cmd-clicking on a definition to find all references (#10392).
    • Fixed logic for finding surrounding quotes to ignore escaped characters (#10827).

Breaking Changes

  • Removed built-in support for Elixir, in favor of making it available as an extension.

Zed 0.133.7

05/03/2024

  • Fixed a UI beachball when gathering process information (#11285)
  • Fixed a rare crash in watching settings files. (#11241)
  • Fixed UI beachball with hundreds of buffers open doing git blame. (#11277)
  • Reduced main thread hangs under very high system load (#11278)

Zed 0.133.5

05/01/2024

Enhancements

General

  • Added an editor::ExpandExcerpts action (bound to shift-enter by default), which can expand the multi-buffer excerpt the cursor is currently in by 3 lines (#5377). You can customize the number of lines by rebinding this action like so:
// In your keybindings array...
{
  "context": "Editor && mode == full",
  "bindings": {
    "shift-enter": ["editor::ExpandExcerpts", { "lines": 5 }],
  }
}
  • CLI now accepts an optional name of release channel as its first argument. For example, zed --stable will always use your Stable installation's CLI. Trailing args are passed along (#10851).
  • Changed cmd-w to close the window when there are no open tabs (#5322).
    • See it in action here.
  • Added a setting to determine the minimum column where the inline blame information is shown. Example: {{"git": {"inline_blame": {"min_column": 80}}}. (#10555).
    • Check it out here.
  • Added a setting to show/hide the Project Panel button in the status bar: {"project_panel": {"button": false}}.
  • Added drop_target_size setting. This should be a fractional percent (e.g., 0.5).
  • Improved the hitboxes for drop targets.
  • Updated drop targets to respect the alpha channel of the drop_target.background color.
  • Improved buffer search workflow: cmd-f will select the query string when the buffer search editor is focused.
  • Exposed Rust traits as type.interface for individual syntax theming.

Collaboration

  • Improved Markdown preview in channel notes to re-render when another collaborator changes the content.

Git

  • Added GitHub avatars to tooltips that appear when hovering over a git blame entry (either inline or in the blame gutter).
    • Check it out here.
  • Added links to GitHub pull requests to the git blame tooltips, if they are available.
    • Check it out here.

Tasks

  • Added tooltips entries in the task: spawn modal.

Languages

  • Added language_servers setting to language settings for customizing which language server(s) run for a given language.
  • Added auto-installation for the HTML extension on startup.
    • This can be disabled by adding { "auto_install_extensions": { "html": false } } to your settings.
  • Added ReScript as a suggested extension for .res and .resi files.
  • Added LOG as a suggested extension for .log files.
  • Added support for finding the Ruby language server solargraph in the user's $PATH as it is when cding into a project's directory (#9811).
  • Added support for configuring the path and arguments for solargraph language server manually. Example from settings: {"lsp": {"solargraph": {"binary": {"path":"/Users/thorstenball/bin/solargraph","arguments": ["stdio"]}}}} (#9811).

Bug Fixes

  • Fixed an issue where the wrong language server could be used for formatting (#10902).
  • Fixed Rust tasks using incorrect package name (#10925).
  • Fixed a bug where non-focused windows weren't showing a hover state for clickable areas (#9784).
  • Fixed a bug that caused disabled navigation buttons to show up in terminal panel.
  • Fixed a bug where the UI would stutter when dragging tabs over any element that stopped event propagation.
  • Fixed a bug where the user's selection was changed when using the language server's rename action.
  • Fixed a bug where multiple terminals were being opened on workspace::NewTerminal calls (#4567).
  • Fixed a bug where project panel: collapse all entries was expanding collapsed worktrees.
  • Fixed a bug where terminal file paths could not be clicked when the column portion of path was malformed (#10688).

Breaking Changes

  • Moved project_panel::OpenInTerminal into workspace::OpenInTerminal action and added it in editors, tab context menus, and proper panel file entries (#4566)
  • Removed built-in support for Deno, in favor of making it available as an extension.
  • Removed task status indicator and added a Spawn task action to terminal panel context menu.

April

Zed 0.132.5

04/30/2024

  • Fixed a panic in SVG rendering (#11198)
  • Fixes diagnostic panic better (follow up from #11066) (#11172)

Zed 0.132.4

04/29/2024

  • Fixed rendering of relative line numbers in editor (#11105).

Zed 0.132.3

04/27/2024

  • Fixed a crash that could happen if an error occurred in a parser provided by an extension. (#11076)
  • Fixed a panic in populating diagnostics (#11069)
  • vim: Fixed a panic when searching (#11031)

Zed 0.132.2

04/24/2024

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.7

04/22/2024

  • Fixed a bug where workspace LSP settings could not be read by extensions.