Releases: zed-industries/zed
v0.142.3-pre
- Fixed a bug that was causing system prompts to be dropped for Anthropic models.
v0.141.3
v0.142.2-pre
- Fixed multi-key shortcuts (preview only)
- Fixed a panic when editing HTML near the end of a file
- Fixed a panic when editing settings.json from inside the .zed
directory
v0.142.1-pre
Bug Fixes
- Fixed package.json language server failing to start (#13555).
v0.142.0-pre
Breaking changes
SETTINGS DEPRECATION NOTICE
In your settings.json the following keys will need to be renamed:
language_overrides
->languages
copilot
->inline_completions
show_copilot_suggestions
->show_inline_completions
Previously, we were supporting the old keys as an alias for the new keys, but this led to unintended/confusing failure modes.
As a result we have deprecated the old keys.
See: Settings Deprecation Notice 2024-06-17 for more information.
Enhancements
AI
- Added support for Claude 3.5 Sonnet (#13357).
- Added the ability to customize available models for OpenAI-compatible services (#11984, #11075).
- Check out the video.
General
- Added the ability to remove multi-cursors by clicking on them again. (#13058).
- Added package version tooltips when hovering over package.json dependency entries (#13303).
- Added vertical scrollbar to project panel (#4865).
- Added
editor: select enclosing symbol
command based on tree-sitter outline. This is useful when combined with inline assist to rewrite a function. - Added a mouse context action to copy permalink to line. (#13247)
- Allowed binding to
shift
or other modifier keys (#6460). - Added an
active_line_width
to configure the line width of the active indent guide (#12312). - Added a
scroll_beyond_last_line
setting (#4962). - Added a
gutter.runnables
setting that controls whether runnable indicators are displayed in the gutter (@13280). - Added Markdown Preview shortcut for the Atom keymap.
- Added the
workspace: clear all notifications
command to clear notifications (#10761).
Vim
- Added support for
auto_surround
(#12898).- Check it out here.
- Fixed a panic when searching after focusing search bar with mouse (#13487).
- Added action to surround text in visual mode (no default binding) (#13122).
- Fixed vim "r" action to accept a count argument (#13287).
- Fixed vim "shift-r" action to accept a count argument and allow repetition
(#13287). - Fixed switching to normal mode after
g c
(vim::ToggleComments) in visual mode (#4439).
Bug Fixes
- Fixed a bug where project settings were not loaded from
.zed/settings.json
if they were.gitignore
d. (#4432). - Fixed inline assist button not being hidden when assistant is disabled (#13289).
- Fixed crate names not being shown in Rust completions menu (#13494).
- Improved compatibility keybindings (Atom, JetBrains, TextMate)
(#13326). - Fixed an issue where provider settings were lost when switching between Ollama models (#13399).
- Fixed an edge case where some indent guides would disappear when a folded line is the first visible line on screen.
- Fixed a bug that caused unnecessary computations to happen on every file-system event.
- Fixed too-small windows on MacOS by adding minimum window size.
- Fixed deleting the last character during IME composition would mistakenly delete other characters (#12862).
- Improved organization in the Quick Action Bar (#13476).
- Fixed
autosave
settings in project-specific settings file being ignored. (#13316). - Improved code folding to exclude folding line breaks in whitespace-sensitive languages (#11614).
v0.141.2
Breaking changes
SETTINGS DEPRECATION NOTICE
In your settings.json the following keys will need to be renamed:
language_overrides
->languages
copilot
->inline_completions
show_copilot_suggestions
->show_inline_completions
Previously, we were supporting the old keys as an alias for the new keys, but this let to unintended/confusing failure modes.
As a result we have deprecated the old keys.
See: Settings Deprecation Notice 2024-06-17 for more information.
Enhancements
General
- Added an outline panel to show a "map" of the active editor. Toggle the outline panel via
outline panel: toggle focus
.
Pair the outline panel with the search multi-buffer to get a better overview of your search results!
- Added support for dropping files from the finder onto the project panel (#7386).
- Added a 'selection and movement' tool to the Editor's toolbar, as well as controls to toggle it and a setting to remove it (
"toolbar": {"selections_menu": true/false }
). - Changed the behavior of the
+
menu in the tab bar to use standard actions and keybindings. ReplacedNew Center Terminal
withNew Terminal
, andNew Search
, with the usualDeploy Search
. Also added item-creating actions to this menu. - Improved performance of project panel in large worktrees (#13202).
- Improved the look of code action and run indicators in the gutter (#12803).
- Improved the style of disclosure controls throughout the UI.
AI
- Improved the behavior of inline assist so that it no longer closes when an editor loses focus (e.g., from switching tabs) and then gains focus again. Instead, it only closes when you move the cursor outside of it, e.g., by clicking somewhere else in its parent editor.
Languages
- VTSLS is now a default language server for TypeScript, TSX, and JavaScript.
If you would like to continue using typescript-language-server
, use the following setting in your settings.json
:
"JavaScript": {
"language_servers": ["!vtsls", "typescript-language-server", "..."]
},
-
Added a more detailed message in place of the generic
checking...
messages when Rust-analyzer is running. -
Added a rate limit for language server status messages, to reduce noisiness of those updates.
-
Added a
cancel language server work
action which will cancel long-running language server tasks. -
Added the ability to cancel a cargo check by clicking on the status bar item.
Vim
- Added pending keys to the mode indicator in Vim mode.
- See it in action here.
- Added support for register selection
"a
-"z
,"0
-"9
,"-
."_
and"%
(#11511). - Added support for multicursor registers (#11687).
- Added support for the
"/
register. - Added
gv
to restore previous visual selection (#12888). - Added support for
ctrl-r X
to paste in insert mode (#4308). - Fixed
home
andend
in visual mode (#13068). - Fixed inserting a 0 in insert mode with a count (#9383).
- Fixed
gi
when the insert ended at the end of a line (#12162). - Fixed
gl
when the first match is at the end of a line. - Fixed behavior of
dw
at the end of a soft wrapped line. - Fixed ci" on keyboards where typing a " requires the IME (#12523).
- Fixed an issue where held-down modifier keys (such as Shift) would interrupt continuous key events, affecting navigation and selection behavior (#12566).
Bug Fixes
- Fixed some syntax highlighting bug in Python (#12578).
- Fixed auxiliary details in completions returned by VTSLS
(#13043). - Fixed a bug where the selected tab was not always shown when cycling between tabs with
ctrl-tab
. - Fixed a bug where the command palette was not scrolling down to the last element.
- Fixed a bug where "Find all references" editor had cursor placed on the first line of the first excerpt in the multibuffer instead of having it on the first reference.
- Fixed a possible hang when opening a worktree in a .git directory.
- Fixed snippet completions sometimes being treated as plain text completions when using VTSLS (#12920).
- Fixed the Hide Copilot context menu item to modify the appropriate setting.
- Fixed a panic when editing C code (#13128).
v0.141.2-pre
- Fix: Command palette not scrolling down to the last element
- Fixed a bug where "Find all references" editor had cursor placed on
the first line of the first excerpt in the multibuffer instead of having
it on the first reference.
v0.141.1-pre
Release Notes:
- Fixed spurious appliance of auto-formatting to YAML blocks.
v0.141.0-pre
Enhancements
General
- Added an outline panel to show a "map" of the active editor. Toggle the outline panel via
outline panel: toggle focus
.
Pair the outline panel with the search multi-buffer to get a better overview of your search results!
- Added support for snippets via simple-completion-language-server (#4611). To begin using snippets, install the snippets extension from the extension store:
Place your snippet files in ~/.config/zed/snippets
. For instance, in your ~/.config/zed/snippets/snippets.json
file, you may have:
{
"my snippet": {
"prefix": "log",
"body": ["console.log(\"$1\")"],
"description": "Expand `log` to `console.log()`"
}
}
For more configuration information, see the simple-completion-language-server
instructions.
- Added support for dropping files from the finder onto the project panel (#7386).
- Added a 'selection and movement' tool to the Editor's toolbar, as well as controls to toggle it and a setting to remove it (
"toolbar": {"selections_menu": true/false }
). - Changed the behavior of the
+
menu in the tab bar to use standard actions and keybindings. ReplacedNew Center Terminal
withNew Terminal
, andNew Search
, with the usualDeploy Search
. Also added item-creating actions to this menu. - Improved performance of project panel in large worktrees.
- Improved the look of code action and run indicators in the gutter (#12803).
- Improved the style of disclosure controls throughout the UI.
AI
- Improved the behavior of inline assist so that it no longer closes when an editor loses focus (e.g., from switching tabs) and then gains focus again. Instead, it only closes when you move the cursor outside of it, e.g., by clicking somewhere else in its parent editor.
Languages
- VTSLS is now a default language server for TypeScript, TSX, and JavaScript.
- Improved quality of auxiliary details in completions returned by VTSLS.
- Added a more detailed message in place of the generic
checking...
messages when Rust-analyzer is running. - Added a rate limit for language server status messages, to reduce noisiness of those updates.
- Added a
cancel language server work
action which will cancel long-running language server tasks. - Added the ability to cancel a cargo check by clicking on the status bar item.
- Improved syntax highlighting in Python (#12578).
Vim
- Added pending keys to the mode indicator in Vim mode.
- See it in action here.
- Added support for register selection
"a
-"z
,"0
-"9
,"-
."_
and"%
(#11511). - Added support for multicursor registers (#11687).
- Added support for the
"/
register. - Added
gv
to restore previous visual selection (#12888). - Added support for
ctrl-r X
to paste in insert mode (#4308).
Bug Fixes
- Fixed a bug where the selected tab was not always shown when cycling between tabs with
ctrl-tab
. - Fixed a possible hang when opening a worktree in a .git directory
- Fixed snippet completions sometimes being treated as plain text completions when using VTSLS (#12920).
- Fixed the Hide Copilot context menu item to modify the appropriate setting.
- Fixed a panic when editing C code (#13128).
- Vim: Fixed
home
andend
in visual mode (#13068). - Vim: Fixed inserting a 0 in insert mode with a count (#9383).
- Vim: Fixed
gi
when the insert ended at the end of a line (#12162). - Vim: Fixed
gl
when the first match is at the end of a line. - Vim: Fixed behavior of
dw
at the end of a soft wrapped line. - Vim: Fixed ci" on keyboards where typing a " requires the IME (#12523).
- Vim: Fixed an issue where held-down modifier keys (such as Shift) would interrupt continuous key events, affecting navigation and selection behavior (#12566).
Breaking changes
- Removed the
language_overrides
alias for thelanguages
setting, thecopilot
alias for theinline_completions
setting, and theshow_copilot_suggestions
alias for theshow_inline_completions
setting. If you have settings underlanguage_overrides
,copilot
, orshow_copilot_suggestions
, they should get moved tolanguages
,inline_completions
, andshow_inline_completions
, respectively. (#13171 ).
v0.140.5
Enhancements
General
- Added an Ollama Provider for the assistant. If you have Ollama running locally on your machine, you can enable it in your settings under:
"assistant": {
"version": "1",
"provider": {
"name": "ollama",
// Recommended setting to allow for model startup
"low_speed_timeout_in_seconds": 30,
}
}
Chat like usual
Interact with any model from the Ollama Library
Open up the terminal to download new models via ollama pull
:
- Added support for snippets via simple-completion-language-server (#4611). To begin using snippets, install the snippets extension from the extension store:
Place your snippet files in ~/.config/zed/snippets
. For instance, in your ~/.config/zed/snippets/snippets.json
file, you may have:
{
"my snippet": {
"prefix": "log",
"body": ["console.log(\"$1\")"],
"description": "Expand `log` to `console.log()`"
}
}
For more configuration information, see the simple-completion-language-server
instructions.
- Added the ability to search inside of selections (#8617).
- Improved the performance of the project panel in large directories
- Added the
editor: toggle tab bar
action. - Improved performance when handling large responses from language servers.
AI
- Added search for saved assistant history.
- Added
/now
command to the Assistant for getting the current date and time. - Improved the handling of JSON response bodies in the
/fetch
command in the Assistant.
Languages
- Added runnable tests for TSX files. Runnable tests can be customized via
tsx-test
tag. - Added support for linked editing ranges LSP request. Editing opening tags in HTML/TSX files (with vtsls) performs the same edit on the closing tag as well (and vice versa) (#4535).
- Added auto-completion support for
package.json
files (#12792). - Added support for looking up the
rust-analyzer
binary in$PATH
. This allows using such tools asasdf
and nix to configure per-folder rust installations. To enable this behavior, use thepath_lookup
key when configuring therust-analyzer
binary
:{"lsp": {"rust-analyzer": {"binary": {"path_lookup": true }}}}
. - Added
inl
to cpp config (#12605).
Vim
- Allowed scrolling the currently-open information overlay using
ctrl-{u,d,e,y}
etc (#11883). - Added
g/
for project search. - Added
gu
/gU
/g~
for changing case (#12565).
Bug Fixes
- Fixed some runnables in JavaScript/Typescript.
- Fixed an issue where the IME pre-edit could desynchronize from the editor on macOS (#11829).
- Fixed runnable for package.json, so it will work in any directory.
- Fixed a bug that caused titles generate by the LLM to be longer than one line.
- Fixed an issue where file icons were displayed in the project panel during a rename even when
project_panel.file_icons
was set tofalse
(#12905). - Fixed a panic when opening the diagnostics view.
- Fixed a crash that could happen when using certain cursor-motion bindings with a pending mouse selection.
- Fixed a panic when worktree paths are incorrectly relative.
- Fixed a panic when going to next search result when there are none.
- Fixed the wrong icon being used in the assistant setup instructions.
- Fixed
tailwindcss-language-server
not being activated inside Ruby strings (inside.erb
) (#12728).- Check the video here.
- Fixed
tailwind-language-server
not working in attributes inside of*.astro
files (#12402).- Check the video here.
- Fixed folder expansion when all items are closed (#12729).
- Vim: Fixed indent via
<
and>
not being repeatable with.
(#12351). - Vim: Fixed
f
/t
etc. for keys that require IME (#12522).
Breaking changes
- Renamed the
workspace::Restart
action toworkspace::Reload
to avoid accidentally restarting Zed when trying to restart language servers (#12609).