Enhancements
General
- Added an
editor: open docs
action to open links to documentation via rust-analyzer (#19233; thanks wanlufun). - Added a setting to adjust the width of the file finder modal (#18682; thanks isaacdonaldson).
"file_finder": { "modal_width": "medium" },
- Added indication of deleted files. Files deleted outside of Zed will have a strikethrough in the title of the tab (#20711).
- Sublime Keymap: Added
editor::SelectAllMatches
compatibility bind (find_all_under
). Mac:ctrl-cmd-g
and Linux:alt-f3
(#20866). - Sublime Keymap: Improved tab switching (#20547; thanks ShinyChang).
- Enabled snippet parsing to successfully parse snippets with choices (#13958; thanks Anthony-Eid).
- Show completion menu when tabbing to a snippet variable with multiple choices (#13958; thanks Anthony-Eid).
- Improved detection of
.env.*
files as Shell Scripts by default (#20429). - Improved the vertical movement behavior when reaching the start or end of a document. The selection goal is now maintained, aligning with native text field functionality (#20705; thanks lord).
- Improved handling of externally deleted files: auto-save will be disabled, multibuffers will treat this as a save conflict, and single buffers will ask for restore confirmation (#20742).
- Changed the tab bar height according to
ui-density
(#19076; thanks Aaron-212). - Updated Copilot's underlying version to Copilot.vim 1.41.0 (#20520).
- Linux: Added Support for Back/Forward multimedia keys (#20695).
AI
- Added inline hints that guide users on how to invoke the inline assistant and open the assistant panel. (These hints can be disabled by setting
{"assistant": {"show_hints": false}}
) (#20824). - Updated the Assistant to show more details in error cases (#20740).
Vim
- Added
:<range>cpplink
to copy a permanent git link to the highlighted range to the clipboard (#20707). - Added support for
%
to jump between pairs of tags (#20536; thanks hrou0003). - Added support for
ctrl-o
in insert mode to enter temporary normal mode (#19454; thanks axelcarl).
SSH Remoting
- Improved environment variable handling for SSH remotes (#20641).
Languages
- Python: Improved syntax highlighting (#20487, #20763):
- Differentiated between function and method calls and definitions.
function.definition
matches the highlight for e.g. rust,function.call
is new (thanks clwainwright). - Differentiated between class calls and class definitions (thanks clwainwright).
- Better highlighting of function decorators (the
@
symbol is punctuation, and now the decorator itself has afunction.decorator
tag) (thanks clwainwright). - Made
cls
a special variable (likeself
) (thanks clwainwright). - Added
ellipsis
as a built-in constant (thanks clwainwright). - Added syntax highlighting for attribute docstrings (thanks JaagupAverin).
- Differentiated between function and method calls and definitions.
- Python: Added pytest-based test discovery and runnables (#18824; thanks jrderuiter).
- Python: Added a configurable option for switching between unittest and pytest as a test runner under Python language settings. Set "TASK_RUNNER" to "unittest" under task settings for Python if you wish to use unittest to run Python tasks; the default is pytest (#18824; thanks jrderuiter).
- Python: Improved toolchain selection for Conda environments (#20702; thanks wolffiex).
- Python: Improved handling of triple-quote strings (#20664).
- Python: Improved detection of Poetry-based environments (#20669).
- Python: tasks now use active toolchain to run (#20667).
- HTML: Added injections for Markdown syntax highlighting (#20527; thanks uncenter).
- JavaScript, TypeScript, and TSX: Highlighted
?
and:
in ternary expressions as operator (#20573; thanks Huliiiiii). - Added some more common Prettier plugin base paths (#20758; thanks sweetppro).
Bug Fixes
- Fixed a crash when opening a file containing a very large number of ascii control characters on one line (#20841).
- Fixed Rust LSP adapter on FreeBSD (#20736; thanks CalebHeydon).
- Fixed quirks around dropping project entries into tab bar that might have led to tabs being pinned sometimes (#20722).
- Fixed rendering of dragged project panel entries (#20686).
- SSH Remoting: Fixed accidental use of GNU netcat instead of nc provided by macOS (#20751).
- SSH Remoting: Correctly show an error when SSH'ing into a 32-bit arm system (#20618).
Breaking Changes and Notices
- Removed the
low_speed_timeout
setting from LLM provider settings, since it was only used to increase the timeout to give LLMs more time, but since we don't have any other use for it, we simply remove the setting to give LLMs as long as they need (#20681).