Enhancements
General
- Added a horizontal scrollbar to project panel (#18513).
- Added new fold actions to toggle folds (
cmd-k cmd-l
), fold every fold (cmd-k cmd-0
) unfold every fold (cmd-k cmd-j
) to fold recursively (cmd-k cmd-[
) and unfold recursively (cmd-k cmd-]
). - Added
snippets: configure snippets
command to create and modify snippets (#18453; thanks loczek). - Added
snippets: open folder
command for opening the~/.config/zed/snippets
directory (#18453; thanks loczek). - Added a setting for the terminal's default cursor shape. The setting is
{"terminal": {"cursor_shape": "block"}}
. Possible values:block
,bar
,hollow
,underline
(#18530).- See the video!
- Added file watching for symlinks (#17609; thanks AlvaroParker).
- Added keyboard shortcuts inside tooltips in the project search, buffer search, etc (#18282).
- Added
editor.document_highlight.bracket_background
field to the theme to set background color of highlighted brackets. This will fall back toeditor.document_highlight.read_background
, if not set (#17566; thanks thataboy). - Improved alignment of rendered tables in Markdown Preview (#18315; thanks andarut).
- Improved consistency and reliability of direnv detection by making direnv integration use direct (
direnv export json
) mode by default instead of relying on a shell hook (#18536; thanks WeetHet). - Improved language server log panel split ergonomics (#18527).
- Improved experience of configuring external formatters by making formatter arguments optional (#18340; thanks twz123).
- Improved the git blame gutter to take up only the space required to display the longest git author name in the current file (#18145).
- Changed the behavior of the git gutter so that diff hunk are expanded immediately when clicking the gutter, and hunk controls are displayed above the hunk (#18313).
- Changed the
view the release notes
button in the update toast to trigger theauto update: view release notes locally
action (#18486). - Changed
ui_font_weight
andbuffer_font_weight
settings to require values to be between100
and950
(inclusive) (#18594; thanks JunkuiZhang).
SSH Remoting
- Added running LSP Adapters on host (#18359).
- Enabled assistant panel and inline assists (running on client) (#18367).
AI
- Added llama3.2 support (#18366).
- Linux: Added ability to paste images into the Assistant Panel to include them as context on Linux Wayland (#17671; thanks maan2003).
Languages
- Improved syntax highlighting for C++ (#18016; thanks VacheDesNeiges).
- Added syntax highlighting inside heredoc strings in PHP (#18368; thanks sylbru).
- Added support for using locally installed
pyright
if available (#18353). - Associated
uv.lock
files with the TOML language (#18426; thanks thorbenk).
Vim
- Added
:fo[ld]
,:foldo[pen]
and:foldc[lose]
(#18424). - Added
za
to toggle fold under cursor (#18421). - Added
zO
/zC
/zA
to open, close and toggle folds recursively (and fixedzc
to not recurse into selections) (#18421). - Added
zR
/zM
to open/close all folds in the buffer (#18421).
Bug Fixes
- Assistant: Changed the assistant model to be less likely to incorporate diagnostic information when not requested to fix any issues (#18596; thanks rowillia).
- Assistant: Fixed copy/cut/paste not working in the assistant panel when selection was empty (#18403).
- Fixed
Reveal in Finder/File Manager
,Copy Path
,Copy Relative Path
andCopy file location
actions not working with multibuffers (#18626). - Fixed the behavior of
{"terminal": {"blinking": "[on|off|terminal_controlled]"}
to work correctly and to work correctly when customcursor_shape
is set (#18538).terminal.cursor_shape
only controls the default shape of the terminal, not the blinking.terminal.blinking = on
means that it's always blinking, regardless of what terminal programs wantterminal.blinking = off
means that it's never blinking, regardless of what terminal programs wantterminal.blinking = terminal_controlled (default)
means that it's blinking depending on what terminal programs want. when a terminal program resets the cursor to default, it sets it back toterminal.cursor_shape
if that is set.
- Fixed the environment not loading if
direnv
mode is set todirect
and.envrc
is not allowed (#18473; thanks WeetHet). - Fixed task indicators not showing up at the starts of folds (#18526).
- Fixed a bug where
go to definition
would scroll the editor even when the definition was already within the viewport (#18441; thanks osa1). - Fixed an bug where some tooltips would not show up (#18435).
- Fixed
low_speed_timeout_in_seconds
for Ollama (#18417). - Fixed a slight gutter flicker when going over 999 lines (#18021; thanks galenelias).
- Fixed
use_on_type_format
setting not working when defined inside"languages"
in the settings. This change will now change the default behavior for C, C++, and Markdown, by turning language server'sOnTypeFormatting
completions off by default (#18387). - Fixed the cursor shape in the editor not changing back to default when
{"cursor_shape": "..."}
setting is removed. This does not apply to Vim mode (#18379). - Fixed sending
alt-enter
in terminal (#18363). - Fixed overriding the path of a language server binary for all language servers.
{"lsp":{"<lsp-name>":{"binary":{"path": "_"}}}}
will now work for all language servers including those defined by extensions (#18318). - Removed confusing soft wrap option behavior (#18412).
- Removed automatic reinstallation of language servers (#18318). (It mostly didn't work)
- SSH Remote: Fixed
cmd-O
to correctly open files on the remote host (#18308). - Linux: Fixed some cases where Linux X11 mouse scrolling didn't work at all (#18484; thanks mgsloan).
- Linux: Fixed handling of switching between Linux X11 devices used for scrolling (#18484; thanks mgsloan).
- Linux: Fixed a bug where middle mouse clicks could be interpreted as left or right mouse clicks (#18504; thanks mycroft).
- Linux: Fixed a regression with middle-click pasting (#18503; thanks mycroft).
- Linux: Fixed blur region on Plasma/Wayland (#18465; thanks jansol).
- Vim: Fixed cursor position after
:{range}yank
(#18424). - Vim: Fixed register selection in visual yank (#18418).
Breaking Changes
- Protocol Buffers language support: Renamed "proto" language to "Proto". This is a breaking change and requires users adjust their settings accordingly from
proto
toProto
underfile_types
andlanguages
(#18559). - To disable finding lsp adapters in your path, you must now specify
{"lsp":{"<lsp-name>":{"binary":{"ignore_system_version": true}}}}
(#18318). Previously this was{"lsp":{"<lsp-name>":{"binary":{"path_lookup": false}}}}
. Note that this setting still does not apply to extensions.