The release features enhancements in the Sublime Keymap, notably the inclusion of git::Restore compatibility bind (revert_hunk) for users on Mac and Linux platforms. Furthermore, the editor has been enhanced to utilize the buffer font size rather than the UI font size, and the cursor position is reset when a format operation is undone.
The release also incorporates bug fixes for multiple programming languages, including Python, Go, Vim, and AI. The updates fix several problems, such as wrong excerpt comparisons, pop-up errors with typescript-language-server, crashes when sharing screens on macOS, issues with case-insensitive text searches that include Unicode characters, problems with multiple cursors causing repeated prefixes, system crashes when joining a project with multiple buffers and cursors, difficulties with plaintext snippets, issues with signature help pop-ups, no feedback during CLI installation from the welcome page, as well as problems with cursor styles and duplicated snippets from extensions.
The release also addresses issues with using the default model despite configuring a specific inline assistant model. The release announcement also tackles concerns related to the staged status of files in the Git panel, the cessation of diffs updating after closing and reopening them post-staging hunks, and the transmission of a custom HTTP header by Git during remote operations.
Zed v0.183.10
Today's release features Git amend support, customizable bottom dock layouts, improved diagnostics rendering, and support for OpenAI's
o3
ando4-mini
models.Enhancements
- "Block" diagnostics (that show up in the diagnostics view, or when using
f8
/shift-f8
) are rendered more clearly. ( #28006)
f8
/shift-f8
now always go to the "next" or "prev" diagnostic, regardless of the state of the editor. ( #28006)- Added a new
bottom_dock_layout
setting that can take the following options:contained
(default),full
,left_aligned
, andright_aligned
. This setting defines how the bottom dock should be laid out when multiple docks are open at the same time. ( #26211; thanks th0jensen)
- Added new actions
editor::FindNextMatch
andeditor::FindPreviousMatch
that are similar toeditor::SelectNext
andeditor::SelectPrevious
with"replace_newest": true
, but jump to the first or last selection when there are multiple selections. ( #28559)- Added enabling of required features when executing a Rust example or bin through a task. ( #27312; thanks NiklasEi)
- Sublime Keymap: Added
git::Restore
compatibility bind (revert_hunk). Mac:cmd-k cmd-z
and Linux:ctrl-k ctrl-z
. ( #28444)- Added file icon for Vyper (
.vy
,.vyi
) files. ( #28307; thanks ThatOneCalculator)- Tasks are now loaded from local
.vscode/tasks.json
files even if they are.gitignore
d. ( #28631; thanks hrou0003)- Snippets are now resolved for all languages active at the cursor location. ( #27718; thanks claytonrcarter)
- Improved visibility of code actions by showing them in the right-click context menu. ( #28677)
- Improved app responsiveness when spawning Rust tasks. ( #28553)
- Improved scroll behavior of
editor: select all matches
. ( #28435; thanks neunato)- Improved
editor: copy and trim
command. ( #29023; thanks redforks)- Improved selection highlight speed. ( #29097)
- Made it so Markdown preview uses the buffer font size instead of the UI font size. ( #29183)
- Updated snake_case check for grammar names in extensions. ( #28608)
- Made it so the cursor position is reset to where it was after the last edit when undoing a format operation. This only changes the behavior when you make an edit, scroll away, initiate formatting (either by saving or manually), and then undo the format. ( #28527)
Git
- Added Git amend support. ( #28187)
- Improved performance of Git panel with a large number of untracked files. ( #28670)
- Improved the Git panel context menu to show actions with no effect as disabled. ( #28288; thanks 5brian)
Languages
- Python: Added support for auto-closing
f
,b
,u
,r
,rb
, and the newly releasedt
strings. ( #28709)- Go: Corrected SoftTab indentation handling for lines with mixed spaces and tabs across
.go
files and other file types. ( #27336; thanks rodrigoFfreire)Vim
- Added some forced motion support for delete and yank. ( #27991; thanks mastion)
- Added delete mapping in normal mode. ( #28551; thanks mastion)
- Improved
single-repeat
after accepting a completion; now pressing.
to replay the completion will re-insert the completion text at the cursor position. ( #28586)- The
:s//
command now defaults to replacing the first match per line (like Vim). Use/g
to replace all matches. ( #28138; thanks dinocosta)AI
- Added support for OpenAI o3 and o4-mini models via OpenAI API and Copilot Chat providers. ( #28881; thanks @imumesh18)
Bug Fixes
- Fixed incorrect excerpt comparison when replacing them. ( #28828)
- Fixed annoying pop-up with typescript-language-server that occurred in multi-buffers with inlay hints enabled. ( #28855)
- Fixed an issue where the
feedback: file bug report
action would redirect to an outdated URL. ( #28790; thanks MrSubidubi)- Fixed a crash when screen sharing on macOS. ( #28784)
- Fixed case-insensitive text search with Unicode characters. ( #28752; thanks mockersf)
- Fixed completions with multiple cursors leaving duplicated prefixes. ( #28586)
- Fixed a crash when accepting a completion in a multibuffer with multiple cursors. ( #28586)
- Fixed a panic when joining a project with a multibuffer with merged excerpts. ( #29245)
- Fixed a panic when a removed excerpt has an edit suggestion inlay in it. ( #28873)
- Fixed plaintext snippets not working. ( #28655; thanks loczek)
- Fixed snippets in PHP, ERB, and other languages whose syntax layers are based on HTML. ( #27718; thanks claytonrcarter)
- Fixed bug where signature help popover could go off-screen. ( #28566)
- Fixed no feedback provided when installing CLI from welcome page. ( #28532)
- Fixed a bug causing Shift to get stuck down when the window focus changes. ( #28348)
- Fixed the issue where environment variables from
ExtensionLspAdapter
were lost. ( #28173; thanks vitallium)- Fixed cursor styling to maintain drag cursor appearance throughout resize handle interactions. ( #24797; thanks huacnlee)
- Fixed a bug where extension-provided snippets were being displayed in duplicate. ( #28940; thanks @redforks)
- Fixed
select_larger_syntax_node
to first expand to the word within a string, and then to the larger syntax node. ( #29184)- Fixed an issue where uncommenting a code block in Markdown would add Markdown comments instead of removing the language comments. ( #29230)
- Inline Assistant: Fixed a bug where the default model would be used even when a specific inline assistant model was configured. ( #29136)
- Git: Fixed a bug that caused the staged status of files in the Git panel to be out of date in some cases. ( #28588)
- Git: Fixed an issue where diffs stopped updating after closing and reopening them after staging hunks. ( #28377)
- Git: Fixed a bug where staging a hunk while the cursor was in a deleted line would move the cursor erroneously. ( #28377)
- Git: Fixed an issue where Git was unnecessarily sending a custom HTTP header on remote operations. ( #28798)
- Git: Fixed a bug that caused Zed to sometimes not discover Git repositories above a worktree root. ( #28436)
- Python: Fixed decorated pytest methods not being picked up as runnable. ( #28652; thanks hrou0003)
- HTML: Fixed a case where extra characters were being written at the end of an HTML tag. ( #28529)
- Vim: Fixed code actions in visual line mode. ( #27817; thanks onsclom)
- Vim: Fixed the number of matches displayed in the search bar after running Vim's substitute command. ( #28403; thanks dinocosta)
- Vim: Fixed a panic when using
gv
afterp
in visual line mode. ( #29251)- Vim: Fixed
ctrl-c
in normal mode. ( #29169)- Linux: Fixed popup menu snap to window to leave margin on Linux. ( #27330; thanks huacnlee)
- Linux: Fixed incorrect config directory being used when Zed is installed via Flatpak. ( #28952)