Releases: zed-industries/zed
Releases · zed-industries/zed
v0.131.0-pre
Enhancements
General
- Reduced memory usage for files by up to 50%.
- Added action to open markdown preview in the same pane.
- Added support for displaying channel notes in markdown preview.
- Added support for displaying the current active editor when opening markdown preview.
- Added support for scrolling the editor to the corresponding block when double clicking an element in markdown preview.
- Added tooltips when hovering over links inside the markdown preview.
- Added support for detecting and highlighting links in markdown preview.
- Added a status indicator for LSP actions (#4380).
- Added selection and line counts to the status bar (#4204). The format of the line indicator can be made more compact via the following setting:
"line_indicator_format": "short"
- Added a setting to hide/show the navigation history buttons:
"tab_bar": {
"show_nav_history_buttons": true
}
- Improved error reporting on startup (#9036).
- Increased search result context from 3 lines to 4 lines.
Tasks
- Added more icons to task modal.
- Added task status indicator to the status bar.
Languages
- Added
yield
keyword highlight for Rust. - Added highlighting for parameters in blocks in Ruby.
Vim
- Added search motions (
/,?,n,N,*,#
) in visual modes and as targets for operators liked
,c
,y
(#4346). - Added support for vim-surround (#4965). Note that HTML tags are not yet supported.
Bug Fixes
- Fixed an issue where the "New messages" indicator in the channel chat would be shown even if the message was deleted.
- Fixed highlighting of messages when clicking on the reply message text in the chat and there were no other messages from other users (#10024).
- Fixed clear chat state when switching edit/reply message state (#10042).
- Fixed an issue where the status of failed LSP actions was left in the status bar.
- Fixed status bar focus issues when spawning a terminal via
workspace: new terminal
action. - Fixed language server notifications being too large (#10090, #10190, #10217).
- Fixed "quickfix" code actions that were based on diagnostics not showing up in Go files (#10177).
- Fixed a bug where some hover popovers would render
\n
instead of a new line. - Fixed Zed not picking up shell environments correctly when running on macOS 12 (#9786).
- Fixed project shared notification staying open, when the user that shared the project left the room.
- Fixed highlighting of constants in Ruby (#9995).
- Fixed a bug where newline characters in file names would introduce UI artifacts in the project panel (#8603).
- Fixed several bugs in the project panel related to directories whose names contain numbers (#9729, #10193).
- Fixed crashes with huge
buffer_font_size
values (#10149). - Fixed a (rare) panic while collaborating.
- Fixed a crash when joining two consecutive lines (#9692).
- Vim: Fixed a bug with
cgn
backwards movement. - Vim: Fixed a bug where the block cursor would not render italic text under it (#8799).
- Vim: Fixed undo grouping in Replace mode (#10031).
- Vim: Fixed
:
when no files are open.
Breaking changes
- Removed built-in support for HTML and Dart, in favor of making them available as extensions. The respective extensions for these languages will be suggested for download when opening their associated file types:
.html
,.htm
, or.shtml
for HTML, and.dart
for Dart. - Disabled
format_on_save
by default in C and C++. - Updated
gn
andgN
to select the next search result as in Vim. Adding multi-cursors to the next/prev copy of the word under the cursor is now bound togl
/gL
. - Switched to the system UI font for user interface elements on macOS. The previous default font can be restored via the following snippet in your
settings.json
file:
"ui_font_family": "Zed Sans"
v0.130.5
v0.130.4
Enhancements
General
- Added
emmet
extension to the extension store. The extension offers initial support for Emmet in HTML files (#4992). - Added
editor: toggle git blame
command that toggles a sidebar with git blame information for the current buffer. By default,editor: toggle git blame
is bound tocmd-alt-g b
. - Added a tab switcher, which is accessible via
ctrl-tab
andctrl-shift-tab
(#7321, #7653). The tab switcher works in both the main workspace area and in the terminal panel. - Added the option to include the most-recently focused file in Zed as context to assistant chat panel (#9705).
- Check it out here.
- Added support for persisting project search history across a session (#9717).
- Added support for transparent and blurred window backgrounds on macOS (#5040).
- This requires themes to specify a new
background.appearance
key ("opaque", "transparent" or "blurred") and to include an alpha value in colors that should be transparent.
- This requires themes to specify a new
- Added an auto-update system for extensions (#8248).
- Added the ability to install any version of an extension (#8898).
- Added a close button to the
f8
inline diagnostics. - Improved editor performance when displaying lots of search results, diagnostics, or symbol highlights in the scrollbar (#9792).
- Improved discoverability of dev extension installation action (#10048).
- Improved target selection when jumping from multibuffer; final position in the buffer should more closely match the original position of the cursor in the multibuffer (#5296).
- Vim: Changed
cc
andS
in to only change the current line after its indentation (#9612).
Tasks
- Added a "remove" button next to oneshot tasks in tasks modal.
- Improved task tabs in terminal and show different icons based on task state.
- Improved
UseSelectedQuery
(shift-enter
) action for tasks modal by making it substitute a full command and not the task label.
Languages
- Added Tailwind CSS hover popovers (#7947).
- Added a new
formatter
/format_on_save
option:code_actions
. When configured, this uses language server code actions to format a buffer. This can be used if one wants to, for example, format a buffer with ESLint and not run prettier or another formatter afterwards. Example configuration:{"languages": {"JavaScript": {"formatter": {"code_actions": {"source.fixAll.eslint": true}}}}}
(#8992). - Added support for configuring ESLint
problems
settings, ie.{"lsp": {"eslint": {"settings": {"problems": {"shortenToSingleLine": true}}}}}
.- See it in action here.
- Added Tailwind support in
.vue
files (#4403). - Improved typescript-language-server integration by surfacing more information about completion items (#5287).
Bug Fixes
- Made "Find All References" respect the language server's capabilities. This fixes some instances where certain language servers would stop working after receiving a "Find All References" request.
- Fixed "Toggle comment" action not working in presence of non-default line comments such as doc comments in Rust (#10113).
- Fixed Zed sometimes missing environment variables from shell in case they were the first environment variable listed by
/usr/bin/env
. - Fixed issue where mention notifications are updated when channel message is updated and removed when message is removed.
- Fixed rejoining channels quickly after a restart.
- Fixed buffer being marked as dirty when using tab/tab-prev actions.
- Fixed tab header of project search changing when cycling through search history, even when there is no search submitted.
- Fixed a bug where git diff hunks were appearing in the symlinked files (#4730).
- Fixed a bug where the tooltip for the recent projects popover was not showing.
- Fixed the vertical alignment of labels in the file tree to better align with the file icons.
- Fixed one-shot tasks having duplicates in tasks modal.
- Fixed a file permissions issue when trying to use a Zig language server (
zls
) present on the $PATH. - Fixed a panic in
editor::SelectPrevious
(gN
in vim) (#9766). - Fixed a panic when deleting just-generated text.
- Fixed a panic when dragging into Zed.
- Fixed a panic in visual line mode with folds (#10284).
- Vim: Fixed motion bugs when softwrap, folds, or inlay hints were used.
- Vim: Fixed a bug where shortcuts in the command palette weren't showing the vim keymap keybindings (#4502).
- Vim: Fixed
%
in visual mode when at the end of a line. - Vim: Fixed the
t
object in not working correctly when cursor was on a tag (#8994, #9844).
Breaking changes
DuplicateLine
is now split into separateDuplicateLineUp
andDuplicateLineDown
commands, to improve discoverability in the command palette (#9601). If you are using a custom keybinding forDuplicateLine
, you will need to adjust it to reference the new command names.- Added "fire-and-forget" task spawning;
menu::SecondaryConfirm
in tasks modal now spawns a task without registering it as the last spawned task for the purposes oftask::Rerun
. By default you can spawn a task in this fashion withcmd+enter
or by holdingcmd
when clicking on a task entry in a list. Spawning oneshots has been rebound tooption-enter
(under apicker::ConfirmInput
name) (#9804). - Moved
menu::UseSelectedQuery
action topicker
namespace. - Removed built-in support for C#, Clojure, Erlang, PHP, TOML, and Zig, in favor of making them available as extensions. The respective extensions for these languages will be suggested for download when opening their associated file types:
.cs
for C#,.clj
or similar for Clojure,.erl
or.hrl
for Erlang,.php
for PHP,.toml
orCargo.lock
for TOML, and.zig
for Zig.
v0.130.4-pre
- Fixed an issue where the
toggle comments
command inserted the wrong line comment prefix in some languages (preview only).
v0.130.3-pre
- Fixed a file permissions issue when trying to use a Zig language
server (zls
) present on the $PATH.
v0.130.2-pre
- Made "Find All References" respect the language server's capabilities. This fixes some instances where certain language servers would stop working after receiving a "Find All References" request.
- Fixed panic when deleting just-generated text
- Fixed panic in tasks modal (Preview only).
- Fixed panic when dragging into Zed.
- Restore the ability to save a multibuffer (preview only)
- Fixed panic in visual line mode with folds (#10284)
v0.130.1-pre
Bug Fixes
- Improved error handling when formatting buffers with
prettier
. Previouslyprettier
errors would be logged but ignored. Nowprettier
errors are shown in the UI, just like language server errors when formatting. And if no formatter is specified (or set to"auto"
) and Zed attempts to useprettier
for formatting, thenprettier
errors are no longer skipped. That fixes the issue ofprettier
not formatting invalid syntax, but its error being skipped, leading totypescript-language-server
or another language server formatting invalid syntax.
v0.129.2
Bug Fixes
- Improved error handling when formatting buffers with
prettier
. Previouslyprettier
errors would be logged but ignored. Nowprettier
errors are shown in the UI, just like language server errors when formatting. And if no formatter is specified (or set to"auto"
) and Zed attempts to useprettier
for formatting, thenprettier
errors are no longer skipped. That fixes the issue ofprettier
not formatting invalid syntax, but its error being skipped, leading totypescript-language-server
or another language server formatting invalid syntax.
v0.130.0-pre
Enhancements
General
- Added
emmet
extension to the extension store. The extension offers initial support for Emmet in HTML files (#4992). - Added
editor: toggle git blame
command that toggles a sidebar with git blame information for the current buffer. By default,editor: toggle git blame
is bound tocmd-alt-g b
. - Added a tab switcher, which is accessible via
ctrl-tab
andctrl-shift-tab
(#7321, #7653). The tab switcher works in both the main workspace area and in the terminal panel. - Added the option to include the most-recently focused file in Zed as context to assistant chat panel (#9705).
- Check it out here.
- Added support for persisting project search history across a session (#9717).
- Added support for transparent and blurred window backgrounds on macOS (#5040).
- This requires themes to specify a new
background.appearance
key ("opaque", "transparent" or "blurred") and to include an alpha value in colors that should be transparent.
- This requires themes to specify a new
- Added an auto-update system for extensions (#8248).
- Added the ability to install any version of an extension (#8898).
- Added a close button to the
f8
inline diagnostics. - Improved editor performance when displaying lots of search results, diagnostics, or symbol highlights in the scrollbar (#9792).
- Improved discoverability of dev extension installation action (#10048).
- Improved target selection when jumping from multibuffer; final position in the buffer should more closely match the original position of the cursor in the multibuffer (#5296).
- Vim: Changed
cc
andS
in to only change the current line after its indentation (#9612).
Tasks
- Added a "remove" button next to oneshot tasks in tasks modal.
- Improved task tabs in terminal and show different icons based on task state.
- Improved
UseSelectedQuery
(shift-enter
) action for tasks modal by making it substitute a full command and not the task label.
Languages
- Added Tailwind CSS hover popovers (#7947).
- Added a new
formatter
/format_on_save
option:code_actions
. When configured, this uses language server code actions to format a buffer. This can be used if one wants to, for example, format a buffer with ESLint and not run prettier or another formatter afterwards. Example configuration:{"languages": {"JavaScript": {"formatter": {"code_actions": {"source.fixAll.eslint": true}}}}}
(#8992). - Added support for configuring ESLint
problems
settings, ie.{"lsp": {"eslint": {"settings": {"problems": {"shortenToSingleLine": true}}}}}
.- See it in action here.
- Added Tailwind support in
.vue
files (#4403). - Improved typescript-language-server integration by surfacing more information about completion items (#5287).
Bug Fixes
- Fixed "Toggle comment" action not working in presence of non-default line comments such as doc comments in Rust (#10113).
- Fixed Zed sometimes missing environment variables from shell in case they were the first environment variable listed by
/usr/bin/env
. - "Fixed issue where mention notifications are updated when channel message is updated and removed when message is removed.
- Fixed rejoining channels quickly after a restart.
- Fixed buffer being marked as dirty when using tab/tab-prev actions.
- Fixed tab header of project search changing when cycling through search history, even when there is no search submitted.
- Fixed a panic in
editor::SelectPrevious
(gN
in vim) (#9766). - Fixed a bug where git diff hunks were appearing in the symlinked files (4730).
- Fixed a bug where the tooltip for the recent projects popover was not showing.
- Fixed the vertical alignment of labels in the file tree to better align with the file icons.
- Fixed one-shot tasks having duplicates in tasks modal.
- Vim: Fixed motion bugs when softwrap, folds, or inlay hints were used.
- Vim: Fixed a bug where shortcuts in the command palette weren't showing the vim keymap keybindings (#4502).
- Vim: Fixed
%
in visual mode when at the end of a line. - Vim: Fixed the
t
object in not working correctly when cursor was on a tag (#8994, #9844).
Breaking changes
DuplicateLine
is now split into separateDuplicateLineUp
andDuplicateLineDown
commands, to improve discoverability in the command palette (#9601). If you are using a custom keybinding forDuplicateLine
, you will need to adjust it to reference the new command names.- Added "fire-and-forget" task spawning;
menu::SecondaryConfirm
in tasks modal now spawns a task without registering it as the last spawned task for the purposes oftask::Rerun
. By default you can spawn a task in this fashion withcmd+enter
or by holdingcmd
when clicking on a task entry in a list. Spawning oneshots has been rebound tooption-enter
(under apicker::ConfirmInput
name) (#9804). - Moved
menu::UseSelectedQuery
action topicker
namespace. - Removed built-in support for C#, Clojure, Erlang, PHP, TOML, and Zig, in favor of making them available as extensions. The respective extensions for these languages will be suggested for download when opening their associated file types:
.cs
for C#,.clj
or similar for Clojure,.erl
or.hrl
for Erlang,.php
for PHP,.toml
orCargo.lock
for TOML, and.zig
for Zig.
v0.129.1
Enhancements
General
- Added
emmet
extension to the extension store. The extension offers initial support for Emmet in HTML files (#4992). - Added built-in tasks for Rust and Elixir files.
- Added a keybinding (
shift-f12
) foreditor::GoToImplementation
. - Added support for inserting newlines (
\n
) and tabs (\t
) in editor Regex search replacements (#7645). - Added an
assistant.enabled
setting to control whether the Assistant is enabled. - Added the ability to specify no base keymap to allow for a blank slate for custom keybindings.
- Added a fast-switch mode to the file finder: hit
p
orshift-p
while holding downcmd
to select a file immediately (#8258, #8757). - Improved efficiency by avoiding formatting and full saving for buffers without changes (#9475).
- Improved visuals of task lists inside the markdown preview.
- Improved the clarity of the UI for diagnostic and search result headers.
Languages
- Added ability to specify
gopls
binarypath
(must be absolute) andarguments
in user settings. Example:{"lsp": {"gopls": {"binary": {"path": "/my/abs/path/gopls", "arguments": ["-debug=0.0.0.0:8080"] }}}}
. - Added workspace configuration settings support for elixir-ls language server. Those can now be configured by setting
{"lsp": {"elixir-ls": { "settings: { "your-settings-here": "here"} } }
in Zed settings (#4260). - Added more path suffixes recognized as C++.
- Improved C/C++ support by using user-installed clangd when available.
Bug Fixes
- Pinned
@vue/language-server
to version1.8
until Zed supports2.x
(#9388, #9329). - Fixed positioning of popup windows (e.g. when sharing a project) when using multiple external displays.
- Fixed a bug where channel chat notifications were no longer working.
- Fixed a bug where right clicking in the project panel's empty region did not produce an action menu (#9723).
- Fixed markdown preview task list rendering when there was a line break between two list items (#9783).
- Fixed markdown preview not handling hard breaks (e.g.
\
) correctly (#8990). - Fixed a bug where upgrading an extension did not work correctly if the extension had switched from using an old extension schema with
extension.json
to the new schema withextension.toml
. - Fixed a bug where Zed did not respond to the first, focusing, click on the application window (#4336).
- Fixed alignment of items in the title bar (#9709).
- Fixed a bug where code completions were overriding text around the cursor (#4816).
- Fixed a bug where multiple instances of the extensions view could be opened at once.
- Fixed a bug where tasks could not be used if the user had venv activation (detect_venv) enabled.
- Fixed a bug where environment variables were being leaked from tasks to the subsequent terminals.
Breaking changes
- Removed built-in support for Astro, Dockerfile, Gleam, Haskell, Prisma, PureScript, and Svelte, in favor of making them available as extensions. The respective extensions for these languages will be suggested for download when opening their associated file types:
.astro
for Astro,Dockerfile
for Docker,.gleam
for Gleam,.hs
for Haskell,.prisma
for Prisma,.purs
for PureScript, and.svelte
for Svelte. - Renamed the
copilot::Suggest
action toeditor::ShowInlineCompletion
. - Renamed the
copilot::NextSuggestion
action toeditor::NextInlineCompletion
. - Renamed the
copilot::PreviousSuggestion
action toeditor::PreviousInlineCompletion
. - Renamed the
editor::AcceptPartialCopilotSuggestion
action toeditor::AcceptPartialInlineCompletion
.