This week's release includes support for Claude Haiku 4.5 in the agent panel, git diff view support for stash entries, Settings UI improvements including validation warnings and searchable theme dropdowns, language enhancements for Markdown, JavaScript/TypeScript, Rust, C/C++, and Vue 3, Vim improvements including filename autocomplete, and performance optimizations for startup time and font rendering.
Features
AI
- Agent: Added Claude Haiku 4.5. (#40298; thanks versecafe)
- Registered
.rules
,.cursorrules
,.windsurfrules
, and.clinerules
as Markdown files. (#40614)
Git
- Added git diff view for stash entries. (#38280; thanks AlvaroParker)
- Added toolbar on git diff view for stash entries. (#38280; thanks AlvaroParker)
- Added prompt before executing a destructive stash action on diff view. (#38280; thanks AlvaroParker)
- Added way to hide git blame popover by pressing the escape key. (#40549; thanks timvermeulen)
- Added the
editor::CollapseAllDiffHunks
action, mirroring the existingeditor::ExpandAllDiffHunks
. (#40668; thanks FloppyDisco) - Added disabled state for "Uncommitted Changes" toolbar buttons when there are no changes present. (#39909; thanks Simek)
Settings UI
- Added a warning banner when the settings file you are actively editing is in a broken or invalid state. (#40823)
- Added the ability to search for theme and icon themes in their respective fields. (#40829)
- Changed the stepper increment to 0.05 for centered padding left/right. (#40751; thanks delvin02)
- Added window controls to the settings window on Linux. (#40706)
- Added auto-scroll to reveal items in navigation bar and window when tabbing. (#40734)
- Adjusted default step values for number input UI element used for changing Font Weight. (#40408; thanks Simek)
Languages
- Markdown Preview: Improved table elements styling. (#39190; thanks Simek)
- Markdown Preview: Added default keybindings
gt
for navigating to the next tab andgT
for navigating to the previous tab in vim mode. (#39854; thanks Pranav2612000) - Markdown: Improved decoration logic for links. (#39905; thanks Simek)
- JS/TS/TSX: Improved granularity of keyword highlighting: Themes can now specify
keyword.control
for control flow keywords likeif
,else
,return
, etc. (#39801; thanks azeier) - Rust/C/C++: Added the ability to separately highlight control flow keywords for users and theme authors via the
keyword.control
syntax property. (#39683; thanks Hmikihiro) - JS/TS: Improved symbol outline panel. (#39797; thanks ogdakke)
- Vue: Added support for Vue language server version 3. Know more here. (#40651)
- Improved text color in LSP document color highlight. (#39372; thanks huacnlee)
- Added comment language injections for builtin languages. This enables highlighting of
TODO
s and similar notes with the comment extension installed. (#39884; thanks thedadams)
Vim
- Made Vim mode indicator themeable. (#39813; thanks willeyh-git)
- Added filename autocomplete for Vim commands. (#36332; thanks AidanV):
- write, edit, split, vsplit, tabedit, tabnew
- Helix: Added
vim::HelixSubstitute
andvim::HelixSubstituteNoYank
with better imitations of helix's behavior. (#38735; thanks jneem) - Helix: Improved multi-cursor creation and deletion. (#38090; thanks fantacell)
Windows
- Improved recently open folders in WSL. (#40375)
- Bound
ctrl-c
(when you have a selection) andctrl-v
to copy and paste by default in the windows terminal.
Other
- Improved startup time on systems with slow process spawning capabilities. (#40774)
- Improved editor font rendering on lodpi displays. (#40401)
- Added
--reuse
(-r
) CLI flag to replace the workspace in an existing window instead of opening a new one. (#38131; thanks mateonoel2) - Added a
zed: reveal log in file manager
action to the command palette. (#40815) - Added line ending indicator to the status bar (disabled by default; enabled by setting
status_bar.line_endings_button
totrue
). (#39609; thanks kitt-cat) - Added
workspace::NewFileSplit
action, which can be used to programmatically split the editor in the provided direction. (#39726; thanks riandrake) - Added
open_file_on_paste
setting to configure auto opening of file on paste in the project panel. (#40331; thanks zeld-a) - Added the ability to run search actions when a modal is currently active. (#39446; thanks timvermeulen)
- Added
title_bar.window_controls_position
setting to customize window control button placement on Linux ("left"
for macOS style or"right"
for Windows style). (#38834; thanks sousaakira) - Added basic ico support, improved unsupported image handling. (#40822)
- Added more bindings for the Emacs keymap. (#40101; thanks Affonso-Gui)
- Improved line and column number handling for paths in remotes. (#40410)
- Improved scrollbar colors for Gruvbox theme. (#38145; thanks dangooddd)
- Changed the workspace key context to now include the state of the 3 docks. (#40454; thanks FloppyDisco)
- Increased affordance of the download button in each extension card in the extensions page. (#40795)
- Aligned appearance of path displayed by Image Viewer breadcrumbs with other panes. (#40601; thanks Simek)
- Updated jsonc files' icon. (#40726; thanks ruxwez)
- Excluded port-forward flags in
scp
commands for file and directory uploads. (#40402; thanks yusufrahadika) - Reworked editors to register and query buffers on scroll. (#40388)
- Removed trash option in remote projects. (#40838)
Bug Fixes
- Windows: Fixed SSH jumphost connection issues. (#40713)
- Windows: Fixed Right Alt key not working in keybindings. (#40536; thanks jvb0)
- Windows: Fixed an issue where the project diff view did not work for multi-repo projects when using WSL or SSH remoting. (#40535)
- Windows / Settings UI: Fixed an issue where the settings popup would keep the process alive when closing Zed. (#39790; thanks ddoemonn)
- Settings UI: Fixed an issue where tabbing to the nav bar from the search bar while the nav bar was scrolled would result in the first visible nav entry being selected, instead of the literal first nav entry. (#40806)
- Settings UI: Fixed an issue where scrolling the selected nav entry off screen would cause the keyboard shortcut hint for the focus nav / focus content binding to disappear. (#40806)
- Settings UI: Fixed an issue where text input controls could not be focused via the keyboard. (#40806)
- Settings UI: Limited the value range in the settings UI between a minimum of 0.00 and a maximum of 0.40. (#40751; thanks delvin02)
- Settings UI: Fixed editing fields from settings-ui causing IEEE 754 floating error in
settings.json
file. (#40677; thanks dongdong867) - Settings UI: Fixed stepper buttons (+/-) to the Inactive Opacity setting for 0.1 increment adjustments. (#40477; thanks delvin02)
- Settings UI: Fixed misplaced comma in the autoclose description from: "when you type (, Zed will ...)" -> "when you type, (Zed will ...)". (#40519; thanks 44David)
- Git: Fixed branch names not truncating properly in git branch picker. (#40598; thanks Rayato159)
- Git: Fixed branch picker not closing immediately after a branch is selected. It now closes without waiting for the branch switch to complete. (#39725; thanks mattermoran)
- Git: Fixed commit view for merge commits. (#38280; thanks AlvaroParker)
- Markdown Preview: Fixed block quote last child bottom padding. (#40343; thanks huacnlee)
- Fixed an issue where the buffer would not regain focus when clicked while a filename edit was in progress in the project panel. (#40747; thanks SO9010)
- Fixed task terminal split not working correctly. (#40824)
- Fixed worktree renames not working on windows. (#40804)
- Fixed an issue where Zed hanged when editing certain Tailwind class names. (#40791)
- Fixed
max_tabs
setting affecting the terminal pane. (#40740; thanks vipexv) - Fixed file finder display when searching for files in history if you had several worktrees opened in a workspace. It now displays the worktree root name to avoid confusion if you have several files with same name in different worktrees. (#40415; thanks bnjjj)
- Fixed
textDocument/signatureHelp
implementation not being LSP compliant. (#40707) - Fixed the Yarn SDK detection when the Zed pwd is different from the opened folder. (#40062; thanks arcanis)
- Fixed an issue where extensions wouldn't work when SSHing into a remote from older macOS versions. (#40510)
- Fixed worktree names not updating when renaming the root folder on windows. (#40639)
- Fixed an issue where failing to spawn a terminal would not provide any feedback. It now renders a UI with an error message and links to settings. (#40246)
- Fixed
extension
in keymap context being empty for single file worktree. (#40425) - Fixed an issue where double-clicking empty space in the project panel wouldn't create a new file. (#40503)
- Fixed text wrapping for long URLs. (#35724; thanks huacnlee)
- Fixed an issue with the settings migration to flatten
code_actions
format steps where comments would cause enabled code actions to be omitted from the migrated settings. If you were affected, restoring the settings file backup and allowing the migration to re-run will result in a valid settings file. (#40303) - Fixed an issue where automated settings and keymap file updates would occasionally assume 4-space indentation. (#40303)
- Fixed shell environment fetching failing with nu shell. (#40275)
- Fixed virtual env REPLs not showing up. (#40154; thanks abdelq)
- Fixed an issue where non-project files would be hidden when filtering in the file finder. (#39911; thanks bnjjj)
- Fixed an issue where Zed could be used before auto-update completed when collaborating. (#40198)
Breaking Changes and Notices
- Python: Fixed an issue where multiple language servers were enabled by default. Now only
basedpyright
andruff
are enabled by default when opening Python files. If you prefer one of the others, see the docs to configure them. (#40604) - Vim: Changed
ctrl+w
+shift-[hjkl]
in Vim mode to move the split to span the entire border, aligning with Vim's behavior. (#39123; thanks tie) - Updated both the
editor: add selection above
andeditor: add selection below
commands to ignore soft wrapped lines. If you wish to restore the old behavior, add the following to your keymap file. (#40190):{ "context": "Editor", "bindings": { "cmd-alt-up": ["editor::AddSelectionAbove", { "skip_soft_wrap": false }], "cmd-alt-down": ["editor::AddSelectionBelow", { "skip_soft_wrap": false }] } }