Enhancements
Languages
- Added language server support for Terraform (#5098).
- Added ability to run ESLint fixes when formatting a buffer. Code actions configured in
code_actions_on_format
are now being sent to all language servers connected to a buffer, not just the primary one. So if a user now sets"code_actions_on_format": { "source.fixAll.eslint": true }
in their Zed settings, thesource.fixAll.eslint
code action will be sent to ESLint, which is not a primary language server. Since the formatter (prettier, or external commands, or another language server, ...) still runs, it's important that these code actions and the formatter don't clash. (#4325). - Added ability for users to configure settings for ESLint's
codeActionOnSave
, e.g. specifyingrules
that should be respected when also using"code_actions_on_format": {"source.fixAll.eslint": true}
. These settings can be passed to ESLint as part of the"lsp"
part of the Zed settings. Example:{"lsp": {"eslint": {"settings": {"codeActionOnSave": { "rules": ["import/order"] }}}}}
(#8533). - Improved Ruby Grammar to recognise various method parameters.
- Added ESLint flat config support (#7271).
- Added icons for: Coffeescript, Dart, Docker, F#, GraphQL, Heroku, Java, Kotlin, Nim, R, Scala, Swift, TCL, font, and license files.
- Updated icon for SQL files.
- Added
.cljc
,.edn
, and.bb
to Clojure filename extensions (#7845).
Vim
- Added
ctrl-t
andctrl-d
for indent/outdent in insert mode. - Added a setting for
{"vim": {"use_multiline_find":true}}
that letsf,t,F,T
search across line boundaries. - Added
:tabo[nly][!]
, closes all tabs in the current pane except the active one. (!
discards unsaved changes). - Added
:on[ly][!]
, closes all tabs and panes except the active one. (!
discards unsaved changes). - Added new
argument
vim text object, inspired by targets.vim. - Added a setting to control default clipboard behavior.
{"vim": {"use_system_clipboard": "never"}}
disables writing to the clipboard."on_yank"
writes to the system clipboard only on yank, and"always"
preserves the current behavior (#4390). - Added
it
andat
to target within/around html tags.
Collaboration
- Added option to copy the text of a message within the chat.
- Added localization support for all macOS specific date and time configurations in chat.
- Added an
Unmute
action for guests in calls. This lets them use the mic, but not edit projects. - Improved design of collab panel.
General
- Added settings to control the display of gutter visual elements.
"gutter": {"line_numbers": true, "code_actions": true, "folds": true}
(#8041) (#7422) - Added placeholder to titlebar when no project is selected.
- Added a
zed: view release notes locally
action (#5019). - Added support for rendering strikethrough text in markdown elements.
- Added buttons to filter down to
All
,Installed,
andNot Installed
extensions in the extensions view. - Added debouncing to make it easier to edit text when inlay hints are enabled and to save rendering of inlay hints when scrolling. Both debounce durations can be configured with
{"inlay_hints": {"edit_debounce_ms": 700}}
(default) and{"inlay_hints": {"scroll_debounce_ms": 50}}
. Set a value to0
to turn off the debouncing. - Added
Go to implementation
support in editor. - Added the ability to open a new buffer when double-clicking on the tab bar (#6818).
- Added a mechanism to open recent projects in the new window. Using
cmd-enter
will now open the project in a new window instead of reusing the current one. - Improved the
recent projects
modal by allowing removal of workspaces from the list (#7426). - Improved project panel keymaps for
cmd-backspace
/delete
to delete file (#7228). - Improved styling of inlay hints by not making them bold in the editor.
- Improved recent projects modal workflow.
Bug Fixes
- Fixed flickering when hovering (#8050, (#8363)).
- Fixed filenames with numeric components (
1.txt
,1/one.txt
, ...) not being sorted as numbers, but as string. - Fixed ability to copy folders into themselves by selecting them in project panel and hitting
copy
andpaste
. Instead of endless recursion, a copy of the folder is now created (#7314). - Fixed a bug where the selection was reset in the file finder during language server startup (#7519).
- Fixed indent/outdent/join lines appearing to work in read-only buffers (#8423).
- Fixed indent with an empty selection when the cursor was in column 0.
- Fixed occasional panics tha occurred during collaborative editing with inlay hints on both sides.
- Fixed a panic when hovering in a collaboration session.
- Fixed
.gitignore
files beyond the first.git
directory being respected by the worktree (#5749). - Fixed auto-inserted brackets (or quotes) not being removed when they were inserted as part of a snippet (#4605).
- Fixed duplicate channel names appearing in the collab sidebar.
- Fixed flashing of recent projects list when there were a lot of projects in the list (#8346).
- Fixed Svelte outlines for
TS
. - Fixed an issue with terminal paths not allowing links when the path included
+
or$
symbols (#8256). - Fixed RPC messages checkbox not opening the LSP messages view
- Fixed slowness that could occur when collaborating due to excessive messages being sent to support following.
- Fixed a panic when using
ctrl-m
in a multibuffer. - Fixed certain code actions not being resolved properly (7609).
- Vim: Fixed
.
when multiple windows are open (#7446). - Vim: Fixed switching to normal mode after
J
,<
or>
in visual mode (#4439). - Vim: Fixed a bug where multiple selections were not preserved when returning to normal mode.