Releases: zed-industries/zed
v0.198.0-pre
This week's release includes performance improvements for projects with large numbers of repositories, memory optimization for GPU rendering, enhancements to the keymap editor's keystroke input and layout, Git stash/pop functionality through the Git panel, and Vim mode support for the :norm
command.
Features
- Keymap Editor: Added a short timeout to the stop recording keybind handling in the keystroke input, so that it is now possible using the default bindings as an example (custom bindings should work as well) to search for/enter a binding ending with
escape
(with no modifier), pause for a moment, then hitescape escape escape
to stop recording and search for/enter a keystroke ending withescape
. (#35289) - Keymap Editor: Made the keymap editor denser, improving how easy you can parse it at a glance. (#35236)
- Windows: Searching Windows paths is now possible with a forward slash. (#35198)
- Improved support for keyboard-based dock show/hide in Jetbrains keymap. (#35234)
- Added collapse functionality to outline entries, allowing you to collapse/expand sections in the outline view. (#33490; thanks NRodriguezcuellar)
- Added a new
expand_outlines_with_depth
setting to customize how deep the tree is expanded by default when a file is opened. (#33490; thanks NRodriguezcuellar) - Added support for closing docks (sidebars) with
shift-escape
in the Jetbrains keymaps. (#35230) - Added
editor: convert to sentence case
. (#35015) - Added icon for SurrealQL (
.surql
) files. (#34855; thanks ThatOneCalculator) - Improved Zed's performance in projects with large number of repositories. (#35052)
- Improved highlighting of regex errors in search dialogs. (#35001)
- Improved display of environment variables in LSP Logs: Server Info view. (#34971)
Git
- Added a menu entry on the git panel to git stash and git pop stash. (#32821; thanks AlvaroParker)
- Improved support for GitHub remote URLs where the username/organization is preceded by an extra
/
to match the behavior ofgit
,gh
andgithub.com
. (#34134; thanks zacharyhamm)
Vim
- Added support for
:norm
. (#33232; thanks AidanV) - Allowed for Vim and Zed-style modified keys specified in issue (#33232; thanks AidanV):
- Vim style and zed style
- Differs from Vim in how multi-line is handled:
- Vim is sequential
- Zed is combinational (with multi-cursor)
- Improved insert in
helix_mode
when a selection exists to better match helix's behavior: collapse selection to avoid replacing it. (#34765; thanks praguevara) - Improved append (
insert_after
) to better match helix's behavior: move cursor to end of selection if it exists. (#34765; thanks praguevara)
Languages
- Python: Zed now reports a slightly different set of workspace folders for Python projects to work around quirks in handling of multi-lsp projects with virtual environment. This behavior will be revisited in the near future. (#35243)
- Added support for running Go benchmarks named "Benchmark". (#35167; thanks rfratto)
Bug Fixes
- Agent: Fixed duplicated settings item in the agent panel as well as improved copy for the setting to allow running commands without permission. (#35120)
- Agent: Fixed delay when loading keybindings in the Agent panel settings. (#34954; thanks imumesh18)
- Fixed unnecessary Ollama model loading. (#35032; thanks etimvr)
- Hide Copilot commands when AI functionality is disabled. (#35055; thanks injust)
- JavaScript/TypeScript tasks: Fixed handling of Vitest/Jest tests with regex-specific characters in their name. (#35090)
- Debugger: Fixed a bug where a Go debug session could not be stopped if no breakpoint was ever hit. (#35190)
- Git: Fixed Git commit editor being searchable. (#35099)
- Search: Fixed a bug where regex search would close parenthesis automatically. (#35005)
- Fixed replace command on helix mode: now it actually replaces what was selected and keeps the replaced text selected to better match helix. (#34789; thanks praguevara)
- Fixed warm-related panic happening during startup. (#35319)
- Fixed a bug where updates to the bottom dock layout setting would not be applied until a restart. (#35308)
- Fixed various issues with handling indentation in Bash. (#35116)
- Fixed an issue where Zed would sometimes allocate excessive memory for GPU rendering. (#34992)
- Fixed
~
not being expanded correctly incwd
field of task definitions. (#35097) - Fixed issue where
pane: reveal in project panel
action was not working if the entry was behind sticky items. (#35067) - Fixed issue with auto-height layouts where horizontal autoscroll is triggered right before text wraps. (#34564; thanks djsauble)
- Fixed an issue where terminal breadcrumbs would not react instantly to settings changes. (#35016)
- Fixed an issue where
editor: move line up
action sometimes crashed if the cursor was at the end of a line beside a fold marker. (#34982) - Linux: Fixed switching from client side decoration to server side decoration on Wayland. (#35151; thanks marius851000)
Breaking Changes and Notices
- Agent: Renamed the "open configuration" action to "open settings" for better discoverability and consistency. (#35329)
v0.197.3
This week's release includes Magistral support for Ollama, a screen selector dropdown for picking which screen to share when collaborating through Zed, an option to disable all AI features in Zed, automatic retries on more failed requests in the Agent panel, debugger data breakpoint access type specification, improvements to the keymap editor, and a new action to diff the current selection against the clipboard contents.
Features
- Added screen selector dropdown to screen share button. (#31506)
- Added 25+ keybinds to the macOS and Linux/Windows JetBrains compatibility keymaps. (#34641)
- Added
panel.sticky_entry.background
theme selector for modifying project panel entries when they become sticky when scrolling and overlap with entries below them. (#34655; thanks bcomnes) - Added
none
as one of the values forsnippet_sort_order
to completely disable snippet completion. (#34565; thanks zeux) - Keymap Editor: Made keystroke search matches match based on ordered (not necessarily contiguous) runs. For example, searching for
cmd shift-j
will matchcmd-k cmd-shift-j alt-q
andcmd-i g shift-j
but notalt-k shift-j
orcmd-k alt-j
.
Agent
- The Agent panel now automatically retries failed requests under more circumstances. (#34842)
- Added support for adding multiple OpenAI API compatible providers. (#34212)
- Added the
use_modifier_to_send
setting, which makes holding a modifier (cmd
/ctrl
), together withenter
, required to send a new message. (#34709, #34866) - Improved Bedrock streaming by eliminating response buffering delays. (#33931; thanks tiagoq)
- Added setting to disable all AI features (
"disable_ai": true
). (#34896) - Agent: Added magistral support to ollama. (#35000; thanks @versecafe)
- Agent: Added support for magistral-small and magistral-medium. (#34983)
- Agent: Added support for Mistral Devstral Medium. (#34888)
- Agent: Context servers will now be spawned in the currently active project root. (#35271)
- Agent: The edit tool can now access files outside the current project, but only if the user grants it permission to. (#35221)
- LMStudio: Display specific backend error messaging on failure rather than generic ones (#34538)
Debugger
- Added support for Go subtest runner with raw string names. (#34636; thanks Spissable)
- Added support for specifying a data breakpoint's access type - Read, Write, Read & Write. (#34639)
Git
- Added an
editor: diff clipboard with selection
action. (#33283) - Added git
--signoff
support. (#29874; thanks ericcornelissen) - Improved the git
--amend
experience. (#29874; thanks ericcornelissen) - Improved git panel to persist width as well as amend and signoff on a per-workspace basis. (#29874; thanks ericcornelissen)
Vim
- Added
;
key binding to collapse the current text selection in Helix mode. (#34315; thanks djsauble) - Added
editor::BlameHover
action for showing the git blame popover under the cursor. By default bound toctrl-k ctrl-b
and tog h
in vim mode. (#32096; thanks Daste745)
Languages
Bug Fixes
- Agent: Fixed a crash that occurred when jumping from a message to a thread included in the context. (#34843)
- Agent: Fixed an issue where clicking on "Start New Thread" in the agent configuration would not always switch to the correct provider/model. (#34708)
- Agent: Fixed a regression where the keybindings for the
New Thread
andNew Text Thread
entries were missing from theNew Thread...
menu. (#34967) - Debugger: Fixed debug console persist to history when reusing a previous item. (#34893; thanks RemcoSmitsDev)
- Debugger: Fixed built-in JavaScript debug tasks were not working due to missing
type
field value. (#34894; thanks RemcoSmitsDev) - Debugger: Fixed attaching with DebugPy. DebugPy is now installed automatically from pip (instead of GitHub), unless it is present in active virtual environment. Additionally this should resolve any startup issues with missing .so on Linux. (#34706)
- Vim: Fixed an issue so
ctrl-w
/ctrl-h
andctrl-u
work in pickers on Linux when Vim mode is enabled. (#34840) - Linux: xkb-defined hotkeys for arrow keys should behave as expected. (#34823; thanks stillonearth)
- Linux: Fixed an issue where button clicks wouldn't work on startup until clicked on the center pane. (#34590)
- Wayland/Linux: Made resizing smoother on Wayland/Linux. (#34760; thanks sethdusek)
- Fixed search filter patterns on remote projects. (#34748; thanks maan2003)
- Fixed an issue where closing remote workspace restores last local workspace on startup. (#34931)
- Fixed an issue where the last removed folder from workspace used to reopen on Zed startup. (#34925)
- Fixed empty pane being left after a binary file is dropped into a new pane. (#34908)
- Fixed an issue where redo would not work after buffer formatting (including formatting on save) when the formatting did not result in any changes. (#34898)
- Fixed textmate keymap misbehaving in certain contexts. (#34895)
- Fixed an issue where scrollbars would appear in containers where no scrolling was possible. (#34832)
- Fixed
workspace: open in terminal
action not working with paths that contain spaces in SSH projects. (#34844) - Fixed an issue where accepting variable completion in PHP would result in a double $ sign in the prefix. (#34726)
- Fixed an issue where the cursor doesn't move up and down on arrow keys when no completions are shown. (#34678)
- Fixed the issue where the green (+) cursor style sometimes appears when navigating to the definition in buffer. (#34638)
- Fixed regressions with loading environment variables in nushell (#35002, #35054)
- Fixed project panel not opening when
project panel: rename
andproject panel: duplicate
actions are triggered from workspace. (#34988)
Breaking Changes and Notices
- The context predicates in the keymap file now handle ! and > differently. Before this change ! meant "this node does not match", now it means "none of these nodes match". Before this change > meant "child of", now it means "descendent of". We do not expect these changes to break many keymaps, but they may cause subtle changes for complex context queries. (#34664)
- Renamed
CloseInactiveItems
action toCloseOtherItems
for naming consistency. (#34676)
v0.197.3-pre
- Context servers will now be spawned in the currently active project root. (#35271)
- Improved LSP code lens handling. (#35207)
- Fixed tasks that leaked despite workspace window close. (#35246)
- Fixed a regression with loading environment variables in nushell. (#35054)
- Keymap Editor: Fixed an issue introduced in v0.197.2 whereby modifier keys would show up and not be removable while recording keystrokes in the keybind edit modal. (#35237)
v0.196.7
- Improved LSP code lens handling. (#35207)
- Fixed tasks that leaked despite workspace window close. (#35246)
- Keymap Editor: Fixed an issue where the modifiers used to activate keystroke search would appear in the keystroke search. (#35208)
- Keymap Editor: Made it possible to search for repeat modifiers, such as a binding with
cmd-shift cmd
. (#35208) - Keymap Editor: Made keystroke search matches based on ordered (not necessarily contiguous) runs. For example, searching for
cmd-shift-j
will matchcmd-k cmd-shift-j alt-q
andcmd-i g shift-j
but notalt-k shift-j
orcmd-k alt-j
. (#35208) - Keymap Editor: Fixed the clear keystrokes binding (
delete
by default) not working in the keystroke input. (#35208)
v0.197.2-pre
- Agent: The edit tool can now access files outside the current project, but only if the user grants it permission to. (#35221)
- lmsudio: Display specific backend error messaging on failure rather than generic ones (#34538)
- Keymap Editor: FIxed an issue where the modifiers used to activate keystroke search would appear in the keystroke search
- Keymap Editor: Made it possible to search for repeat modifiers, such as a binding with
cmd-shift cmd
- Keymap Editor: Made keystroke search matches match based on ordered (not necessarily contiguous) runs. For example, searching for
cmd shift-j
will matchcmd-k cmd-shift-j alt-q
andcmd-i g shift-j
but notalt-k shift-j
orcmd-k alt-j
- Keymap Editor: Fixed the clear keystrokes binding (
delete
by default) not working in the keystroke input (#35218) - Fixed a regression with loading environment variables in nushell (#35002)
- Fixed project panel not opening when
project panel: rename
andproject panel: duplicate
actions are triggered from workspace. (#34988)
v0.197.1-pre
- Agent: Added magistral support to ollama. (#35000; thanks @versecafe)
- Agent: Added support for magistral-small and magistral-medium. (#34983)
- Agent: Added support for Mistral Devstral Medium. (#34888)
- Agent: Fixed a bug where the
Follow Agent
button was disabled incorrectly in some states. (#34978) - Agent: Fixed a regression where the keybindings for the
New Thread
andNew Text Thread
entries were missing from theNew Thread...
menu. (#34967) - Fixed some bugs with
editor: diff clipboard with selection
. (#34999)
v0.196.6
- Agent: The Agent panel now automatically retries failed requests under more circumstances. (#34842, #35037)
- Agent: Fixed a crash that occurred when jumping from a message to a thread included in the context. (#34843)
- Linux: Fixed a regression where actions bound to
ctrl-0..9
,ctrl-[
,ctrl-^
, inkeymap.json
, no longer worked. (#35028)
v0.197.0-pre
This week's release includes a screen selector dropdown for picking which screen to share when collaborating through Zed, an option to disable all AI features in Zed, automatic retries on more failed requests in the Agent panel, Go subtest runner improvements, debugger data breakpoint access type specification, a new action to diff the current selection against the clipboard contents, and many more keybindings under the JetBrains keymap.
Features
- Added screen selector dropdown to screen share button. (#31506)
- Added 25+ keybinds to the macOS and Linux/Windows JetBrains compatibility keymaps. (#34641)
- Added
panel.sticky_entry.background
theme selector for modifying project panel entries when they become sticky when scrolling and overlap with entries below them. (#34655; thanks bcomnes) - Added
none
as one of the values forsnippet_sort_order
to completely disable snippet completion. (#34565; thanks zeux)
Agent
- The Agent panel now automatically retries failed requests under more circumstances. (#34842)
- Added support for adding multiple OpenAI API compatible providers. (#34212)
- Added the
use_modifier_to_send
setting, which makes holding a modifier (cmd
/ctrl
), together withenter
, required to send a new message. (#34709, #34866) - Improved Bedrock streaming by eliminating response buffering delays. (#33931; thanks tiagoq)
- Added setting to disable all AI features (
"disable_ai": true
). (#34896)
Debugger
- Added support for Go subtest runner with raw string names. (#34636; thanks Spissable)
- Added support for specifying a data breakpoint's access type - Read, Write, Read & Write. (#34639)
Git
- Added an
editor: diff clipboard with selection
action. (#33283) - Added git
--signoff
support. (#29874; thanks ericcornelissen) - Improved the git
--amend
experience. (#29874; thanks ericcornelissen) - Improved git panel to persist width as well as amend and signoff on a per-workspace basis. (#29874; thanks ericcornelissen)
Vim
- Added
;
key binding to collapse the current text selection in Helix mode. (#34315; thanks djsauble) - Added
editor::BlameHover
action for showing the git blame popover under the cursor. By default bound toctrl-k ctrl-b
and tog h
in vim mode. (#32096; thanks Daste745)
Languages
Bug Fixes
- Agent: Fixed a crash that occurred when jumping from a message to a thread included in the context. (#34843)
- Agent: Fixed an issue where clicking on "Start New Thread" in the agent configuration would not always switch to the correct provider/model. (#34708)
- Debugger: Fixed debug console persist to history when reusing a previous item. (#34893; thanks RemcoSmitsDev)
- Debugger: Fixed built-in JavaScript debug tasks were not working due to missing
type
field value. (#34894; thanks RemcoSmitsDev) - Debugger: Fixed attaching with DebugPy. DebugPy is now installed automatically from pip (instead of GitHub), unless it is present in active virtual environment. Additionally this should resolve any startup issues with missing .so on Linux. (#34706)
- Vim: Fixed an issue so
ctrl-w
/ctrl-h
andctrl-u
work in pickers on Linux when Vim mode is enabled. (#34840) - Linux: xkb-defined hotkeys for arrow keys should behave as expected. (#34823; thanks stillonearth)
- Linux: Fixed an issue where button clicks wouldn't work on startup until clicked on the center pane. (#34590)
- Wayland/Linux: Made resizing smoother on Wayland/Linux. (#34760; thanks sethdusek)
- Fixed search filter patterns on remote projects. (#34748; thanks maan2003)
- Fixed an issue where closing remote workspace restores last local workspace on startup. (#34931)
- Fixed an issue where the last removed folder from workspace used to reopen on Zed startup. (#34925)
- Fixed empty pane being left after a binary file is dropped into a new pane. (#34908)
- Fixed an issue where redo would not work after buffer formatting (including formatting on save) when the formatting did not result in any changes. (#34898)
- Fixed textmate keymap misbehaving in certain contexts. (#34895)
- Fixed an issue where scrollbars would appear in containers where no scrolling was possible. (#34832)
- Fixed
workspace: open in terminal
action not working with paths that contain spaces in SSH projects. (#34844) - Fixed an issue where accepting variable completion in PHP would result in a double $ sign in the prefix. (#34726)
- Fixed an issue where the cursor doesn't move up and down on arrow keys when no completions are shown. (#34678)
- Fixed the issue where the green (+) cursor style sometimes appears when navigating to the definition in buffer. (#34638)
Breaking Changes and Notices
- The context predicates in the keymap file now handle ! and > differently. Before this change ! meant "this node does not match", now it means "none of these nodes match". Before this change > meant "child of", now it means "descendent of". We do not expect these changes to break many keymaps, but they may cause subtle changes for complex context queries. (#34664)
- Renamed
CloseInactiveItems
action toCloseOtherItems
for naming consistency. (#34676)
v0.196.5
This week's release includes a new keymap editor view, a memory view for the debugger, support for data breakpoints, improved user/agent collaborative editing where the agent now receives diffs of user edits, automatic retry for more Agent errors, and the ability to rename, delete, and duplicate files via the command palette when focused on the workspace.
Features
- Introduced a new keymap editor view:
- Search for existing actions via keystroke input
- Set keybindings via keystroke input
- Added support for streaming LSP workspace diagnostics. (#34022; thanks 4teapo)
- Added
project panel: rename
,project panel: delete
andproject panel: duplicate
actions to workspace. (#34478) - Added
editor: toggle focus
action, which focuses the last active editor pane item. (#34495) - Added
panel.sticky_entry.background
theme selector for modifying project panel entries when they become sticky when scrolling and overlap with entries below them. (#34655; thanks bcomnes) - Linux / Windows: Added
show_menus
setting to always show menu bar. (#34139) - macOS: Added default mappings for
alt-delete
andcmd-delete
in Terminal (delete word to right; delete to end of line). (#34493) - Added ability to fold all excerpts in a multibuffer (
alt-click
) and in singleton bufferseditor::ToggleFoldAll
. (#34317) - Added
severity
argument toeditor::GoToDiagnostic
,editor::GoToPreviousDiagnostic
,project_panel::SelectNextDiagnostic
andproject_panel::SelectPrevDiagnostic
actions. (#33995; thanks happenslol) - Added Google Repo
.repo
folders to defaultfile_scan_exclusions
. (#34431) - Improved performance with the minimap enabled. (#33067)
- Improved behavior when clicking a sticky item in the Project Panel so it scrolls just enough for the item to no longer be sticky. (#34367)
Agent
- Added a chip communicating which Zed plan you're subscribed to in the agent panel settings view. (#34503)
- Added support for clicking on the header of the read file tool to jump to the exact file location. (#33161; thanks max-frai)
- Enhanced
read_file
tool call result message for long files. (#34542; thanks Damecek) - Improved user/agent collaborative editing: agent now receives diffs of user edits. (#34487)
- Automatic retry for more Agent errors. (#34473)
- Whenever the Agent stops, play a sound (if configured) and show a notification (if configured) if the Zed window was in the background. (#34473)
- Preserve unsent chat message text when creating a new thread. (#34150)
- Disabled
project_notifications
by default for the time being. (#34619) - Only auto-retry Agent requests when Burn Mode is enabled. (#34669)
Debugger
- Added memory view. (#33955)
- Added support for data breakpoints. (#34391)
- Added support for shutting down debug sessions while they're booting up. (#34362)
- Added support for environment variable files in the Go debugger through the envFile setting. (#34300; thanks Spissable)
- Improved the appearance of JavaScript sessions in the debug panel's session list. (#34322)
- Multi-line debug inline values are now truncated. (#34305)
- Made the semantics of the
dap.$ADAPTER.binary
setting more intuitive for theJavaScript
andDebugpy
adapters. In the new semantics, this should be the path todapDebugServer.js
forJavaScript
and the path to thesrc/debugpy/adapter
directory forDebugpy
. (#33926)
Git
- Added support for
shift-click
ing to stage a range of entries in the git panel. (#34296) - Added support for "Open Pull Request" on more platforms. (#33833; thanks stephenhillier)
- Improved merge conflict buttons clarity by changing labels to "Use HEAD" and "Use Origin". (#34297)
- Passphrase prompts from GPG to unlock commit signing keys are now shown in Zed. (#34096)
Terminal
- Python: Value of
activate_script
setting is now automatically inferred based on the kind of shell the user is running with. (#33205; thanks rv-ragul) - Allowed for configuration and use of
pyenv
Python activation script. (#33119; thanks theelderbeever) - Automatic contrast adjustment in terminal is no longer applied to decorative characters used in block art. (#34238)
Bug Fixes
- Agent: Fixed token count not getting shown in the TextThread. (#34485; thanks imumesh18)
- Agent: Fixed a potential crash when fetching large non-HTML files. (#34253)
- Agent: Fixed an issue where the agent panel notification would linger on even after you closed the window. (#34230)
- Agent: Fixed an issue with tool calling with the Mistral provider (thanks @sviande and @armyhaylenko). (#34692)
- Debugger: Fixed autocompletion not always replacing the correct search text. (#33959; thanks RemcoSmitsDev)
- Lua: Fixed
--[[
incorrectly extending--
upon a new line. (#34156) - Linux: Fixed a bug where
file_finder::Toggle
was not scrolling forward. (#34380; thanks somtooo) - Linux X11: Fixed the issue where the spacebar doesn't work with multiple keyboard layouts. (#34514)
- Fixed the issue where the green (+) cursor style (e.g. drag and drop text) sometimes appeared when navigating to the definition and then back to the previous buffer. (#34557)
- Fixed the positioning of the terminal inline assistant when it's deployed after clearing the terminal. (#34465)
- Fixed editor freeze from large LSP workspace diagnostic responses. (#34022; thanks 4teapo)
- Fixed language server shutdown process to prevent race conditions and improper termination by waiting for shutdown confirmation before closing connections. (#33417; thanks imumesh18)
- Fixed snippets from extensions not working. (#34450)
- Fixed an issue where pane activations would sometimes have a brief delay, causing a flicker in the process. (#33973; thanks AlvaroParker)
- Fixed an issue where interacting with blocks in the editor would sometimes not properly work with the minimap enabled. (#33067)
- Fixed automatic contrast adjustment for Powerline separators. (#34417)
- Fixed JS/TS outlines to show generator functions. (#34388; thanks eventualbuddha)
- Fixed a bug where the
Close others
context menu action was keeping the active tab open instead of the right-clicked tab. (#34355; thanks vipexv) - Resolved an issue where the ESLint language server returned an empty string for the CodeDescription.href field in diagnostics, leading to missing diagnostics in editor. (#33814; thanks imumesh18)
- Fixed horizontal scrolling not working for sticky items in the Project Panel. (#34367)
- F...
v0.196.5-pre
- agent: Fixed an issue with tool calling with the Mistral provider (thanks @sviande and @armyhaylenko) (#34692)
- Fixed an issue where folding the topmost buffer in a multibuffer would cause the header to jump slightly. (#34721)