Skip to content

Releases: zed-industries/zed

v0.141.1-pre

21 Jun 09:48
Compare
Choose a tag to compare
v0.141.1-pre Pre-release
Pre-release

Release Notes:

  • Fixed spurious appliance of auto-formatting to YAML blocks.

v0.141.0-pre

19 Jun 18:57
Compare
Choose a tag to compare
v0.141.0-pre Pre-release
Pre-release

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!

outline panel

  • Added support for snippets via simple-completion-language-server (#4611). To begin using snippets, install the snippets extension from the extension store:

snippets

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. Replaced New Center Terminal with New Terminal, and New Search, with the usual Deploy 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).

Before

After

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 and end 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 the languages setting, the copilot alias for the inline_completions setting, and the show_copilot_suggestions alias for the show_inline_completions setting. If you have settings under language_overrides, copilot, or show_copilot_suggestions, they should get moved to languages, inline_completions, and show_inline_completions, respectively.

v0.140.5

19 Jun 18:28
Compare
Choose a tag to compare

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

image

Interact with any model from the Ollama Library

image

Open up the terminal to download new models via ollama pull:

image

  • Added support for snippets via simple-completion-language-server (#4611). To begin using snippets, install the snippets extension from the extension store:

snippets

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 as asdf and nix to configure per-folder rust installations. To enable this behavior, use the path_lookup key when configuring the rust-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 to false (#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 to workspace::Reload to avoid accidentally restarting Zed when trying to restart language servers (#12609).

v0.140.5-pre

18 Jun 22:39
Compare
Choose a tag to compare
v0.140.5-pre Pre-release
Pre-release
  • Fixed a panic when going to next search result when there are none.

v0.140.4-pre

14 Jun 19:40
Compare
Choose a tag to compare
v0.140.4-pre Pre-release
Pre-release
  • Fixed a panic when worktree paths are incorrectly relative.
  • Fixed a crash that could happen when using certain cursor-motion bindings with a pending mouse selection.
  • Fixed a bug in telemetry.

v0.140.2-pre

13 Jun 20:37
Compare
Choose a tag to compare
v0.140.2-pre Pre-release
Pre-release
  • Improved the performance of project panel in large directories
  • Fixed issues with window positioning on X11
  • Fixed an issue on linux where git statuses and diffs would fail to update after taking git actions like committing and rebasing

v0.140.1-pre

13 Jun 16:19
Compare
Choose a tag to compare
v0.140.1-pre Pre-release
Pre-release
  • Fixes remote development (alpha group only)
  • First preview release with linux-aarch64 builds

v0.140.0-pre

12 Jun 19:05
Compare
Choose a tag to compare
v0.140.0-pre Pre-release
Pre-release

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

image

Interact with any model from the Ollama Library

image

Open up the terminal to download new models via ollama pull:

image

  • Added the ability to search inside of selections (#8617).
  • Added the editor: toggle tab bar action.
  • Improved language server restart command ergonomics by renaming workspace::Restart action into workspace::Reload to remove any other "restart"-worded actions in the list (#12609).
  • 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 as asdf and nix to configure per-folder rust installations. To enable this behavior, use the path_lookup key when configuring the rust-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 to false (#12905).
  • Fixed a panic when opening the diagnostics view.
  • 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).

v0.139.3

12 Jun 17:40
Compare
Choose a tag to compare

Enhancements

General

  • Added the ability to restart the remote language servers when collaborating.
  • Added boundary whitespace rendering option (#4290).

boundary whitespace rendering

  • Added support for copying permalinks inside multi-buffers (#11392).
  • Added the ability to format unsaved buffers with external formatters (#4529).
  • Improved excluded entry creation workflow in the project panel (#10890).
  • Improved Zed's responsiveness when initially opening a project containing a very large git repository (#9575).
  • Improved the performance of git status updates when working in large git repositories (#4294).

AI

  • Improved the UX for selecting a model in the assistant panel. You can now switch models using just the keyboard by pressing alt-m. Also, when switching models via the UI, settings will now be updated automatically.
  • Improved UX for the inline assistant. It will now automatically wrap when the text gets too long, and you can insert newlines using shift-enter.

Languages

  • Added runnable tasks for Python unittest (#12080).
  • Added runnable tests for JavaScript & TypeScript files.
  • Added task to run selected JavaScript code.
  • Added support for using vtsls language server for TypeScript/JavaScript. To enable vtsls, adjust the language_servers field of the language in your settings.json file:
"TypeScript": {
  "language_servers": ["!typescript-language-server", "vtsls", ".."],
}
  • Improved performance and reliability of completions in large TypeScript projects (#5166).
  • Added completions for tsconfig.json config file.
  • Improved Vue highlighting (#8989).
  • Added runnable tasks for Elixir tests (modules, describe, and test blocks).

Elixir runnable tasks

Vim

  • Implemented > and < with motions and text objects (#9697).

Bug Fixes

  • Fixed file drag and drop not working for the terminal.
  • Fixed a crash caused by bad file descriptor lifetime handling.
  • Fixed crash on macOS when using certain input sources.
  • Fixed TSX shorthand property syntax highlighting (#12510).
  • Fixed JavaScript shorthand property syntax highlighting (#12509).
  • Fixed a bug where "rerun last task" in task modal was not working (#12580).
  • Fixed an issue in vim mode where using find (f) to search for the letter g caused a delay while the editor awaited further input (#12483).
  • Fixed the alignment for the inline assistant.
  • Fixed TypeScript shorthand property highlight (#5239).
  • Fixed some bugs with running tests in Elixir.
  • Fixed VTSLS being enabled by default and duplicating completions with typescript-language-server

Breaking Changes

  • Rebound "picker::UseSelectedQuery" from opt-E to F2 (#12580).

v0.139.3-pre

07 Jun 09:01
Compare
Choose a tag to compare
v0.139.3-pre Pre-release
Pre-release
  • Fixed drag&dropping project panel entries into editor area & tab bar (#12733)