Releases

Keep up with the weekly Zed releases.


February

0.173.8

02/13/2025

macOS
Linux

Introducing Edit Prediction. Powered by Zeta, our open-source, open-dataset language model.

To learn more, check out the blog post.

Enhancements

  • Allow searching within the results of a project search (#23819).
  • Icon themes: Added the ability for extensions to change the file icon for the following file types:
  • Icon themes: Added support for configuring both a light and dark icon theme and switching between them based on system preference (#24702).
{
  "icon_theme": {
    "mode": "system",
    "light": "Zed (Default)",
    "dark": "Zed (Default)"
  }
}
  • Added an option to open the icon theme selector from the user menu (#24482; thanks beniaminzagan).
  • Added icon support for additional Prettier config file types (#24496; thanks sethstha).
  • Added a way to access the extension store from the theme selector to make it easier to find new themes (#24195).
  • Added an indicator in About/CopySystemSpecs when running in debug mode (#24457).
  • Added an explicit background color to the syntax tree view (#24524; thanks kaf-lamed-beyt).
  • Added ToggleStagedSelectedDiffHunks action for staging and unstaging individual diff hunks (#24606).
  • Added commands editor: copy file name and editor: copy file name without extensions (#22174; thanks ankddev).
  • Added dimensions and file size information for images (#21675; thanks kaf-lamed-beyt).
  • Unified selection directions when performing editor: select all matches (#23993).
  • Pass the NODE_EXTRA_CA_CERTS environment variable through to NPM when installing language servers (#23662; thanks jswny).
  • Improved default completion label fallback (#23909).
  • Improved project_panel::NewSearchInDirectory to search the parent directory when triggered on a file (#23696; thanks wblazer).
  • Improved divider in status bar by rendering it only conditionally (#24114; thanks ksweetie).
  • Improved close active item to better handle pinned tabs: pinned tabs now stay open when using close shortcuts, auto focuses to any other non-pinned tab instead (#23488).
  • Improved the debug::OpenSyntaxTreeView action by automatically opening in split to the right (#24452).
  • Improved outline panel initial update (#24500).
  • Improved bracket auto-closing in PHP language extension (#24558; thanks MrSubidubi).
  • Linux: Move from using openssl for collaboration to rustls/ring (#24141).
  • Modified some keymap actions and settings for naming consistency (#23834). To ensure a smooth transition, we implemented a settings migrator. If Zed detects that you’ve customized a keybinding with an outdated name, you’ll receive a toast notification. This notification includes an action that, when activated, creates a backup of your current settings and updates the setting name while preserving your custom binding. Our aim is to establish consistent and easily-searchable action names. For any potential future changes, we’ll continue to use the migrator, so that you do not have to manually update your keymap.json file.

Vim

  • Added e for entire file object. yae to copy entire file (#24039).
  • Added ctrl-w a to close all items in the current pane (#24162).
  • Added gr for replace with register (#24326).
  • Added a default keymap that returns the user to normal mode after pressing escape during a pending visual-surround operation (#24484; thanks roycrippen4).
  • Introduced first version of :set with support for [no]wrap, [no]number, [no]relativenumber (#24209; thanks maxbucknell).
  • Improved multi-line operations (#24518; thanks 5brian).
  • Preserve trailing whitespace in inner text object selections (#24481; thanks 5brian).
  • Load vim keymap after a user-configured keymap (#24161).

AI

  • Added OpenAI o3-mini support for the Assistant (#24044).
  • Added Copilot Chat support for o3-mini and remove support for o1-mini (#24080; thanks @SkywardSyntax).

Languages

  • Add basic support for autoindent functionality in bash/shell files (#24156).
  • Added file type associations for ESLint flat config files (#23994; thanks radmorecameron).
  • Added support for Go fuzz tests (#24107; thanks @cborup).

Bug Fixes

  • Fixed multiple save modals appearing when app is being closed multiple times (#24180).
  • Fixed a bug where closing an empty, named, file would warn about unsaved content (#24171).
  • Fixed display, revert and undo of deleted hunks when the file is empty (#24168).
  • Fixes an issue with search actions so that they now execute on the clicked pane rather than the focused pane when using search UI in multiple panes (#24037).
  • Fixed a bug where pressing ctrl/cmd (or other modifiers) after mouse down but before mouse up still triggered ctrl/cmd+click behavior (e.g. "go to definition") (#22988; thanks smoores-dev).
  • Fixed mouse navigation buttons on some devices (Logitech, Mac OS) (#23332; thanks srsly4).
  • Fixed some modifier changed events not being present on Linux X11. This affected things like the project search palette, where holding ctrl would not cause the split options to appear. (#24154).
  • Fixed a bug where shifting focus to the terminal panel could be slow (#24172).
  • Fixed an issue in certain themes where diffs would render with the wrong red and green colors for deletions and insertions (#24151).
  • Fixed a crash that could happen when expanding certain diff hunks.
  • Fixed a bug where diff hunks were not syntax highlighted when reopening a project with previously-opened buffers.
  • Fixed an issue where language server diagnostic codes would be converted to strings leading to errors with some language servers (#24347).
  • Fixed diff hunks not appearing when opening a single file within a larger repository (#24377).
  • Fixed Around Subword No Include Whitespace (#24356; thanks 0x2CA).
  • Fixed an issue where hidden files would have the default icon instead of the correct one (#24391).
  • Fixed an issue where files with specific icons (such as eslint.config.js) would not have their specific icon without a leading . (.eslint.config.js) (#24391).
  • Fixed deletion diff hunks not being syntax highlighted in some cases (#24413).
  • Fixed display of symbols such as   in hover popovers (#24388; thanks WeetHet).
  • Fixed bug where select_next_git_entry project panel action would only select a previous entry or the currently selected entry (#24217; thanks Anthony-Eid).
  • Fixed a bug where toggling a diff hunk that immediately precedes another hunk would act on both hunks (#24355).
  • Fixed a crash in Wayland-based compositors like Sway when switching windows via the keyboard (#24379).
  • Fixed an edge case with multibuffers that could break language features within them (#22958).
  • Added a notification for deprecated settings and keymaps, allowing you to migrate them with a single click. A backup of your existing keymap and settings will be created in your home directory (#23834).
  • Fixed a bug where the json file icon could not be replaced via icon themes (#24432; thanks sethstha).
  • Fixed file icons not being properly updated upon icon theme upgrade or uninstall (#24449; thanks MrSubidubi).
  • Fixed an issue where worktree root name couldn't be renamed in project panel (#24487).
  • Fixed outline panel not focusing editor when outlines and search results were opened with outline_panel::Open (#24535).
  • Fixed outline panel issues in a multi-worktree set-up (#24538).
  • Fixed hover tooltips appearing after related element is pressed (#24540).
  • Fixed a rare crash during syntax highlighting (#24492; thanks Liamolucko).
  • Fixed an issue where, if multiple formatters were configured, they would run in parallel instead of sequentially, leading to unwanted artifacts (#24584). and incorrect output.
  • Fixed issue where horizontal scrollbar would scroll few characters width when soft wrap is active (#24735).
  • Fixed editor::GoToDiagnostics action stuck when multiple diagnostics groups belong to the same place (#24697).
  • Fixed a crash caused by calling editor::SelectPrevious twice in a row (#24660).
  • Fixed a bug that caused OS-level CA certificate bundles to not be respected (#24656).
  • Fixed keybind hints being improperly scaled for custom ui font sizes (#24708; thanks MrSubidubi).
  • Fixed an issue where subdirectories of an already opened project, when opened via the terminal, would open in the existing project instead of a new window (#24560).
  • Fixed ctrl-{<,>,+,-} for resizing docks in addition to panes (#23874; thanks AidanV).
  • AI: Corrected Github Copilot o3-mini context length (#24152; thanks chapel).
  • AI: Fixed an issue where the inline_completions > disabled_globs setting would not be respected when manually requesting a completion (editor: Show inline completion) (#24121).
  • AI: Fixed usage of nonquantized models with LM Studio (#24054; thanks @cborup).
  • Vim: Fixed an issue where doing line-wise operations in vim mode on the last line of a file with no trailing newline would not work properly (#24409).
  • Vim: Fixed //?, n/N, gn/gN,*/# in project search results (#23819).
  • Vim: Fixed navigating to end of line with inlay hints (#23975).
  • Vim: Fixed an issue where changing the case of an object at the end of the line would not change the case of the last character in the object (#24163).
  • Vim: Fixed a bug where around word operations were selecting indentation (#24635; thanks 5brian).