Preview releases

July

Zed 0.144.2

07/12/2024

  • linux: Fix more panics on launch when GPU is mis-configured. Also link to the docs in the error message.
  • linux: Fix panic when failing to parse a keystroke from xkbcommon
  • linux: Fix panic when setting cursor to a kind that the platform does not support

Zed 0.144.1

07/11/2024

Bug fixes

  • Linux Keymap: Move editor::JoinLines to ctrl-shift-j (#14136
  • Fix reverse selections always being cleared, even if the right click was performed inside (#14150). Preview-only.

Zed 0.144.0

07/10/2024

Linux Support ๐ŸŽ‰

Linux when? Linux now. ๐ŸŽ‰๐Ÿง

For the last 6 months, our team and our open source community have been working hard to bring Zed to Linux.

As of today, we've released our first, official, stable build of Zed on Linux!

Enhancements

Languages

  • Added support for setting classAttributes in the configuration for tailwindcss-language-server. Example: { "lsp": { "tailwindcss-language-server": { "settings": { "classAttributes": [ "class", "className", "ngClass", "styles" ] } } } }.

General

  • Extensions can now provide snippets by including snippets.json file next to the extension manifest.
  • Move snippet support into the core editor deprecating the snippet extension. Snippets are now available in any buffer including plain text. (#13937).
  • Improved back/forward tooltips (#8459).
  • Improved contrast between some items in the One Dark theme.
  • Added support for filtering in the outline panel (#13984).

Vim

  • Fixed vim undo and redo commands not taking counts. (#13950, thanks mattfbacon).
  • Fixed an issue with start of line anchor in regex search (#13920, thanks rokob).

Bug Fixes

  • Fixed auto close for single quotes in Python (#13972).
  • Fixed telemetry putting temporary files in config_dir (#7155).
  • Fixed origin packages not being surfaced in Rust completions (#13494).
  • Fixed honoring of the terminal.font_weight user setting (thanks hron).
  • Fixed selections being cleared when right-click was performed outside of a selection (#4267, thanks WeetHet).
  • Fixed Go shell escaping for tasks (#14054, thanks DanielMSchmidt).
  • Fixed undocumented system dependency on unzip to extract .zip files downloaded by extensions.
  • Fixed some issues with restoring the state of some panels after a restart (#9638, #12954, thanks yongkangchen).
  • Nix's flake.lock files are now automatically identified as JSON.

Zed 0.143.6

07/10/2024

  • (Linux only) Shipping pre-launch changes

Zed 0.143.5

07/09/2024

Zed 0.143.4

07/09/2024

  • (Linux only) Shipping pre-launch changes

Zed 0.143.3

07/09/2024

  • (Linux only) Shipping pre-launch changes

Zed 0.143.2

07/05/2024

  • Fixed delay when changing scrolling direction (#13867).

Zed 0.143.1

07/05/2024

  • Linux window decorations (#13611)

Zed 0.143.0

07/03/2024

Enhancements

AI

  • Added new assistant: insert into editor Action. Default keybinding: cmd-< on macOS, ctrl-< on Linux (#13467).

General

  • Changed the default fonts to IBM Plex Sans and IBM Plex Mono. If you'd like to go back to using Zed Sans/Zed mono you need to download them and install them (#13596).
  • Default to a light theme during the day (#9627)
  • Add keyboard shortcuts for scrolling in terminal (#4917, #12231).
  • Changed the default key bindings for pageup/pageup on Mac and Linux so that it moves the cursor (editor::MovePageDown). Previous scroll only behavior (editor::PageDown) is now available via cmd-pagedown on MacOS and alt-pagedown on Linux (#13389)
  • Added updated window controls on Linux (#13751)
  • Added recognizing *.markdown files as Markdown (#13608).
  • Added duplicate line shortcut to Sublime Text shortcuts (#13640)
  • Added shift shift as a default binding to open the command palette in the JetBrains keymap (#13556).

Performance

  • Improve editor's performance with large undo histories (#13656)
  • Improved performance of "replace all" in buffer search and project search (#13654).
  • Improved power consumption on Intel Macs by preferring integrated GPUs over the discrete GPUs. (#5124).

Vim

  • vim: Support for macros (q and @) to record and replay (#1506, #4448).
  • vim: Fix undo after repeated insert/replace mode (#13573).
  • vim: Fix 'r' repeating too much (#13566).
  • vim: Fixed : in empty diagnostics view (#13624)
  • vim: Fixed g/ outside of an editor (#13624).
  • vim: Add vim bindings for outline panel (#13763).

Bug Fixes

  • Fixed some responses being dropped from OpenAI-compatible providers (#13741 thanks @AdjectiveAllison).
  • Improved project panel ergonomics (#13704)
  • Fixed focusing the terminal when re-spawning a task (#13674). See video: focus-task-fix.webm
  • Fix auto-rename ranges with special characters (#13551).
  • Fixed Rust tests not working when crates Cargo.toml is not at the root of a worktree (#13658).
  • Fixed Vue extension not picking up user-provided initialization options (13580).
  • Code maintenance in the editor crate (#13565, thanks @Peiffap).

Zed 0.142.4

07/03/2024

  • Fixed JSON validation being disabled by default (Preview only)

June

Zed 0.142.3

06/28/2024

  • Fixed a bug that was causing system prompts to be dropped for Anthropic models.

Zed 0.142.2

06/27/2024

  • 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

Zed 0.142.1

06/26/2024

Bug Fixes

  • Fixed package.json language server failing to start (#13555).

Zed 0.142.0

06/26/2024

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).

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 .gitignored. (#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).

Zed 0.141.2

06/23/2024

  • 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.

Zed 0.141.1

06/21/2024

Release Notes:

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

Zed 0.141.0

06/19/2024

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
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
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
Before
After
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. (#13171 ).

Zed 0.140.5

06/18/2024

  • Fixed a panic when going to next search result when there are none.

Zed 0.140.4

06/14/2024

  • 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.

Zed 0.140.2

06/13/2024

  • 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

Zed 0.140.1

06/13/2024

  • Fixes remote development (alpha group only)
  • First preview release with linux-aarch64 builds

Zed 0.140.0

06/12/2024

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
image

Interact with any model from the Ollama Library

image
image

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

image
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).

Zed 0.139.3

06/07/2024

  • Fixed drag&dropping project panel entries into editor area & tab bar (#12733)

Zed 0.139.1

06/06/2024

  • typescript: Fixed VTSLS being enabled by default and duplicating completions with typescript-language-server

Zed 0.139.0

06/05/2024

Enhancements

General

  • Added the ability to restart the remote language servers when collaborating.
  • Added boundary whitespace rendering option (#4290).
boundary whitespace rendering
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
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.

Breaking Changes

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

Zed 0.138.4

06/03/2024

  • Fixed an issue where indent guides would show up in a single line editor (e.g. project search, buffer search).
  • Fixed an issue where indent guide specific settings were not recognized when specified in local settings (#12564).
  • Respect language specific settings when showing indent guides in a multibuffer.

May

Zed 0.138.3

05/31/2024

  • Fixed an issue where indent guides would use an incorrect tab size (#12492).
  • Fixed a panic that could sometimes occur when rerunning tasks.

Zed 0.138.2

05/30/2024

  • Removed a work-in-progress feature from the assistant panel.

Zed 0.138.1

05/29/2024

Zed 0.138.0

05/29/2024

Enhancements

General

  • Added indent guides (#5373).
indent_guides
indent_guides
  • Improved expand excerpt indicators in multi-buffers to allow unidirectional expansion. Also added the editor::ExpandExcerptsUp and editor::ExpandExcerptsDown actions, which can both take a lines parameter. Also added an expand_excerpt_lines setting which controls the default number of lines that the indicators and actions use.
  • Added the ability to configure the weight of your UI font in standard CSS weight units from 0 to 900.
  • Added support for background_color in syntax map in theme.json.
  • Changed the default calls.share_on_join value to false.
  • Improved ergonomics of untitled buffer formatting with Prettier; no additional language settings are needed by default.

Project Panel

  • Added support for selecting multiple entries via cmd-click and shift-click/shift-up/shift-down in the project panel (#4983).
  • Added support for handling multiple selected project panel entries to Cut, Copy, Trash, and Delete actions (#4983).
  • Added the ability to copy a project panel entry by holding the opt modifier when dragging and dropping (#5119).
  • Added icon and hover description for symlinks in the project panel.
symlink_icon
symlink_icon
symlink_tooltip
symlink_tooltip
  • Improved workflow for creating a directory in the project panel. When creating a new file, a filename ending with / creates a directory.
  • Improved organization of worktrees in the project panel. Now you can reorder worktrees by dragging and dropping them (#10883).
  • Added binding key to Delete action in the project panel context menu (#12234).

AI

  • Improved clarity for inline transformations by always including the active assistant context.
  • Removed an over-eager system prompt from the assistant that was causing misbehavior. Going forward, our intent is to always let you observe and edit text before we send it.
  • Added a send button to the assistant panel.

Tasks

  • Added re-run task button to terminal title (#12277).
  • Added ZED_RELATIVE_FILE (path to current file relative to worktree root) and ZED_DIRNAME (path to the directory containing current file) task variables.

Languages

  • Added runnable icon for Rust #[cfg(test)] mod tests blocks (#11967).
  • Added Runnables/Tasks in Go for:
    • Run test functions which start with "Test"
    • Run subtests
    • Run benchmark tests
    • Run main function

go_runnables
go_runnables
Check out the video.

  • Added runnable for package.json and composer.json scripts (#12215).
  • Added .mdwn as a Markdown file extension.

Vim

  • Added ]d/[d for go to prev/next diagnostic.
  • Added ]c/[c to go to prev/next git change (:diff and :revert show the diff and revert it).
  • Added g cmd-d for go to implementation.

Bug Fixes

  • Fixed a bug that caused long delays in opening files right after performing a commit in very large git repositories.
  • Fixed an issue where the editor would scroll upwards if other tabs were closed using the middle mouse button.
  • Fixed hunk indicators getting expanded when clicking near them, but not on them.
  • Fixed wrap guides overlapping with the inline assistant (#9819).
  • Fixed JetBrains keymap search::SelectAllMatches action (alt-enter) (#11840).
  • Fixed a panic that could occur when trying to parse colors with unicode characters (#12085).
  • Fixed a panic that occurred when using the assistant: quote selection command while signed out.
  • Fixed a bug where documentation was sometimes missing from the autocomplete popover (#12152).
  • Fixed positioning of whitespace dots on multibyte text (#10332).
  • Vim: Fixed shift-d in visual and visual block mode.

Zed 0.137.2

05/24/2024

  • (more) Fixes for remote development (alpha group only)

Zed 0.137.1

05/23/2024

  • Fixes for remote development (alpha group only)

Zed 0.137.0

05/22/2024

Enhancements

General

  • Added the ability to format unsaved buffers with Prettier. This requires setting a Prettier parser in the user settings. Example for JSON: { "languages": { "JSON": { "prettier": { "allowed": true, "parser": "json" } } } } (#4529).
  • Changed the behavior of workspace::CloseActiveItem: when you're using macOS and there are no open tabs, it now closes the window (#5322). This can be controlled with a new setting, when_closing_with_no_tabs, to disable it on macOS, or enable it on other platforms.
  • Improved file finder search sorting (#11970).
  • Improved editing of file names in the project panel. Now, the file icon is shown as soon as the file extension is typed, even before the rename is confirmed.
  • Added a proxy setting (#5032, #6701, #8650, #9424, #9422, #11890).
  • Added a Duplicate action to the project panel (#5304).
  • Added the ability to create directories in open->file dialog on macOS.
Create directories in open->file dialog on macOS
Create directories in open->file dialog on macOS
  • Added a New Window item to the dock menu (#11651).

  • Standardized CLI application startup to match non-CLI application startup behavior: both now open an empty file or show the welcome page if no previous workspace exists and no path is provided.

  • Added glob support for file_types configuration (#10765).

file_types can now be written like this:

"file_types": {
  "Dockerfile": [
    "Dockerfile",
    "Dockerfile.*",
  ]
}
  • Added Cut, Copy, and Paste actions to the editor context menu (#4280).
  • Changed middle mouse down to trigger columnar selection, creating a rectangle of multicursors over a dragged region (#11990).
  • Improved performance of editing the assistant panel and untitled buffers with many edits.
  • Added font feature values. Now you can set font features like "cv01": 7.
  • Changed context menus in editors to no longer scale with buffer_font_size.
  • Added support for all OpenType font features to macOS.
  • Changed the default ESLint configuration to include the following in order to silence warnings/errors: {"codeAction": { "disableRuleComment": { "enable": true, "location": "separateLine", }, "showDocumentation": { "enable": true } }}

AI

  • Added editor::AcceptInlineCompletion action (bound to Tab by default). To prevent accepting inline completions with tab, add {"context": "Editor && inline_completions", "bindings": {"tab": "editor::Tab"}} (#6788).

Tasks

  • Added coloration to task icons in terminal based off status (#11968).
Task icon coloration
Task icon coloration

Languages

  • Added support for autoclosing of HTML tags in local projects (#5267). This feature is enabled by default, but can be disabled with the following snippet in your settings.json:
"lsp": {
  "vscode-html-language-server": {
    "settings": {
      "html": { "tagAutoclosing": false }
    }
  }
}
  • Added built-in Go runnables and tasks that allow users to run Go test functions, test packages, or run main functions.
  • Added gopls support when opening go.mod or go.work files.
  • Added test runnable detection for PHP (PHPUnit & Pest).
  • Added task for running selected PHP code.
  • Added describe, test, and it functions to buffer symbols to support Pest runnable in PHP.
  • Added yield keyword to PHP keyword mapping.
  • Added GraphQL icon for .gql and .graphqls files.
  • Added ability to pass initialization_options to Ruby language servers (solargraph and ruby-lsp).
  • Added ability to configure own build of tailwindcss-language-server in Zed settings. Example: {"lsp":{"tailwindcss-language-server":{"binary":{"arguments":["/absolute/path/to/tailwindcss-language-server/bin/tailwindcss-language-server", "--stdio" ]}}}}
  • Fixed documentation not showing up for completion items coming from tailwindcss-language-server (#10532).

Bug Fixes

  • Fixed $ZED_SELECTED_TEXT variable in Tasks ignoring whether visual-line-mode in Vim was used.
  • Fixed language servers (such as gopls) not starting up correctly when opening a single file in Zed (#11361, #8764).
  • Fixed Zed's internal Node runtime not being put in $PATH correctly when running language servers and other commands with node (#11890).
  • Fixed gopls not working correctly when the go.mod file was in a subfolder and not the root folder of the project opened in Zed (#10224).
  • Fixed backtick characters not getting autoclosed in Golang files (#12025).
  • Fixed keybinding for rename in project panel context menu to be F2 (#11608).
  • Fixed a bug where lsp completion requests were sometimes being made twice.
  • Fixed default Prettier not respecting Zed's hard_tabs settings.
  • Fixed multiple save modals appearing for the same file being closed (#10192).
  • Fixed a theme-specific bug with highlighting of variable in Python files (#11666).

Zed 0.136.2

05/16/2024

  • Fixed an issue where the completion menu would sometimes appear detached from the cursor location (preview only).

Zed 0.136.1

05/16/2024

  • Fixed missing token count for GPT-4o model in assistant. #11893

Zed 0.136.0

05/15/2024

Enhancements

General

  • Added support for hiding the tab bar (part of #6424, #4963). Turn off the tab bar by adding the following to your settings.json:
"tab_bar": {
    "show": false
}
  • Added support for opening subfolders of git repositories and treating them as part of a repository (show git status in project panel, show git diff in gutter, git blame works, ...) (#4672).
  • Added "Open permalink" option to right-click menu of git blame entries in gutter.
  • Added a pane: alternate file command, to navigate back and forth between two buffers, and bound it to ctrl-6 in Vim mode.
  • Added the current_line_highlight setting that defines how to highlight the current line in the editor (#5222).
  • Added --foreground to the CLI to allow running Zed on the current PTY.
  • Improved the behavioral consistency of editor: go to diagnostic and editor: go to prev diagnostic.
  • Improved responsiveness of the main thread under high system load.
  • Changed UI elements within the editor to scale based on buffer_font_size (e.g., code action indicators, task run indicators, etc.).

AI

  • Added support for interacting with Claude in the assistant panel (#8914). You can enable it by adding the following to your settings.json:
"assistant": {
    "version": "1",
    "provider": {
        "name": "anthropic"
    }
}
  • Added a new ambient context feature that allows showing the model up to three buffers (along with their diagnostics) that the user interacted with recently.
  • Added the ability to use the inline assistant within the assistant panel.
  • Added GPT-4o support to the assistant and made it the default.
  • Added a low_speed_timeout_in_seconds setting to the Assistant's OpenAI provider (#9913).

Tasks

  • Improved tasks modal by highlighting a distinction between a task template and concrete task instance and surfacing available keybindings more prominently. Task templates are now always available in the modal, even if there's already a history entry with the same label.

Vim

  • Added support for the changelist. g; and g, to go to the previous/next change.
  • Added support for the '. mark.
  • Added support for gi to resume the previous insert.
  • Added support for buffer-local marks ('a-'z) and some builtin marks '<,'>,'[,'], '{, '} and ^. Global marks ('A-'Z), and other builtin marks ('0-'9, '(, '), '', '., '") are not yet implemented (#5122).
  • Added support for pasting with a count (#10842).

Languages

  • Added ability to configure settings for tailwindcss-language-server, namely the includeLanguages and experimental objects.

Bug Fixes

  • Fixed icon in inline git blame entry not changing with the buffer font size (#11311).
  • Fixed rendering issues that could arise when having large amounts of text displayed on a large display. Fixed by dynamically increasing the size of the buffers used on the GPU (#11615).
  • Fixed the size of the completions menu changing based on the size of the aside (#11722).
  • Fixed a bug where all run buttons would show up as pressed when clicking on a single run button.
  • Fixed a bug where Vim bindings were not available when mouse context menu was open.
  • Fixed the go to definition before by not selecting the target range when the target range has more than one line (#11347).
  • Fixed ctrl-space not being forwarded correctly in the terminal view (#10502).
  • Fixed a bug where SHELL was outdated if Zed was launched via Finder or Raycast or other desktop launchers (#8794).
  • Fixed a panic caused by missing bounds check in completion handler.
  • Fixed a bug where autosave after_delay would auto-format the buffer (#9787).
  • Fixed a bug where the last character of a line could be hidden under the scrollbar (#7098).
  • Fixed completions inside snippets breaking the jump-to-next-tabstop behaviour when using Go/gopls (#10185).
  • Fixed scrollbar markers for folded code.
  • Fixed a bug where the code actions button and the test run button could not be triggered when the editor was not focused.
  • Vim: Fixed a bug where highlights would appear which were only cancellable by opening then closing the toolbar. Buffer search toolbar now opens on n and gn so that the highlights can be cleared.
  • Vim: Fixed a bug where e/E was blocked by hint text (#7046).

Breaking Changes

  • Removed built-in support for Ruby, in favor of making it available as an extension.
  • Changed the default key binding for picker::UseSelectedQuery to alt-e.
  • Changed the default format_on_save behavior for Markdown files to be off.

Zed 0.135.1

05/08/2024

  • Fixed a panic in graphics allocation (#11583)
  • Fixed a panic in show hover (#11581)

Zed 0.135.0

05/08/2024

Enhancements

General

  • Added editor::ToggleHunkDiff (cmd-') and editor::ExpandAllHunkDiffs (cmd-") actions to browse git hunk diffs in Zed.
  • Added an editor: convert to opposite case command.
  • Added a stop_at_soft_wraps setting for Editor::move_to_{beginning|end}_of_line. When true, it causes movement to the either end of the line (via, for example Home or End), to go to the logical end, as opposed to the nearest soft wrap point in the respective direction (#10888).
  • Changed the branch picker to always show the current branch as the default selected entry.
  • Changed inline git blame information to not show up on empty lines.

Tasks

  • Added buttons to the gutter to run tests in Rust files.

Vim

  • Added shift-k to show the hover tooltip.

Languages

  • Added syntax highlighting to regular expressions inside of Go.
  • Added ESLint as a default language server for Svelte.
  • Added brackets and missing operators to syntax highlighting in Python code (#4341).
  • Added support for function call completion when using typescript-language-server. This will result in parameters being added, which can then be changed and navigated with <tab>. For this to work with typescript-language-server, the documentation for a given completion item needs to be resolved, meaning that if one types very quickly and accepts completion before typescript-language-server could respond with the documentation, no full function completion is used.

Bug Fixes

  • Fixed terminals always using the global shell even when local settings specified a different shell (#7599).
  • Fixed false-positive hunks appearing in files with \r\n endings (#11452).
  • Fixed a bug where the Collab panel context menu could not be dismissed with Escape key (#11413).
  • Fixed Copilot suggestions preventing completions from appearing on completion trigger inputs (#8766).
  • Fixed alt-shift-left and alt-shift-right in the Textmate default keybindings (#10242).
  • Restored the ability to confirm a prompt by pressing "Enter" when deleting/trashing files.
  • Fixed detection of JSDoc to only do syntax highlighting in block comments (#7826).
  • Vim: Fixed last character of reversed mouse selections (#8492).

Zed 0.134.1

05/02/2024

  • Fixed a UI beachball when gathering process information (#11285)
  • Fixed slowness with hundreds of buffers open doing git blame. (#11277)
  • Reduced main thread hangs under very high system load (#11278)

Zed 0.134.0

05/01/2024

Enhancements

General

  • Added the ability to open directories using context menu (Right click -> Open With -> Zed).
  • Added support for avatars in git blame for repositories hosted on codeberg (#11043).
  • Added diagnostics for main-thread hangs on macOS. These are only enabled if you've opted into diagnostics.
  • Added support for replacing the current preview tab when using code navigation (enable_preview_from_code_navigation).
  • Added icons for JS, React, C, and C++ file types.
  • Improved the behavior of launching an empty already-running Zed application by respecting the user's restore_on_startup setting. (#10812).
  • Added a new project_panel::Trash action and changed the default behavior for backspace and delete in the project panel to send a file to the systems trash, instead of permanently deleting it (#7228, #5094). The original behavior can be restored by adding the following section to your keybindings:
{
    "context": "ProjectPanel",
    "bindings": {
        "backspace": "project_panel::Delete",
        "delete": "project_panel::Delete",
    }
}
  • Added displaying of cursor markers in the scrollbar. They can be switched on/off by the scrollbar.cursors setting.
  • Improved rendering performance of list elements inside the markdown preview (#10824).
  • Changed the diagnostics view to always update its excerpts eagerly when not focused.
  • Added an indicator to the project diagnostics view's toolbar, showing when diagnostics have been changed.

Tasks

  • Improved the task::Rerun action to toggle the tasks modal when no tasks have been scheduled so far.

Vim

  • Added support for line ranges in Vim replace commands (#9428).

Languages

  • Added highlighting to TypeScript's triple-slash reference directives (#11001).
  • Added @operator, @lifetime and @punctuation.delimiter captures to Rust highlights file.
  • Added support for configuring ESLint's rulesCustomizations settings, ie. {"lsp": {"eslint": {"settings": {"rulesCustomizations": [{"rule": "*", "severity": "warn"}]}}}}.
  • Added ESLint support for Vue.js files by starting it as a language server on .vue files. (#9934).

Bug Fixes

  • Fixed an issue where the project diagnostics view could update its excerpts while you were typing in it.
  • Fixed bugs where the project diagnostics view could show the wrong excerpts.
  • Fixed (maybe) a rare crash in watching settings files (#11168).
  • Fixed a bug where inline diagnostic messages were still visible after folding surrounding code(#4659).
  • Fixed ghostly artifacts in transparent window backgrounds.
  • Fixed sluggishness with blurred window backgrounds.
  • Fixed inline git blame information moving when horizontally scrolling.
  • Fixed error messages being logged due to inline git blame not working on an empty buffer that hasn't been saved yet.
  • Vim
    • Fixed ctrl-a when cursor is on a decimal point (#10865).
    • Fixed cursor not changing into a hollow block when editor loses focus.
    • Fixed cmd-clicking on a definition to find all references (#10392).
    • Fixed logic for finding surrounding quotes to ignore escaped characters (#10827).

Breaking Changes

  • Removed built-in support for Elixir, in favor of making it available as an extension.

April

Zed 0.133.5

04/30/2024

  • Fixed a panic in SVG rendering (#11198)
  • Fixes diagnostic panic better (follow up from #11066) (#11172)

Zed 0.133.4

04/29/2024

  • Fixed rendering of relative line numbers in editor (#11105).

Zed 0.133.3

04/26/2024

  • Fixed a panic in populating diagnostics (#11068)
  • Fixed a panic when renaming with a selection (preview only) (#11034)
  • vim: Fixed a panic when searching (#11030)

Zed 0.133.2

04/25/2024

  • Changed cmd-w with no open tabs to no longer close the window (preview-only).

Zed 0.133.1

04/24/2024

  • Fixed a bug where some inputs were using the wrong font style (preview-only).

Zed 0.133.0

04/24/2024

Enhancements

General

  • Added an editor::ExpandExcerpts action (bound to shift-enter by default), which can expand the multi-buffer excerpt the cursor is currently in by 3 lines (#5377). You can customize the number of lines by rebinding this action like so:
// In your keybindings array...
{
  "context": "Editor && mode == full",
  "bindings": {
    "shift-enter": ["editor::ExpandExcerpts", { "lines": 5 }],
  }
}
  • CLI now accepts an optional name of release channel as its first argument. For example, zed --stable will always use your Stable installation's CLI. Trailing args are passed along (#10851).
  • Changed cmd-w to close the window when there are no open tabs (#5322).
    • See it in action here.
  • Added a setting to determine the minimum column where the inline blame information is shown. Example: {{"git": {"inline_blame": {"min_column": 80}}}. (#10555).
    • Check it out here.
  • Added a setting to show/hide the Project Panel button in the status bar: {"project_panel": {"button": false}}.
  • Added drop_target_size setting. This should be a fractional percent (e.g., 0.5).
  • Improved the hitboxes for drop targets.
  • Updated drop targets to respect the alpha channel of the drop_target.background color.
  • Improved buffer search workflow: cmd-f will select the query string when the buffer search editor is focused.
  • Exposed Rust traits as type.interface for individual syntax theming.

Collaboration

  • Added support for remote development. This feature is currently in alpha; if you are interested in trying this out, please email [email protected].
  • Improved Markdown preview in channel notes to re-render when another collaborator changes the content.

Git

  • Added GitHub avatars to tooltips that appear when hovering over a git blame entry (either inline or in the blame gutter).
    • Check it out here.
  • Added links to GitHub pull requests to the git blame tooltips, if they are available.
    • Check it out here.

Tasks

  • Added tooltips entries in the task: spawn modal.

Languages

  • Added language_servers setting to language settings for customizing which language server(s) run for a given language.
  • Added auto-installation for the HTML extension on startup.
    • This can be disabled by adding { "auto_install_extensions": { "html": false } } to your settings.
  • Added ReScript as a suggested extension for .res and .resi files.
  • Added LOG as a suggested extension for .log files.
  • Added support for finding the Ruby language server solargraph in the user's $PATH as it is when cding into a project's directory (#9811).
  • Added support for configuring the path and arguments for solargraph language server manually. Example from settings: {"lsp": {"solargraph": {"binary": {"path":"/Users/thorstenball/bin/solargraph","arguments": ["stdio"]}}}} (#9811).

Bug Fixes

  • Fixed an issue where the wrong language server could be used for formatting (#10902).
  • Fixed Rust tasks using incorrect package name (#10925).
  • Fixed a bug where non-focused windows weren't showing a hover state for clickable areas (#9784).
  • Fixed a bug that caused disabled navigation buttons to show up in terminal panel.
  • Fixed a bug where the UI would stutter when dragging tabs over any element that stopped event propagation.
  • Fixed a bug where the user's selection was changed when using the language server's rename action.
  • Fixed a bug where multiple terminals were being opened on workspace::NewTerminal calls (#4567).
  • Fixed a bug where project panel: collapse all entries was expanding collapsed worktrees.
  • Fixed a bug where terminal file paths could not be clicked when the column portion of path was malformed (#10688).

Breaking Changes

  • Moved project_panel::OpenInTerminal into workspace::OpenInTerminal action and added it in editors, tab context menus, and proper panel file entries (#4566)
  • Removed built-in support for Deno, in favor of making it available as an extension.
  • Removed task status indicator and added a Spawn task action to terminal panel context menu.

Zed 0.132.2

04/22/2024

  • Fixed a bug where workspace LSP settings could not be read by extensions

Zed 0.132.1

04/22/2024

  • Fixed a (rare) panic when closing a window.

Zed 0.132.0

04/17/2024

Enhancements

General

  • Added preview tabs (#4922).
  • Added an editor controls menu to the tool bar. This will contain visual, editor-specific options like toggling inlay hints, showing git status or blame, etc.
    • The top-level inlay hint toggle has been removed from the tool bar, as it is now in this menu.
    • Toggling the inline git blame is also possible from this menu.
  • Added support for Centered Layout (#4685).
  • Added restore_on_startup option, accepting last_workspace (default) and none options. With none, new Zed instances will not restore workspaces that were open last.
  • Added a setting under scroll_sensitivity that allows user to control the scroll sensitivity. This value acts as a multiplier for the horizontal and vertical scroll speed.
  • Improved search UI. It now works in narrower panes, and avoids scrolling the editor on open. <img width="899" alt="Screenshot 2024-04-11 at 21 33 17" src="https://github.com/zed-industries/zed/assets/94272/44b95d4f-08d6-4c40-a175-0e594402ca01"> <img width="508" alt="Screenshot 2024-04-11 at 21 33 45" src="https://github.com/zed-industries/zed/assets/94272/baf4638d-427b-43e6-ad67-13d43f0f18a2"> <img width="361" alt="Screenshot 2024-04-11 at 21 34 00" src="https://github.com/zed-industries/zed/assets/94272/ff60b561-2f77-49c0-9df7-e26227fe9225"> <img width="348" alt="Screenshot 2024-04-11 at 21 37 03" src="https://github.com/zed-industries/zed/assets/94272/a2a700a2-ce99-41bd-bf47-9b14d7082b0e">
  • Added a setting to show/hide the terminal button in the status bar: {"terminal": {"button": false}} to hide it (#10513).
  • Improved ordering and organization of context menus in the project panel to bring them closer to those in similar applications.
  • Hovering over an edited message in the chat now displays a tooltip revealing the timestamp of the last edit.
  • Added bindings to allow up and down arrow keys to be used while the tab switcher is open.
  • Added support for toggling a checkbox in markdown preview by clicking on it (cmd+click) (#5226).
  • Signing out of Zed will now clear the credentials state and delete the corresponding keychain items (#4716).
  • Added support for scrolling to the message you are replying to when clicking on the reply preview (#10028).
  • Added a project_panel.auto_fold_dirs setting which collapses the nesting in the project panel when there is a chain of folders containing a single folder. <img width="288" alt="Screenshot 2024-04-12 at 11 10 58โ€ฏAM" src="https://github.com/zed-industries/zed/assets/2280405/efd61e75-026c-464d-ba4d-90db5f68bad3">
  • Increased diagnostic context to match the project search context.
  • Adjusted Zoom In/Out for Pane and Terminal Pane to show keybinding labels.

Git

  • Added inline git blame information the editor. It's enabled by default. It can be turned off in the settings with {"git": { "inline_blame": {"enabled": false } } } for every buffer. It can be turned on/off temporarily for the current buffer, with editor: toggle git blame inline (#4793).
  • Added a notification to show git blame errors.

Tasks

  • Added task summary output into corresponding terminal tabs.
  • Task::Rerun action can now override allow_concurrent_runs and use_new_terminal properties of the task that is being reran.
  • Added tasks for bash and Python to execute selections and open files in terminal.
  • Improved task modal ordering, run, and deletion capabilities.

Extensions

  • Changed the "Install" button for extensions to always install the latest compatible version instead of becoming disabled when the latest version of an extension is incompatible with the current Zed version.
  • Added an indicator to show the currently-installed extension version when not on the latest version.
  • Disabled extension entries when there is a development copy of that extension installed.

Languages

  • Added ability to specify clangd binary path (must be absolute) and arguments in user settings. Example: {"lsp": {"clangd": {"binary": {"path": "/usr/bin/clangd", "arguments": ["--log=verbose"] }}}}

Vim

  • Added the current operator stack to the Vim status bar at the bottom of the editor (#4447).
  • Added g c c and g c to Vim keybindings to toggle comments in normal and visual mode respectively.
  • Added g ] and g [ to Vim keybindings to go to next and previous diagnostic error.
  • Changed [ x and ] x (which select larger/smaller syntax node) in Vim mode to also work in visual mode.
  • Updated Vim regexes to use \< \> instead of \b (#10539).
  • Added a vim: open default keymap command to show the default Vim keymap (#8593).

Bug Fixes

  • Fixed project panel entries misalignment with narrow panel & file icons turned off.

  • Fixed git blame data not handling the undoing of deletions correctly. (#10583).

  • Fixed git blame functionality not handling errors correctly when there are no commits yet or when file isn't committed yet.

  • Fixed caret movement issue for some special characters.

  • Fixed "Find In Project" app menu item having no keybinding (#10611).

  • Fixed some cases where diagnostics tab showed outdated entries before the language server is done with its analysis.

  • Fixed a bug where multiple extension suggestions for the same extension could be shown at once (#10320).

  • Fixed a bug where project panel settings changes would not be applied immediately.

  • Fixed Markdown code blocks in tooltips not having correct language highlighting.

    Before:

    image
    image

    After:

    screenshot-2024-04-16-12 43 39@2x
    screenshot-2024-04-16-12 43 39@2x
  • Fixed Markdown returned by clangd being rendered the wrong way (#10511).

    Before:

    screenshot-2024-04-16-12 32 15@2x
    screenshot-2024-04-16-12 32 15@2x

    After:

    screenshot-2024-04-16-12 33 02@2x
    screenshot-2024-04-16-12 33 02@2x
  • Fixed left movement in Vim mode when soft wrapping is enabled (#10350).

  • Fixed a panic when installing the CLI/registering for the zed:// protocol.

  • Fixed a panic when rendering certain malformed SVGs.

Breaking Changes

  • Pulled support for the following languages out into extensions, with automatic suggestions for their corresponding file extensions:
    • Elm (.elm)
    • GLSL (.vert, .frag)
    • Lua (.lua)
    • Nix (.nix)
    • Nu (.nu)
    • OCaml (.ml, .mli)
    • Racket (.rkt)
    • Scheme (.scm)
    • Terraform (.tf, .tfvars, .hcl)
    • Vue (.vue)

Zed 0.131.6

04/16/2024

  • Fix a panic spawning a task from a multibuffer

Zed 0.131.5

04/15/2024

  • Fixed a panic when quoting a selection before the assistant panel has been started.

Zed 0.131.4

04/12/2024

  • Use the buffer font for Search and Breadcrumbs (preview only)
  • Fix emojis in chat (preview only)

Zed 0.131.3

04/11/2024

  • Fixed editing of SVG images by disabling it from the image viewer (#10403).

Zed 0.131.2

04/11/2024

  • Fixed a bug where extension installation would appear to succeed even if the download did not complete due to network interruptions (#10330).

Zed 0.131.1

04/10/2024

  • Fixed Zed panicking when running tasks via a keybinding (10380)

Zed 0.131.0

04/10/2024

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"

Zed 0.130.4

04/09/2024

  • Fixed an issue where the toggle comments command inserted the wrong line comment prefix in some languages (preview only).

Zed 0.130.3

04/09/2024

  • Fixed a file permissions issue when trying to use a Zig language server (zls) present on the $PATH.

Zed 0.130.2

04/08/2024

  • 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)

Zed 0.130.1

04/04/2024

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.

Zed 0.130.0

04/03/2024

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.

March

Zed 0.129.1

03/27/2024

  • Fixed an issue preventing extension telemetry events from being reported (preview-only).

Zed 0.129.0

03/27/2024

Enhancements

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.

General

  • 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.

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.

Zed 0.128.3

03/26/2024