This week's release includes initial notebook execution support (launch kernels and run code cells directly in Zed), zooming and panning in the image viewer, Windows as a supported target for SSH remoting, significantly reduced resource usage when watching filesystem changes on macOS, and the ability to rename terminal tabs via right-click or double-click.
Features
AI
- Agent: Made the message queue feature available for external agents as well. (#47379)
- Agent: Added a menu for inserting context more easily with the mouse in the agent panel. (#47768)
- Agent: Improved
@file completions in agent panel to be more accurate. (#47466) - Agent: Improved double-click word selection in Agent Panel to respect punctuation and language-specific word characters. (#47844)
- Agent: Added a setting for controlling the behavior of the stop button in the terminal tool call card (between cancelling the command to run and the thread, or just the command). (#47521)
- Improved memory usage of large ACP thread diff multibuffers. (#47526)
Git
- Improved the project picker in the Git panel by also displaying the Git status icon on them, to clearly indicate which repos have changes. (#47752; thanks tartarughina)
Languages
- C/C++: Added highlights for
#elifdef,#elifndefdirectives and document comments. (#45672; thanks hokein, #47556; thanks ozacod) - C++: Added first-line language detection for extensionless libc++ headers. (#47443; thanks ozacod)
- C: Updated tree-sitter-c for highlighting attribute specifier. (#47156; thanks ozacod)
- Go: Improved support to run table-test subtests, handling tests without explicitly declaring variables for test scenarios. (#46645; thanks lzakharov)
- Nim: Updated file aliases so icon is shown for
.nims/.nimblefiles. (#47616; thanks ire4ever1190) - TypeScript: Improved keyword syntax highlighting for declarations (
const,let,var,function,class,enum,interface,type) and imports/exports (export,from,import). (#47435; thanks ahcurrier)
Terminal
- Added ability to rename terminal tabs via right-click context menu and double-click. (#45800; thanks tacshi)
Vim / Helix
- Added relative line jump support to go-to-line action via
+/-/f/b/F/B. (#46932; thanks KalaayPT) - Added a
vim.gdefaultsetting to make/g(replace all matches in a line) the default for substitutions, along with:set gdefaultand:set nogdefaultcommands (short forms:gd,nogd). (#47664; thanks bluetech)
Remote Development
- Added configurable remote server cache retention (default 5). (#47202; thanks cppcoffee)
- Improved error handling in the dev container crate to prevent panics. (#47513; thanks KyleBarton)
- Improved parsing of devcontainer CLI output when using earlier versions. (#47403; thanks KyleBarton)
- Improved error messaging to guide user away from opening a dev container from within a remote project. (#47816; thanks KyleBarton)
Windows
- Added support for Windows as a target platform for SSH remoting. (#47460)
- Added "Reveal in File Manager" to the project panel context menu on WSL. (#47288)
Linux
- Relaxed the checks on
xdg_wm_baseto ensure compatibility with Weston 9. (#47185; thanks linghengqian)
macOS
- Zed now uses significantly fewer resources when watching filesystem changes. (#47322; thanks marcocondrache)
REPL / Notebooks
- Added initial notebook execution support. (#43553; thanks MostlyKIGuess)
- NotebookEditor can launch kernels, execute code cells, and display outputs.
- Basic cell operations: run current cell, run all, move up/down, add code/markdown blocks. Keybindings follow Jupyter defaults.
Other
- Added zooming and panning support in the image viewer with zoom in/out, reset, fit-to-view, zoom-to-actual actions, scroll-wheel zoom with modifier, click-and-drag panning, zoom percentage overlay, and toolbar controls. (#43944; thanks MostlyKIGuess)
- Added a menu item in the buffer and tab right-click menu for opening Markdown and SVG files in the preview tab. (#47821)
- Added commands for extending selections to syntax node boundaries, i.e.,
editor: select to start of larger syntax nodeandeditor: select to end of larger syntax node. (#47571; thanks alexispurslane) - Added support for specifying multiple snippets paths in extensions. (#45829)
- Added
project_panel.bold_folder_labelsto show folder names with bold text in the project panel (defaults tofalse). (#47631; thanks zertosh) - Added a menu item to close the current project, going back to a clean window state. (#47365)
- Added support for installing a specific Zed version via the
ZED_VERSIONenvironment variable in the install script (defaults tolatestwhen unspecified). (#45522; thanks mikelneonedwin) - Added "Reopen with Encoding" feature (currently supported for local files). (#46553; thanks tomopumipumi)
- Improved empty workspaces with unsaved files to now restore on startup (hot-exit). (#46557; thanks shfc)
- Improved performance when a large number of files were open by making background diagnostics more efficient. (#47510)
- Improved project search loading UI. (#47620; thanks zertosh)
- Improved memory usage of large git diff multibuffers. (#47524)
- Changed bold UI text to render using Plex SemiBold instead of Bold. (#47725)
- Changed the auto signature popover —
"auto_signature_help": true— to respecthover_popover_delay. (#46745; thanks TheSalarKhan) - Added server notifications auto-dismiss with
"global_lsp_settings": { "notifications": { "dismiss_timeout_ms": 5000 } }setting. (#46708; thanks tomatitito) - Added support for importing VS Code Insiders and VSCodium Insiders user settings (
settings.json). (#47247; thanks maj113) - Block cursor no longer reveals characters within redacted ranges. (#45549; thanks tacshi)
Bug Fixes
- Agent: Fixed old AI text thread sessions failing to open from History when they contain icons that were removed in previous updates. (#47624; thanks lex00)
- Agent: Fixed a bug where the inline assistant feedback buttons were being displayed despite the setting "Enable Feedback" was turned off. (#47382)
- Agent: Fixed cut-off mention creases in the inline assistant. (#47772)
- Agent: Fixed message editor stealing focus from other panels. (#47321; thanks fabianszabo)
- Settings UI: Fixed a bug with the number field rendering of the font weight setting. (#47384)
- Vim/Helix: Fixed bug causing normal-mode vim/helix selections to get expanded during
vim::Scrollcommands. (#47024; thanks jrobsonchase) - Rust: Fixed enum variants with no lower-case being highlighted as constants instead of types. (#45546; thanks tacshi)
- Fixed typing emoji using the macOS system palette (
cmd-ctrl-space). (#47835) - Fixed issue where user
.ssh/configfile would not parse if global ssh config file was not present. (#47310; thanks Gaff) - Fixed a bug where
workspace::SendKeystrokeswould not allow remapping keys in different keyboard layouts. (#47061; thanks everdrone) - Fixed a small issue where highlights of the syntax tree view would persist after the view was closed. (#47638)
- Fixed a visual glitch with sticky scroll headers in markdown. (#47314; thanks KyleBarton)
- Fixed alignment of folded directory names in project panel. (#47648)
- Fixed an issue where deleted rules from the rules library were getting restored after a restart. (#47323)
- Fixed an issue where the terminal would sometimes fail to write shell history. (#47408)
- Fixed bracket color not updating when system theme changes. (#47505; thanks smitchaudhary)
- Fixed clearing hovered link when no target found. (#47134; thanks cppcoffee)
- Fixed Conda showing up in terminal on Windows. (#47261)
- Fixed extension uninstall button not working when an upgrade is available. (#47745; thanks eureka928)
- Fixed language servers unnecessarily restarting when changing
lsp.<server>.settingsconfiguration. Dynamic settings are now properly updated viaworkspace/didChangeConfigurationwithout requiring a server restart. (#47376; thanks aviatesk) - Fixed project-less workspaces not persisting their dock state. (#45966; thanks ppfmagno)
- Fixed remote server binaries accumulating on WSL over time. (#47839)
- Fixed "Reveal in File Manager" not working for WSL remote connections on Windows. (#47288)
- Fixed some instances of authentication errors with the Zed API that could be resolved automatically by refreshing the token. (#47512)
- Fixed struct union enum outline issues for C. (#46125; thanks ozacod)
- Fixed terminal hanging when a child process is killed by a signal (e.g., SIGSEGV from null pointer dereference). (#47420)
- Fixed user-defined tasks with unresolved
ZED_*variables being silently omitted. (#45621; thanks playdohface) - Fixed vim mode incorrectly switching to Visual mode on first project search. (#44284; thanks MostlyKIGuess)
- Fixed vim mode paragraph motions (
}and{) to correctly ignore whitespace-only lines. (#47734; thanks lex00) - Fixed a crash in LoadingLabel's loading animation when displaying CJK or emoji text. (#45632; thanks MomentDerek)
- Fixed uninitialized var declaration not being shown in outline. (#46499; thanks hokein)
- Fixed LSP integrations to send language server shutdown requests with correct parameters. (#46027; thanks Spirrwell)