Releases: zed-industries/zed
v0.153.2-pre
v0.153.1-pre
v0.153.0-pre
Enhancements
General
- Added "Pin/Unpin Tab" action to the workspace, assistant and terminal panes (#17426).
- Added ability to select and act upon intermediate auto-folded project entries (remove, rename, cut, paste) (#17520).
- Improved
DeleteToPreviousWordStart
andDeleteToNextWordEnd
interactions around newlines. You can opt-in into the previous behavior by adding {"ignore_newlines": true} to either action's binds in your keymap (#16848; thanks kjzl). - Improved language server reliability in multi-worktree projects and monorepo. We now notify the language server more reliably about which files have changed (#17499).
- Improved popup menu margins (#17159; thanks huacnlee).
- Updated Markdown code blocks to use the buffer font (#17351; thanks matubu).
- Added support for
display_name
for custom models in OpenAI and Google Gemini AI providers (#17508). - Added
search
settings section to configure default options enabled in buffer and project searches (#17179; thanks thataboy). - Added yaml-language-server configuration via settings. See: zed.dev/docs/languages/yaml (#17479).
- Increased the default memory limit for vtsls from 3GiB to 8GiB
(#17354). - Linux (X11): Added Drag and Drop support (#17491; thanks XDeme1).
Vim
- Added vim-style smart case option for search patterns (#16932; thanks 0x2CA).
- Added
:y[ank]
(#17448). - Project Panel: Added
s
keybind to open with default app (#17231; thanks KorigamiK). - Added
:diff
and:revert
(that work with'<,'>
) to open the selected diff and revert it (#17456). - Added
d o
to open the diff andd p
to revert (spiritually similar to vim's do/dp, though obviously not the same) (#17456). - Added
ctrl-p
andctrl-n
to summon the autocomplete menu in insert mode (#17456). - Added
(
and)
for sentence motion (#17425).
AI
- Added support for using the configured UI font size in the inline assistant (#17542; thanks haasn).
- Added support for adding multiple files in a single
/file
command when pressing tab (#17652). - Added support for copying and pasting slash commands in the assistant panel (#17490).
- Added context_size for "yi-coder" model in Ollama (#17409; thanks rauberdaniel). More information about the model on ollama.
- Added ability to configure environment variables for context servers through settings. These variables are passed to the server process when launched (#17356; thanks dsp-ant).
- Improved "Assistant::NewContext" quote selection behavior (#17589).
- Improved "Assistant::QuoteSelection" to handle multicursor selections (#17589).
Bug Fixes
- Fixed an issue where a failed inline assistant prompt could not be restarted (#17651).
- Fixed an issue where commands generated by the terminal command could sometimes be executed without confirmation (#17647).
- Fixed JSON Schema for
tabs.file_icons
default value (#17629; thanks kachick). - Fixed parenthesis matching for file links in terminal (#17512; thanks saahityaedams).
- Fixed an issue when using Google Gemini models, where the setting
low_speed_timeout_in_seconds
was not respected (#17423). - Go: Fixed regression by restoring regex to match tests (#17645).
- Vim: Fixed the behavior of surrounding a text object (#17603; thanks emandres).
- Vim: Fixed s// to act on current line only (#17234; thanks Horam-Zarri).
- Vim: Fixed
"_
register writes overwriting"
register (#17419). - Vim: Reverted
Y
to vim behavior. If you want the neovim version (as a built in mapping toy$
) you must configure it in your settings (#17563; thanks vbhavsar). - Vim: Fixed parsing of commands with ranges
:3 d
(#17474). - Linux: Fixed blurry mouse cursor on wayland when the screen scale is other than 100% (#17496; thanks senonide).
v0.152.3
Enhancements
General
- Added ability to perform project search only in opened files (#16580; thanks CharlesChen0823).
- REPL: Added a readonly buffer for viewing large outputs (#17121).
-
REPL: Added button to open full text output in a separate buffer (#16971).
-
Improved the Zed CLI
zed
to pass along the environment as it was on the CLI to the opened Zed project. That environment is then used when opening new terminals, spawning tasks, or language servers (#17075). Specifically:- If Zed was started via
zed my-folder
, a terminal spawned withworkspace: new terminal
will inherit these environment variables that existed on the CLI - Specific language servers that allow looking up the language server binary in the environments
$PATH
(such asgopls
,zls
,rust-analyzer
if configured, ...) will look up the language server binary in the CLI environment too and use that environment when starting the process. - Language servers that are not found in the CLI environment (or configured to not be found in there), will be spawned with the CLI environment in case that's set. That means users can do something like
RA_LOG=info zed .
and it will be picked up by the rust-analyzer that was spawned. - Check the demo here.
- If Zed was started via
-
Added multiuser support for up to 100 users on the same machine (#14143; thanks samsonjs).
-
Linux: Added an editor setting to toggle middle-click pasting (enabled by default) (#16572; thanks micahscopes).
-
Linux: Improved GPU detection (#17022).
Languages
- Improved Rust syntax highlighting queries (#17097; thanks everdrone).
- Improved syntax highlighting of Rust methods in completions menu (#17184).
- Improved language server reliability in multi-worktree projects and monorepo. We now notify the language server more reliably about which files have changed (#17173).
Performance
- Improved editor performance in presence of many runnable indicators in the gutter (#17250).
- Improved outline panel performance (#17183).
AI
- Added a way to accept terminal inline assist suggestions without executing them (#17299).
- Improved Assistant Configuration to make links clickable (#17011).
- Improved UX of tab slash command completions (#17296).
- Added support for argument completions for context server prompts. These show up as regular completions to slash commands (#17085; thanks dsp-ant).
- Added ability for context servers to provide optional descriptions in
prompts/get
responses, displayed as slash command labels (#17077; thanks dsp-ant).
Bug Fixes
- Fixed outline panel filter not working for certain Vim bindings (#17293; thanks CharlesChen0823).
- Fixed inlay hints not being enabled for JavaScript when using the vtsls language server (#17334; thanks matubu).
- Fixed an issue where the inline assist would be dismissed even when instructed to regenerate the transformation after an error (#17301).
- Fixed a bug where "Paste" wasn't always shown in project panel context menu (#17262).
- Assistant: Fixed
New Context
opening a new file when focused in the editor pane (#17106; thanks ramipellumbi). - Fixed GPT-4 breakage (incorrect
max_output_tokens
handling) (#17168). - Fixed a bug where save replaced the existing open file, using the new pane to replace the old pane (#17123; thanks CharlesChen0823).
- Fixed a bug where inline completions (Copilot or Supermaven) were showing up in Vim's normal mode (#17154).
- Fixed an issue where
workspace::ActivatePaneInDirection
could not activate the center pane (i.e. one couldn't navigate from terminal or assistant panel to the center pane) after loading Zed (#17140). - Fixed an issue where context servers returning a carriage return character would result in a panic (#17112; thanks dsp-ant).
- Fixed a panic opening a file in ~/ with
use_system_prompts: false
(#17027). - Fixed an issue with dangling disk images during macOS auto-updates by implementing automatic unmounting (#17019; thanks vitallium).
- Fixed an issue where toggling inline completions in a markdown file did not work correctly (#17104).
- Fixed Go tests not being able to run in case the package (and the
go.mod
) was in a nested folder (#17108; thanks glaudiston). Pre-defined Go tasks now run in the package's directory. That meansgo test ./package -run MyTest
will run in./package
and executego test -run MyTest
. Also,go test ./...
will run in the package directory, not at the root of the Zed project, which is a small breaking change. In case one wants to rungo test ./...
from the root, one can spawn a manual task that does this. - Linux: Fixed the prompt library not closing on Wayland (#16850; thanks apricotbucket28).
- Linux: Fixed copy/paste shortcuts in context menus (#17103).
- Linux: Zed will no longer be marked as the default file browser (#16940; thanks valaphee).
- Linux: ARM binaries now require glibc >= 2.35; was >= 2.29 (#17643).
v0.152.3-pre
Bug fixes
- Linux: Fixed crash when closing windows on Wayland (#17510; thanks apricotbucket28).
- Linux ARM binaries now require glibc >= 2.35; was >= 2.29 (#17643).
v0.152.2-pre
Unreleased.
Bug Fixes
- Linux: Fixed crash when closing windows on Wayland (#17510; thanks apricotbucket28)
v0.152.1-pre
Bug Fixes
v0.151.2
Bug Fixes
- Linux: Fixed crash when closing windows on Wayland (#17319).
- Removed the recently-added FPS counter since the changes it made to the Metal renderer on macOS could lead to performance regressions on Intel MacBooks (#17485).
- Fixed a possible memory leak when closing Zed windows that wouldn't lead to associated resources being cleaned up correctly. (#17497).
v0.152.0-pre
Enhancements
General
- Added ability to perform project search only in opened files (#16580; thanks CharlesChen0823).
- REPL: Added a readonly buffer for viewing large outputs (#17121).
-
REPL: Added button to open full text output in a separate buffer (#16971).
-
Improved the Zed CLI
zed
to pass along the environment as it was on the CLI to the opened Zed project. That environment is then used when opening new terminals, spawning tasks, or language servers (#17075). Specifically:- If Zed was started via
zed my-folder
, a terminal spawned withworkspace: new terminal
will inherit these environment variables that existed on the CLI - Specific language servers that allow looking up the language server binary in the environments
$PATH
(such asgopls
,zls
,rust-analyzer
if configured, ...) will look up the language server binary in the CLI environment too and use that environment when starting the process. - Language servers that are not found in the CLI environment (or configured to not be found in there), will be spawned with the CLI environment in case that's set. That means users can do something like
RA_LOG=info zed .
and it will be picked up by the rust-analyzer that was spawned. - Check the demo here.
- If Zed was started via
-
Added multiuser support for up to 100 users on the same machine (#14143; thanks samsonjs).
-
Linux: Added an editor setting to toggle middle-click pasting (enabled by default) (#16572; thanks micahscopes).
-
Linux: Improved GPU detection (#17022).
Languages
- Improved syntax highlighting of Rust methods in completions menu (#17184).
- Improved language server reliability in multi-worktree projects and monorepo. We now notify the language server more reliably about which files have changed (#17173).
- Improved Rust syntax highlighting queries (#17097; thanks everdrone).
Performance
- Improved editor performance in presence of many runnable indicators in the gutter (#17250).
- Improved outline panel performance (#17183).
AI
- Added a way to accept terminal inline assist suggestions without executing them (#17299).
- Improved Assistant Configuration to make links clickable (#17011).
- Improved UX of tab slash command completions (#17296).
- Added support for argument completions for context server prompts. These show up as regular completions to slash commands (#17085; thanks dsp-ant).
- Added ability for context servers to provide optional descriptions in
prompts/get
responses, displayed as slash command labels (#17077; thanks dsp-ant).
Bug Fixes
- Fixed outline panel filter not working for certain Vim bindings (#17293; thanks CharlesChen0823).
- Fixed inlay hints not being enabled for JavaScript when using the vtsls language server (#17334; thanks matubu).
- Fixed an issue where the inline assist would be dismissed even when instructed to regenerate the transformation after an error (#17301).
- Fixed a bug where "Paste" wasn't always shown in project panel context menu (#17262).
- Assistant: Fixed
New Context
opening a new file when focused in the editor pane (#17106; thanks ramipellumbi). - Fixed GPT-4 breakage (incorrect
max_output_tokens
handling) (#17168). - Fixed a bug where save replaced the existing open file, using the new pane to replace the old pane (#17123; thanks CharlesChen0823).
- Fixed a bug where inline completions (Copilot or Supermaven) were showing up in Vim's normal mode (#17154).
- Fixed an issue where
workspace::ActivatePaneInDirection
could not activate the center pane (i.e. one couldn't navigate from terminal or assistant panel to the center pane) after loading Zed (#17140). - Fixed an issue where context servers returning a carriage return character would result in a panic (#17112; thanks dsp-ant).
- Fixed a panic opening a file in ~/ with
use_system_prompts: false
(#17027). - Fixed an issue with dangling disk images during macOS auto-updates by implementing automatic unmounting (#17019; thanks vitallium).
- Fixed an issue where toggling inline completions in a markdown file did not work correctly (#17104).
- Fixed Go tests not being able to run in case the package (and the
go.mod
) was in a nested folder (#17108; thanks glaudiston). Pre-defined Go tasks now run in the package's directory. That meansgo test ./package -run MyTest
will run in./package
and executego test -run MyTest
. Also,go test ./...
will run in the package directory, not at the root of the Zed project, which is a small breaking change. In case one wants to rungo test ./...
from the root, one can spawn a manual task that does this. - Linux: Fixed the prompt library not closing on Wayland (#16850; thanks apricotbucket28).
- Linux: Fixed copy/paste shortcuts in context menus (#17103).
- Linux: Zed will no longer be marked as the default file browser (#16940; thanks valaphee).
v0.151.1
Enhancements
General
- SSH Remoting: Added project search (#16915).
- Added a new editor action (
editor: toggle inline completions
) to allow toggling inline completions (Copilot, Supermaven) on and off for the current buffer, taking precedence over any settings (#16947). - Added
pane: join into next
action (#16077; thanks tcard). - Added
editor: copy file location
command to copy the current file location (FILE:LINE) to the clipboard (#14793; thanks slembcke). - Added a default package + overlay to Zed's Nix flake. This is useful for users wanting to pilot nightly builds of Zed on NixOS (#16783).
- Added buffer/project search entries to the outline panel (#16589).
- Added
Format Buffer
action to the right-click menu within a buffer (#16080; thanks terziele). - Added clickable URLs with query parameters in the terminal (#16724; thanks musicq).
- Added support for using file paths ending in a language-specific file extension at the start of markdown code blocks (#12368).
- Repl: Added button to copy output from the REPL (#16649).
- Repl: Added restart kernel action (#16609).
- Added tab/pane closing for files inside folders being deleted/trashed (#15222; thanks Quplet).
- Added SOCKS proxy for client WebSocket connection (#16051; thanks Congyuwang).
- Added
soft_wrap
valuebounded
, EditorWidth and PreferredLineLength min value (#16586; thanks 0x2CA). - Added switch source/header action for clangd language server (#14646; thanks thorbenk).
- Added
unnecessary_code_fade
setting to control how strongly to fade unused code (#14442; thanks MatthewScholefield). - Added new settings to control split direction for horizontal and vertical splits. Users can now configure whether new splits open to the right/left or top/bottom, similar to Vim's
splitright
option (#16345; thanks jvanbaarsen). - Added support for copying/pasting between different worktrees (#15396; thanks CharlesChen0823).
- Improved the truncation of long author lists and descriptions in the extensions view (#17007).
- Improved Sublime keymap: Support for switching to individual tabs with
cmd-1
thrucmd-9
(macOS) andalt-1
thrualt-9
(Linux) matching Sublime behavior (#16930; thanks zzulu). - Improved support for extended keyboards on Mac (
F13
-F19
, Insert) (#16921). - Improved context menu organization (#16773; thanks WeetHet).
- Improved the
Copy Path
andCopy Relative Path
actions in the project panel's context menu when selecting multiple files. All selected files' paths will now be copied, separated by newlines (#16558; thanks kjzl). - Improved error handling when opening files in the workspace pane. An error message will now be displayed if the file cannot be opened (#15613; thanks ssut).
- Updated project panel scrollbar to respect the
scrollbar.track.background
from the theme (#16546; thanks eliperkins). - Updated filenames to be
cmd
/ctrl
-clickable, opening them when clicked (#16534). - Linux: Improved terminal keymap and context menu (#16845).
- Linux: Improved text rendering by handling subpixel positioning (#16238; thanks apricotbucket28).
- Linux: Added CLI pipe support (#16084; thanks VitorRamos).
Languages
- Added support for
property
tests in runnables for Elixir (#16985; thanks cschmatzler). - Added auto-closing for single quotes in YAML files (#16859).
- Added syntax highlighting for
graphql
tagged template literals and function calls in javascript, typescript and tsx languages (#16368; thanks affanshahid). - Added level filtering to language server logs (#15893; thanks jcdickinson).
- Improved detection of
pyrightconfig.json
asJSONC
(#16967). - Improved
PHP
highlights by adding more language keywords (#16720; thanks BafS).
Performance
- Performance of project-wide search has been improved by up to 10x (#16936).
- Improved performance of rendering project-search results in the multi-buffer after finding them (#16960).
- Reduced latency for first project search result (#16923).
- Improved performance of Assistant Panel with long conversations (#16881).
- Improved performance of assistant panel with large amounts of text (#16761).
AI
- Added support for Ollama models with context length >2048 (#16877).
Vim
- Added absolute numbering in any mode except
insert
mode (#16567; thanks 0x2CA). - Added
gf
command to open files under the cursor (#16534).
Bug Fixes
- Fixed performance regression in handling buffers with large quantities of diagnostics (#16824).
- Fixed formatting of
<
and>
in Git commit message popup (#16279; thanks dovakin0007). - Fixed signature info popovers appearing when completion menu is open (#17009).
- Fixed an issue on NixOS package where the wrong binaries were being patched, leading to missing Wayland libs when launching Zed (#16958).
- Fixed an issue where the file finder would jump to the first result when new files were added to the project. The selected file now remains highlighted when the file list updates (#13452; thanks kshokhin).
- Fixed assistant model selector check icon overflow for long model names (#16716; thanks Moshyfawn).
- Fixed Telemetry log being marked dirty (#16906).
- Fixed asset buffers (default settings and default keymap) showing 'untitled' in breadcrumbs (#16906).
- Fixed an issue related to the project wide search being stuck when project contains
.fifo
files (#16039; thanks SultanTanirkul). - Fixed incomplete syntax highlighting for
HTML
injections inside JavaScript template tags (#16479; thanks florian-sanders). - Fixed double edits when a multi-cursor is in a linked editing range (#16707).
- Fixed bug when opening uncanonicalized hyperlink files from terminal (#16087; thanks Pribess).
- Fixed local timezone not showing in Zed.log (#16400; thanks bestgopher).
- Fixed manually triggering completions when
show_inline_completions: false
(#16621). - Fixed
esc
not removing focus from the filter editor in the collaboration panel ([#16579](https://github.com/zed-industries/...