Today, we're kicking off a new beta release: Agentic Editing in Zed. If you want access to it, join the beta waitlist.
Enhancements
- Added support for automatically inserting a newline when hitting enter between opening and closing tags in JSX/TSX (#27618)
- Improved restoration of editor state when files are reopened (folds, selections, scroll position). (#27672)
- Added persistent history of command palette usages. (#26948; thanks KyleBarton)
- Added correct syntax highlighting for use bounds and async closures in Rust. (#27875)
- Mouse cursor now auto-hides in more circumstances. This behavior can be changed by setting
hide_mouse
toon_typing_and_movement
,on_typing
ornever
. - Improved how upper-case characters are handled in keybinds. "Special" keys such as the function keys,
control
,shift
, etc. are now parsed case-insensitively, so for exampleF8
,CTRL
,SHIFT
are now acceptable alternatives tof8
,ctrl
, andshift
when declaring keybindings. Additionally, upper-case (ASCII) characters will now be converted explicitly toshift
+ the lowercase version of the character, to match the Vim behavior. (#27813) - Keybinds in context menus will now be dimmed if the corresponding action is currently disabled (#27693; thanks MrSubidubi)
- Added ability to double click on empty pane to open a new file (#27521; thanks loczek)
- Added support for project panel hiding gitignored files. Use the
ProjectPanel::ToggleHideGitIgnore
action to toggle the newproject_panel.hide_gitignore
setting. (#26636; thanks AlvaroParker)
Git
- Added the ability to show past commits in Zed. You can view the most recent commit by clicking its message in the commit panel. And when viewing a git blame, you can show any commit by clicking its sha. (#27636)
- Ensured that only one repository is shown in the git UI when two subdirectories of a common repository root are open in Zed. (#27884)
- Zed will now use
GIT_ASKPASS
if you already have one set instead of overriding with our own. Fixesgit push
in Coder. (#27681) - Changed the git panel to prompt before restoring a file. (#27525)
- Fixed git repositories being added for files outside the project. (#27894)
- Fixed a bug where the git panel displayed a commit's committer in place of its author. (#27856)
- Fixed an issue where Git committer was displayed instead of Git author. (#27628)
Languages
- Python: Improved detection of virtualenvwrapper environments in work trees. (#26759; thanks elprans)
- Python: Improved highlighting of function parameters in Python. (#26815; thanks MrSubidubi)
- Python: Improved display of environments in toolchain selector. (#26741; thanks elprans)
Vim
- Added
:ls
and:buffers
. (#27797; thanks 5brian) - Added
:options
and:map
. (#27798; thanks 5brian) - Added
g?
convert toRot13
/Rot47
. (#27824; thanks 0x2CA) - Fixed
d]}
to not delete the closing brace (#27786) - Fixed
d}
from the start of the line to not delete the paragraph separator (#27786) - Fixed
d}
from the middle of the line to not delete the final newline (#27786) - Fixed
space
on multibyte characters at end of line. (#27860; thanks mastion) - Fixed
o
andshift-o
in visual block mode. (#27678; thanks mastion) - Added support for
Terminal && vi_mode
as keybinding context to detect when the terminal is in vi_mode. (#26236; thanks iyht)
AI
- Added support for DeepSeek R1 hosted on AWS Bedrock. (#27495; thanks 5herlocked)
- Fixed an issue where context servers defined in project settings would not be respected in some scenarios. (#27633)
Bug Fixes
- Fixed an issue where fuzzy matching in file finder did not properly prioritize matches in file names. (#27937)
- Fixed padding issue with the signature popovers. (#27734; thanks WeetHet)
- Fixed code actions tooltip opening on top of code actions menu. (#27809)
- Fixed the mouse cursor not hiding while typing in Vim mode. (#27804)
- Fixed a bug where unchanged buffers were marked as conflicting if their files were deleted outside of Zed (#27701)
- Fixed an issue where accepting LSP snippet completion would insert the label instead of expanding the snippet (#27630)
- Fixed an issue where
workspace::ToggleRightDock
would open the assistant panel even when disabled via settings (#27215; thanks MrSubidubi) - Collaboration: Fixed a bug where AirPods had bad sound quality. (#27126)
- Collaboration: Fixed a bug where Zed might hang when muting/unmuting/leaving/joining a channel. (#27126)
- Collaboration: Fixed echo cancellation in calls on Linux. (#27126)
- Collaboration: Removed dependency on WebRTC.framework on Mac. (#27126)
- SSH: Fixed remote not restoring when opening for second time. (#27830)
- SSH: Fixed project panel not opening when opening new SSH remote folder. (#27830)
- SSH: Fixed remote clients unable to query custom, lsp_ext, commands (#27775)
- SSH: Fixed trash to work on remotes with no Linux desktop environment configured (#27682)
- Removed a small gap between the editor gutter and horizontal scrollbar. (#24887; thanks MrSubidubi)
- Terminal: Fixed an issue where editor theme colors (
text
,background
) were incorrectly being used instead of terminal theme colors (terminal.{foreground,background}
) (#27617)
Linux Video
- Added the ability to specify which GPU Zed uses on Linux by setting the
ZED_DEVICE_ID
environment variable. You can obtain the device ID of your GPU by runninglspci -nn | grep VGA
which will output each GPU on one line like:
where the device ID here is08:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070] [10de:2484] (rev a1)
2484
. This value is in hexadecimal, so to force Zed to use this specific GPU you would set the environment variable like so:
Make sure to export the variable if you choose to define it globally in aZED_DEVICE_ID=0x2484
.bashrc
or similar
Breaking Changes and Notices
- Renamed
hide_mouse_while_typing
setting tohide_mouse
(#27677) - Keymaps: Upper-case (ASCII) characters will now be converted explicitly to
shift
+ the lowercase version of the character, to match the Vim behavior. (#27813) - Zed now requires clang 16+ to build on macOS. You may need to upgrade your Xcode.