Skip to content

Releases: zed-industries/zed

v0.131.0-pre

10 Apr 19:30
04e6d5d
Compare
Choose a tag to compare
v0.131.0-pre Pre-release
Pre-release

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 like d,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 and gN 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 to gl/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

10 Apr 21:02
Compare
Choose a tag to compare
  • Fixed a crash that could occur when loading malformed Wasm extensions (#10352).

v0.130.4

10 Apr 17:39
Compare
Choose a tag to compare

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 to cmd-alt-g b.
  • Added a tab switcher, which is accessible via ctrl-tab and ctrl-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.
  • 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 and S 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 separate DuplicateLineUp and DuplicateLineDown commands, to improve discoverability in the command palette (#9601). If you are using a custom keybinding for DuplicateLine, 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 of task::Rerun. By default you can spawn a task in this fashion with cmd+enter or by holding cmd when clicking on a task entry in a list. Spawning oneshots has been rebound to option-enter (under a picker::ConfirmInput name) (#9804).
  • Moved menu::UseSelectedQuery action to picker 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 or Cargo.lock for TOML, and .zig for Zig.

v0.130.4-pre

09 Apr 22:39
Compare
Choose a tag to compare
v0.130.4-pre Pre-release
Pre-release
  • Fixed an issue where the toggle comments command inserted the wrong line comment prefix in some languages (preview only).

v0.130.3-pre

09 Apr 15:57
Compare
Choose a tag to compare
v0.130.3-pre Pre-release
Pre-release
  • Fixed a file permissions issue when trying to use a Zig language
    server (zls) present on the $PATH.

v0.130.2-pre

08 Apr 19:47
Compare
Choose a tag to compare
v0.130.2-pre Pre-release
Pre-release
  • 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

04 Apr 12:13
Compare
Choose a tag to compare
v0.130.1-pre Pre-release
Pre-release

Bug Fixes

  • Improved error handling when formatting buffers with prettier. Previously prettier errors would be logged but ignored. Now prettier 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 use prettier for formatting, then prettier errors are no longer skipped. That fixes the issue of prettier not formatting invalid syntax, but its error being skipped, leading to typescript-language-server or another language server formatting invalid syntax.

v0.129.2

04 Apr 12:13
Compare
Choose a tag to compare

Bug Fixes

  • Improved error handling when formatting buffers with prettier. Previously prettier errors would be logged but ignored. Now prettier 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 use prettier for formatting, then prettier errors are no longer skipped. That fixes the issue of prettier not formatting invalid syntax, but its error being skipped, leading to typescript-language-server or another language server formatting invalid syntax.

v0.130.0-pre

03 Apr 18:09
Compare
Choose a tag to compare
v0.130.0-pre Pre-release
Pre-release

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 to cmd-alt-g b.
  • Added a tab switcher, which is accessible via ctrl-tab and ctrl-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.
  • 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 and S 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 separate DuplicateLineUp and DuplicateLineDown commands, to improve discoverability in the command palette (#9601). If you are using a custom keybinding for DuplicateLine, 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 of task::Rerun. By default you can spawn a task in this fashion with cmd+enter or by holding cmd when clicking on a task entry in a list. Spawning oneshots has been rebound to option-enter (under a picker::ConfirmInput name) (#9804).
  • Moved menu::UseSelectedQuery action to picker 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 or Cargo.lock for TOML, and .zig for Zig.

v0.129.1

03 Apr 18:03
Compare
Choose a tag to compare

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) for editor::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 or shift-p while holding down cmd 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 binary path (must be absolute) and arguments 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 version 1.8 until Zed supports 2.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 with extension.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 to editor::ShowInlineCompletion.
  • Renamed the copilot::NextSuggestion action to editor::NextInlineCompletion.
  • Renamed the copilot::PreviousSuggestion action to editor::PreviousInlineCompletion.
  • Renamed the editor::AcceptPartialCopilotSuggestion action to editor::AcceptPartialInlineCompletion.