Releases

Keep up with the weekly Zed releases.


September

0.151.2

09/06/2024

macOS
Linux

Bug Fixes

  • Linux: Fixed crash when closing windows on Wayland (#17319).
  • Removed the recently-added FPS counter since the changes it made to the Metal renderer on macOS could lead to performance regressions on Intel MacBooks (#17485).
  • Fixed a possible memory leak when closing Zed windows that wouldn't lead to associated resources being cleaned up correctly. (#17497).

0.151.1

09/04/2024

macOS
Linux

Enhancements

General

  • SSH Remoting: Added project search (#16915).
  • Added a new editor action (editor: toggle inline completions) to allow toggling inline completions (Copilot, Supermaven) on and off for the current buffer, taking precedence over any settings (#16947).
  • Added pane: join into next action (#16077; thanks tcard).
  • Added editor: copy file location command to copy the current file location (FILE:LINE) to the clipboard (#14793; thanks slembcke).
  • Added a default package + overlay to Zed's Nix flake. This is useful for users wanting to pilot nightly builds of Zed on NixOS (#16783).
  • Added buffer/project search entries to the outline panel (#16589).
  • Added Format Buffer action to the right-click menu within a buffer (#16080; thanks terziele).
  • Added clickable URLs with query parameters in the terminal (#16724; thanks musicq).
  • Added support for using file paths ending in a language-specific file extension at the start of markdown code blocks (#12368).
  • Repl: Added button to copy output from the REPL (#16649).
  • Repl: Added restart kernel action (#16609).
  • Added tab/pane closing for files inside folders being deleted/trashed (#15222; thanks Quplet).
  • Added SOCKS proxy for client WebSocket connection (#16051; thanks Congyuwang).
  • Added soft_wrap value bounded, EditorWidth and PreferredLineLength min value (#16586; thanks 0x2CA).
  • Added switch source/header action for clangd language server (#14646; thanks thorbenk).
  • Added unnecessary_code_fade setting to control how strongly to fade unused code (#14442; thanks MatthewScholefield).
  • Added new settings to control split direction for horizontal and vertical splits. Users can now configure whether new splits open to the right/left or top/bottom, similar to Vim's splitright option (#16345; thanks jvanbaarsen).
  • Added support for copying/pasting between different worktrees (#15396; thanks CharlesChen0823).
  • Improved the truncation of long author lists and descriptions in the extensions view (#17007).
  • Improved Sublime keymap: Support for switching to individual tabs with cmd-1 thru cmd-9 (macOS) and alt-1 thru alt-9 (Linux) matching Sublime behavior (#16930; thanks zzulu).
  • Improved support for extended keyboards on Mac (F13-F19, Insert) (#16921).
  • Improved context menu organization (#16773; thanks WeetHet).
  • Improved the Copy Path and Copy Relative Path actions in the project panel's context menu when selecting multiple files. All selected files' paths will now be copied, separated by newlines (#16558; thanks kjzl).
  • Improved error handling when opening files in the workspace pane. An error message will now be displayed if the file cannot be opened (#15613; thanks ssut).
  • Updated project panel scrollbar to respect the scrollbar.track.background from the theme (#16546; thanks eliperkins).
  • Updated filenames to be cmd/ctrl-clickable, opening them when clicked (#16534).
  • Linux: Improved terminal keymap and context menu (#16845).
  • Linux: Improved text rendering by handling subpixel positioning (#16238; thanks apricotbucket28).
  • Linux: Added CLI pipe support (#16084; thanks VitorRamos).

Languages

  • Added support for property tests in runnables for Elixir (#16985; thanks cschmatzler).
  • Added auto-closing for single quotes in YAML files (#16859).
  • Added syntax highlighting for graphql tagged template literals and function calls in javascript, typescript and tsx languages (#16368; thanks affanshahid).
  • Added level filtering to language server logs (#15893; thanks jcdickinson).
  • Improved detection of pyrightconfig.json as JSONC (#16967).
  • Improved PHP highlights by adding more language keywords (#16720; thanks BafS).

Performance

  • Performance of project-wide search has been improved by up to 10x (#16936).
  • Improved performance of rendering project-search results in the multi-buffer after finding them (#16960).
  • Reduced latency for first project search result (#16923).
  • Improved performance of Assistant Panel with long conversations (#16881).
  • Improved performance of assistant panel with large amounts of text (#16761).

AI

  • Added support for Ollama models with context length >2048 (#16877).

Vim

  • Added absolute numbering in any mode except insert mode (#16567; thanks 0x2CA).
  • Added gf command to open files under the cursor (#16534).

Bug Fixes

  • Fixed performance regression in handling buffers with large quantities of diagnostics (#16824).
  • Fixed formatting of < and > in Git commit message popup (#16279; thanks dovakin0007).
  • Fixed signature info popovers appearing when completion menu is open (#17009).
  • Fixed an issue on NixOS package where the wrong binaries were being patched, leading to missing Wayland libs when launching Zed (#16958).
  • Fixed an issue where the file finder would jump to the first result when new files were added to the project. The selected file now remains highlighted when the file list updates (#13452; thanks kshokhin).
  • Fixed assistant model selector check icon overflow for long model names (#16716; thanks Moshyfawn).
  • Fixed Telemetry log being marked dirty (#16906).
  • Fixed asset buffers (default settings and default keymap) showing 'untitled' in breadcrumbs (#16906).
  • Fixed an issue related to the project wide search being stuck when project contains .fifo files (#16039; thanks SultanTanirkul).
  • Fixed incomplete syntax highlighting for HTML injections inside JavaScript template tags (#16479; thanks florian-sanders).
  • Fixed double edits when a multi-cursor is in a linked editing range (#16707).
  • Fixed bug when opening uncanonicalized hyperlink files from terminal (#16087; thanks Pribess).
  • Fixed local timezone not showing in Zed.log (#16400; thanks bestgopher).
  • Fixed manually triggering completions when show_inline_completions: false (#16621).
  • Fixed esc not removing focus from the filter editor in the collaboration panel (#16579).
  • Fixed an issue where unnecessary pane splitting occurred when a file fails to open (#15613; thanks ssut).
  • Ollama: Improved handling of variable context lengths; support for user configurable max_tokens in setting.json (#17025).
  • Fixed crash when setting "use_system_path_prompts": false or in remote project with two or more worktree (#16991; thanks CharlesChen0823).
  • Repl: Fixed issue with shutting down kernels that are in a failure state (#16609).
  • Vim: Fixed n direction after searching backwards (#16754; thanks fmgornick).
  • Vim: Fixed issues with ctrl-d/ctrl-u when scroll_beyond_last_line is set to off (#15395; thanks ksweetie).
  • Vim: Fixed accidental visual mode in project search and go to references (#16477).
  • Linux: Fixed tasks not finishing properly after ctrl-c (#16847).
  • Linux: Fixed title bar becoming transparent when the window lost focus (#16833; thanks apricotbucket28).
  • Linux: Fixed find in Terminal: ctrl-shift-f (#16085; thanks VitorRamos).
  • Linux: Fixed benign error being shown when cancelling file picker (#15553; thanks apricotbucket28).
  • Linux: Fixed cross-window copy/paste not working in some Wayland configurations (#16126; thanks apricotbucket28).
August

0.150.4

08/28/2024

macOS
Linux

Bug Fixes

  • Fixed Go to definition not working in Svelte and Vue files (#16654).
  • Fixed caching for Anthropic models when using the Zed provider (#16685).
  • Fixed a panic when diagnostics contain multiple links (#16601).
  • Fixed more Elixir files not being executable (#16382).

0.149.6

08/27/2024

macOS
Linux

Bug fixes

  • Fixed an issue where git state would stop updating if the root directory of a git repository was updated in certain ways
  • Fixed app menu performance slowdowns when there are multiple windows open.

0.149.5

08/22/2024

macOS
Linux

Bug Fixes

  • Fixed: Go to definition not working in Svelte and Vue files (#16469) and (#13769)
  • Fixed caching for Anthropic models when using the Zed provider (#16685)
  • Fixed a panic when diagnostics contain multiple links (#16601)

0.149.3

08/20/2024

macOS
Linux

Introducing Zed AI! Our new hosted service that brings advanced AI-assisted coding directly into Zed.

For more information on Zed AI, read our in-depth blog post and see the assistant documentation on our revamped website.

Enhancements

General

  • Added syntax highlighting for tagged template literals in javascript, typescript and tsx languages for css, html, js, json, sql, ts, yaml and yml (#15984; thanks RobinMalfait).
  • Added support for recognizing CUDA files as C++ (#16098; thanks Athishpranav2003).
  • Added an editor::ScrollCursorCenterTopBottom action for toggling scroll position with a single key binding (#16134).
  • Added an editor::HandleInput action to ease typing symbols that are part of keymaps. E.g. if , o k key binding is bound, ", ,": ["editor::HandleInput", ","] would allow to type , without timeouts (#16131).
  • Improved behavior of ctrl-a and ctrl-e on macOS (#15981).
  • Added fallback to a smallest tree sitter node when hovering over a symbol (#16062; thanks WeetHet).
  • Improved MimeType list in XDG .desktop file (#15623; thanks rudolfkastl).
  • Added a popup that is displayed when the keymap is invalid (#15977).
  • REPL: Improved visuals of repl stdout/stderr by reducing default line count to 32 (#16061).
  • Added performance.show_in_status_bar: true setting (macOS-only) to show the time to the first window draw and FPS (#16422).

AI

  • Added support to allow for pasting images into the Assistant Panel to include them as context. Currently works only on macOS, and with Anthropic models. Future support is planned for more models, operating systems, and image clipboard operations (#15782).
  • Added a count of the context tokens when hovering token counts in the inline assist (#16147).
  • Zed now allows the model to control indentation when performing inline transformation. We're hoping this improves the indentation experience in Python and other indentation-sensitive languages, but it does require more from the model (#16145).
  • Added more context when using assistant: Quote selection to insert text into the assistant panel (#16038).
  • Assistant workflow steps can now be applied and reverted directly from within the assistant panel (#15936).
  • Added UI affordances to the assistant panel to show which messages have been cached (#16395; thanks rowillia).
  • Migrated cache invalidation to be based on has_edits_since_in_range to be smarter and more selective about when to invalidate the cache and when to fetch (#16395; thanks rowillia).
  • Added support for 8192 output tokens from Claude Sonnet 3.5 (#16358; thanks rowillia).
  • Improved conformance with Anthropic Images in Chat Completions API (#16270).
  • Reduced instances of over-generation when inserting docs or annotations above a symbol (#16333).
  • Added support for Prompt Caching in Anthropic. For models that support it this can dramatically lower cost while improving performance (#16274; thanks rowillia).
  • Workflows can now create new files in folders that didn't exist (#16251).
  • Added support for GPT-4o for Copilot Chat (#16446; thanks Hawkbawk).
  • Updated inline assist icon in the editor & terminal (#16363).

Vim

  • Vim: Added support for range syntax in command (#15985).
  • Vim: Prefill command with :'<,'> from visual mode (#15985).

Bug Fixes

  • Fixed cmd window showing when repl executing commands (#16016; thanks JunkuiZhang).
  • Fixed ctrl-u/ctrl-d in Vim mode not working correctly when vertical_scroll_margin is set to a really high value (#16031).
  • Vim: Fixed a possible panic that could happen when using a very high value for vertical_scroll_margin that exceeded the number of visible lines on the screen (#16029).
  • Fixed a potential panic that can occur when deleting entries from the recent-projects menu (#15965; thanks CharlesChen0823).
  • Fixed an issue where the markdown preview button would not show up for some markdown files (#15961).
  • repl: Fixed scaling of stdout/stderr line heights (#16308).
  • Restored the ability to toggle the model selector in the Assistant via a keybinding (Preview only) (#16319).
  • Restored the behavior of ctrl-a until we can separate the behavior of the command for soft wraps and leading indentation (Preview Only) (#16246).
  • Fixed a bug where directories were often omitted from the completions for the /file slash command (#16242).
  • Fixed detection of Python virtual environments (#15989; thanks vitallium).
  • Fixed an issue where the count of selected characters was incorrect (#16420).
  • Fixed an issue where an extra newline was inserted after running a /file command in the assistant (#16419).

Documentation

  • Updated Terms and Conditions (#16478).

0.148.1

08/15/2024

macOS
Linux

Bug Fixes

  • Fixed scrolling not working in the assistant configuration view

0.148.0

08/14/2024

macOS
Linux

Enhancements

General

  • Added a popup that is displayed when the settings are invalid.
  • Added menu items to quickly switch between Supermaven and Copilot inline completions when the provider is not configured (thanks kevmo314).
  • Added tool calling capabilities to OpenAI and Ollama models.
  • Improved streaming git diffs to be less jumpy during inline assistant generation.
  • Templates for prompts driving inline transformation in editors and the terminal can now be overridden in the ~/.config/zed/prompts/templates directory. This is an advanced feature, and prevents you from getting upstream changes. It's intended for use by Zed developers.
  • Added an editor: go to declaration editor action (thanks coszio).
  • Linux: Changed the fallback color of title_bar.inactive_background to a non-transparent value.

REPL

  • Added additional context about available kernel sessions.
  • Added update_display_data support for REPL.
  • Added logging in debug mode of raw kernel output from REPL.
  • Added ctrl-alt-enter keybinding for repl::RunInPlace (ctrl-option-enter on MacOS). This keeps your screen position and cursor in place when running any block.
  • Added markdown rendering for Jupyter/REPL outputs. Push Markdown from Deno/Typescript with Deno.jupyter.md and in IPython use IPython.display.Markdown.

Languages

  • Improved Rust test detection to work for attributes containing test substring (#15580; thanks MayankJikadara).
  • VTSLS will now use the local instance if there's one on PATH (#4978; thanks kakoc).
  • The ordering of language servers will now respect the order in the language_servers setting. The first language server in this list will be used as the primary language server.

Vim

  • Vim: Breaking change to keybindings after the introduction of the editor: go to declaration editor action. The new keybindings are the following (and can be found here, alongside the other key bindings) (thanks coszio):
    • g d - Go to definition
    • g D - Go to declaration
    • g y - Go to type definition
    • g I - Go to implementation

Bug Fixes

  • Fixed an issue where the terminal inline assistant would not appear when opening a terminal in the center pane (#15729).
  • REPL: Fixed plain text output wrapping around and covering editor text (#15491, #14855).
  • REPL: Fixed bug in kernelspec launch choosing first available kernel matching the language rather than selected name.
  • REPL: Fixed kernels not being shut down completely on close of Editor.
  • REPL: Fixed ANSI escape code and carriage return handling in repl outputs (#15640, #14855).
  • Fixed poor performance when editing in the assistant panel after inserting large files using slash commands.
  • Fixed a bug where a closed workspace could be reopened on startup (thanks apricotbucket28).
  • Linux: Fixed Zed flickering when using Intel graphics (#14101; thanks Jaakkonen).
  • Linux: Fixed prompts not being navigable by arrow keys (#15151; thanks apricotbucket28).
  • Linux: Fixed visual glitches when rendering icons (#12352; thanks apricotbucket28).
  • Linux: Fixed last workspace not being restored on startup (#15642; thanks apricotbucket28).

0.147.2

08/07/2024

macOS
Linux

Enhancements

General

A screenshot showing a conversation between a user and GitHub Copilot Chat within the Zed editor
A screenshot showing a conversation between a user and GitHub Copilot Chat within the Zed editor

Once you've signed into GitHub Copilot within Zed, Copilot Chat should be available as an option in the model dropdown in the assistant.

Copilot Chat model option
Copilot Chat model option
  • Added double-click to create a new file when clicking on blank space in the project panel (#15353; thanks ssut).
  • Added support for tab switcher in Assistant panel (#15475).
  • Use ctrl-enter to summon the inline assistant in the terminal, which lets you generate terminal commands based on your description.
    • Check out the demo.
  • Improved restoring of windows across restarts: the order of the windows is now also restored. That means windows that were in the foreground when Zed was quit will be in the foreground after restart. Supported on MacOS and Linux/X11, not yet on Linux/Wayland (#15419).
    • Check out the video video!
  • Added the ability to select and copy text from diagnostic popovers (#12695; thanks effdotsh).
  • Added support for font fallbacks via three new settings: ui_font_fallbacks, buffer_font_fallbacks, and terminal.font_fallbacks (#5180, #5055).
  • Changed the project panel to auto fold directories by default.
  • Linux/X11: Support for keyboard layout hot plugging (#15059; thanks XDeme1).
  • Unsaved files that are restored when Zed starts are now marked as having a conflict if they have been changed on disk since the last time they were stored (#15207).
  • Updated tree-sitter parsers for core languages (#4565).
  • Improved performance when computing indent guides for buffers with extremely long lines (#15167).
  • Improved performance of project and buffer search when there are many matches (#15102).
  • Added an option to copy the file's absolute path from within the tab context menu (#13970; thanks HarshNarayanJha).
  • Improved the environment-variable detection when running tasks so that tasks can now access environment variables as if the task had been spawned in a terminal that cded into a project directory. That means environment variables set by direnv/asdf/mise and other tools are now picked up (#12125).
  • Added a button to preview Markdown files in the toolbar. Option|Alt+Click will open the preview to the side (#15215).

Languages

  • Rust: Added ability to style doc comments with comment.doc (#15322; thanks earomc).
  • Improved the outline panel for Rust to include static items (#15225).
  • Added support for language server tracing to the LSP log view.

Remoting

  • remoting alpha: Added support for terminal and tasks to new experimental ssh remoting (#15321).
  • remoting alpha: Removed the ability to specify gh cs ssh or gcloud compute ssh etc. See https://zed.dev/docs/remote-development for alternatives.

Vim

  • Added support for Vim digraphs (#11871; thanks Benjamin-Davies).
  • Added support to bind motions in insert mode.
  • Added {count} for >/< in visual mode (thanks Tobbe).
  • Fixed a hang when repeating an aborted operation (#15399; thanks Alextopher).

Bug Fixes

  • Fixed the cursor sometimes not changing on Linux X11 (#15518; thanks apricotbucket28).
  • Fixed editor::AcceptPartialInlineCompletion keybind to match VSCode (#15487).
  • Fixed Linux Desktop file missing TryExec (#15148; thanks HarshNarayanJha).
  • Fixed project panel not showing properly file entries for directories with dots in their names (#12470).
  • Fixed to hide blinking cursor when window is deactivated (#4710; thanks huacnlee).
  • Fixed a bug that caused the inline assistant to be displayed twice in certain circumstances (#15449).
  • Fixed paths starting with ./ breaking the new-path file picker when the system prompts are disabled (#15426).
  • Fixed an issue where font-related settings in settings.json were missing their descriptions.
  • Fixed typo in remote projects sign-in prompt (#15325; thanks nickcernis).
  • Linux: Fixed window menu not showing on X11 (thanks apricotbucket28).
  • Updated UI labels to respect the ui_font_weight setting (#15234).

0.146.5

08/02/2024

macOS
Linux
  • Fixed a bug where the default binding (cmd-alt-g b) for editor::ToggleGitBlame wasn't working (#15676).

0.146.4

08/01/2024

macOS
Linux

Bug Fixes

  • Fixed a panic when removing a git-based worktree from the project panel
  • Fixed context menus not appearing in multi buffers
  • Fixed not all worktree entries being returned by the /file slash command completions
  • linux: Update TryExec value in desktop file #15148
July

0.146.3

07/31/2024

macOS
Linux

Enhancements

Zed now features a built-in REPL!

Run Python Block by Block
Run Python Block by Block

You can run code:

  • Line by line
  • Block by block (# %%)
  • Any selection

View the blog post for more details.

General

  • Added ability to restore all windows that were open when Zed was quit. Previously only the last used workspace was restored. This is now the default behavior. To get back the old behavior, add the following to your settings: {"restore_on_startup": "last_workspace"} (Part of #4985 and #4683).
  • Added automatic restoring of unsaved buffers. Zed can now be closed even if there are unsaved changes in buffers. One current limitation is that this only works when having projects open, not single files or empty windows with unsaved buffers. The feature can be turned off by setting {"session": {"restore_unsaved_buffers": false}} (#4985, #4683).
  • Added support for quickly switching between multiple language model providers in the assistant panel.
  • Added the ability to create custom inline assist bindings that pre-fill a prompt from your keymap, e.g.:
[
    {
        "context": "Editor && mode == full",
        "bindings": {
            "ctrl-shift-enter": [
                "assistant::InlineAssist",
                { "prompt": "Build a snake game" }
            ]
        }
    }
]
  • Added the ability to automatically generate new summaries for assistant conversations or manually edit them.
  • Added support for gpt-4o-mini (#14769, thanks versecafe).
  • Improved the way git hunks diff can be toggled with mouse. Now, clicking on the diff marker will toggle an actions menu. Inline diffs now can be closed via the mouse, rather than just esc (#12404).
  • Extended task templates with shell and hide fields to use custom shells and allow for custom close behavior.
  • Allow user to configure multiple formatters for a given language: format and format_on_save now accept an array of formatting actions to run; language_server formatter option now accepts the name of a language server to use (e.g. {"language_server": {"name": "ruff"}}); when not specified, a primary language server is used (#4822).
  • Improved SublimeText keymap (Mac & Linux). Add key binding for MoveLineUp/Down (ctrl-shift-up on Linux and cmd-ctrl-up on MacOS) (#15089; thanks unixtensor).
  • Added a button to copy the SHA from a Git blame entry (thanks Hawkbawk).
  • Added Copy, Paste, Select All, & New Terminal to the terminal context menu (thanks versecafe).
  • Added the ability to sign out of a Supermaven account (#12715; thanks kevmo314).
  • Improved Supermaven status messages (#12715; thanks kevmo314).
  • Added "command_aliases" setting to let you abbreviate commands.
  • Improved UX of project search.
  • Added a hint the first few times you open a multibuffer to explain what is going on.
  • Refined the appearance of channel tabs.
  • Changed preference for GPUs on macOS so that eGPUs are now preferred over integrated ones (and both of which are preferred over discrete GPUs) on Intel Macs.

Languages

  • Added extension for Ruff, an extremely fast Python linter and code formatter, written in Rust. To install Ruff extension, open the command palette, search for zed: extensions and then in the search bar of the extensions view type in Ruff. Once installed, you can configure ruff to add additional lints and provide formatting via the following setting snippet:
"languages": {
    "Python": {
      "format_on_save": { "language_server": { "name": "ruff" } },
      "formatter": { "language_server": { "name": "ruff" } },
      "language_servers": ["pyright", "ruff"]
    }
}
  • TypeScript's tsconfig.json files are now treated as JSONC.
  • Added syntax highlighting for the using keyword in TypeScript (#14762; thanks versecafe).
  • Added syntax highlighting to TypeScript's infer keyword (#14696; thanks rimuy).

Vim

  • Added support for count and object motion to the toggle comments action (#14337; thanks hahanein).
  • Updated Y to yank to end of line (like neovim) (#14771, thanks vbhavsar).
  • Fixed jk binding preventing you from repeating j (#14725).
  • Fixed escape in normal mode to also clear the selected register (#14311).
  • Fixed gv after y, d, etc. (#13760).
  • Fixed right clicks changing vim mode (#14625, thanks Congyuwang).
  • Fixed assistant: quote selection not working correctly when making visual-line-mode selections in Vim mode.

Bug Fixes

  • Fixed multiline details provided by vtsls breaking rendering in autocompletions (thanks WeetHet).
  • Fixed a bug where diagnostic popups would flicker when moving the cursor within the boundaries of the symbol (thanks WeetHet).
  • Fixed a bug where the inline_assistant would overwrite tabs with spaces in some cases (#14885; thanks arturhoo).
  • Fixed a bug where Supermaven truncated lines when accepting inline suggestions (#13039; thanks kevmo314).
  • Fixed rare cases where a code action triggered by diagnostic may not be available for use.
  • Fixed multi-key shortcuts not working across completion menu changes (#11009).
  • Fixed multi-key shortcuts discarding earlier input (#14445).
  • Fixed key maps so user-defined mappings take precedence over builtin multi-key mappings (#13543).
  • Fixed a bug where overridden shortcuts would still show in the Command Palette.
  • Fixed outline panel's filter not accepting spaces.
  • Fixed a bug where backslashes would not appear in snippets (#14721; thanks lnay).
  • Fixed a bug that caused focus to be lost when renames and inline assists were scrolled offscreen.
  • Fixed syntax highlights being offset from syntax in diagnostics popovers.
  • Fixed worktree ordering in workspace serialization (thanks eth0net).
  • Fixed an issue where the shared screen tab's icon would not render as dimmed when the tab was inactive.
  • Fixed ESLint language server adding comments on save if the source.organizeImports code action was used on save. Zed now filters out code actions sent to the language servers by checking whether they are supported first (#13633).
  • Linux: Fixed typing shortcuts like ctrl-/ on some systems.
  • Linux: Fixed a panic that occurred when GPU was temporarily unavailable (#12766, #14022).
  • Linux: Fixed auto-update into custom tarball locations (#14291; thanks ArrayBolt3).
  • Linux: Use local time zone in chat and Git blame (#14610; thanks apricotbucket28).

0.145.1

07/24/2024

macOS
Linux

Enhancements

Remote Development (alpha) for everyone 🖥️🌐

screenshot_2024-07-17_at_15 32 45
screenshot_2024-07-17_at_15 32 45

Edit files or run commands on your server over SSH, whether working solo or using Zed's collaboration tools to tackle tasks together.

Learn more about remove dev and its current limitations here: https://zed.dev/docs/remote-development

General

  • Added support for following into the assistant panel.
  • Added a /symbols slash command in the assistant panel, which automatically inserted the active file's symbols into the assistant.
  • Added function signature popovers (#4879, #5155; thanks tomoikey).
    • To disable, add "show_signature_help_after_completion": false to settings.json.
  • Added support for gpt-4o-mini (#14769, thanks versecafe).
  • Added a setting to add file icons to buffer tabs (#12138).
    • These icons can be added by using "tabs": { "file_icons": true }.
  • Added the ability to select and copy text from information popovers (#5236; thanks effdotsh).
  • Added banners for built-in Zed features when corresponding keywords are used in the extension search.
  • Added default content for the user's keymap.json file (#14248).
  • CLI: Ability to open URIs from the command line (#14104; thanks korewaChino).
  • Improved relevance of extension search results (#14588).
  • Improved Linux manual installation docs with better desktop icons (#14435, thanks p5).
  • Linux: Added a fallback Open picker for when XDG is not working (#14524).
  • Linux: Allow zed.dev/channel (zed://) URIs to open on Linux (#14104; thanks korewaChino).
  • Linux: Added a representation of the current focus state to Zed's window style (#14202).
  • Added a new setting use_system_path_prompts (default true) that can be disabled to use Zed's builtin keyboard-driven prompts (#14524).
  • Remoting: Allow add/remove folders to projects (#14532).
  • Added toggle hunk diff and expand all hunk diffs key bindings (thanks Sensational-Code).
  • Improved the One Light color theme (thanks effdotsh).
  • Set TERM_PROGRAM and TERM_PROGRAM_VERSION environment variables in the integrated terminal (#4571; thanks ldm0).

Languages

  • Added runnable tasks for Flutter (thanks agent3bood).
  • Added Flutter tasks to Dart extension.
  • Improved accuracy of completion lists for Rust functions and modules.
  • Added support for pyright workspace configuration, as described in https://microsoft.github.io/pyright/#/settings (thanks FilipeBisinella).
  • Improved experience in projects using Yarn. Run yarn dlx @yarnpkg/sdks base in the root of your project in order to elevate your experience (#10107).

Vim

  • Added :bd/:bn/:bp (#14457).
  • Added -/+ to go to beginning of line above/below (#14183; thanks ika-musuko).
  • ctrl-m now is equivalent to enter in editor.
  • Improved visual feedback when changing cursor shape (thanks omertuc).
  • Fixed ctrl-d/ctrl-u getting to top/bottom of buffer (#13250).
  • Fixed renaming sometimes not working in vim mode (#14292, #11882, thanks Congyuwang).
  • Fixed c <motion> omitting trailing multibyte characters (#13909).
  • Fixed inline assistant sometimes not working (#11559).
  • (Breaking) Removed non-standard builtin binding from - to open the project panel. You can re-add it to your keymap file with: {"context":"VimControl", "bindings":{ "-": "pane::RevealInProjectPanel"}} (thanks ika-musuko).
  • (BREAKING) Improved vim keymap contexts. This should be a no-op for most people, but may cause problems if you rely on VimWaiting or VimOperator being true in your map. See the docs for more.

Bug Fixes

  • Fixed tab navigation in Sublime Text keymap (unintentionally reversed directions).
  • Fixed respecting user preference for JS/TS on_type formatting (#13733, #14499; thanks matubu).
  • Linux: Fixed command palette opening from the application menu (#14459).
  • Significantly improved performance of applying large quantities of concurrent edits, for example when running "Replace all" (#14567).
  • Fixed "View Dependency Licenses" (or zed: open licenses) crashing on Linux ARM machines. (#14302).
  • remoting: Fix extension installation (#14538).
  • Added "Center the cursor in the visible area." to match MacOS ctrl-l; Added ctrl-m for JetBrain on Linux for the same (#5247).
  • Improved Linux default keybindings (#14600).
  • Fixed Cmd-\ did not toggle left dock when using Atom base keymap on macOS (#14098, thanks audionerd).
  • Fixed position of scrollbar in project panel with non-default ui_font_size values.
  • Fixed terminal colors not respecting the theme (#11418; thanks zakj).
  • Fixed large diagnostic popovers not overflowing when necessary (thanks WeetHet).
  • Fixed nushell not picking up direnv environments by directly interfacing with it using direnv export (#8633; thanks WeetHet).
  • Fixed some bugs with call notifications and with window positioning when reopening Zed (thanks huacnlee).
  • Fixed line wrap for CJK characters (thanks huacnlee).
  • Fixed insertion of extra characters for some keystrokes if terminal.option_as_meta is enabled (#7728; thanks denisw).
  • Fixed untitled buffers displaying a soft-wrap wrap-guide at preferred_line_length by default. (#12473).
  • Fixed losing output of a spawned task (#13683; thanks hron).
  • Go: Fixed running single tests by changing the quoted expression in the go test command to work again in bash, zsh, etc. (#14818).
  • Fixed a bug where tooltips would sometimes continuously display when the button was selected.

0.144.4

07/19/2024

macOS
Linux
  • go: Fix running single tests by changing the quoted expression in the go test command to work again in bash, zsh, etc. (#14818).

0.144.3

07/17/2024

macOS
Linux

Enhancements

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 contrast between some items in the One Dark theme.
  • Added support for filtering in the outline panel (#13984).
  • Added dynamic [un]registration for LSP formatting capabilities (#12661).
  • Improved prettier detection to pick up its installation from transitive dependencies (#12731).
  • Improved Zed logic for sending textDocument/didSave request (#14286).

Languages

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

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.
  • Linux: Changed editor::JoinLines to ctrl-shift-j (#14136).
  • Linux: Fixed overflow in xkbcommon-rs (#14571).
  • Linux: Fixed the issue where text appears twice in the editor after Chinese Character input (linux: Fix IME on fcitx, #14558).
  • Linux: Fixed opening urls/directories on systems where the xdg desktop portal doesn't handle those requests (#14359).
  • Linux: Fixed IME under fcitx5 (#14192, #14508).

0.143.7

07/12/2024

macOS
Linux
  • 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

0.143.6

07/10/2024

macOS
Linux

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

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

Breaking Changes

  • Renamed editor::RevealInFinder to editor::RevealInFileManager.

0.142.6

07/05/2024

macOS

Bug fixes

  • Fixed delay when changing scrolling direction (#13867).
  • Fixed Atom keymap in ProjectPanel (#13655).

0.142.5

07/04/2024

macOS
  • Improved inline assistant code generation when using Claude or GPT-4o.

0.142.4

07/03/2024

macOS

Enhancements

AI

  • Added support for Claude 3.5 Sonnet (#13357). To use Claude Sonnet with the Zed assistant add the following to your settings (full docs):
"assistant": {
  "version": "1",
  "provider": {
    "default_model": "claude-3-5-sonnet",
    "name": "anthropic"
  }
},

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).
    image
    image
  • 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)
    Copy Permalink screenshot
    Copy Permalink screenshot
  • Added ability to bind 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 Atom, JetBrains, TextMate compatibile keybindings (#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).
June

0.141.3

06/28/2024

macOS
  • Fixed a bug that was causing system prompts to be dropped for Anthropic models.
  • Fixed a panic when editing HTML near the end of a file.
  • Fixed a panic when editing settings.json from inside the .zed directory.

0.141.2

06/26/2024

macOS

Breaking changes

SETTINGS DEPRECATION NOTICE

In your settings.json the following keys will need to be renamed:

  • language_overrides -> languages
  • copilot -> inline_completions
  • show_copilot_suggestions -> show_inline_completions

Previously, we were supporting the old keys as an alias for the new keys, but this let to unintended/confusing failure modes. As a result we have deprecated the old keys.

See: Settings Deprecation Notice 2024-06-17 for more information.

Enhancements

General

  • Added an outline panel to show a "map" of the active editor. Toggle the outline panel via outline panel: toggle focus.

Pair the outline panel with the search multi-buffer to get a better overview of your search results!

outline panel
outline panel
  • 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 (#13202).
  • Improved the look of code action and run indicators in the gutter (#12803).
  • Improved the style of disclosure controls throughout the UI.

AI

  • Improved the behavior of inline assist so that it no longer closes when an editor loses focus (e.g., from switching tabs) and then gains focus again. Instead, it only closes when you move the cursor outside of it, e.g., by clicking somewhere else in its parent editor.

Languages

  • VTSLS is now a default language server for TypeScript, TSX, and JavaScript.

If you would like to continue using typescript-language-server, use the following setting in your settings.json:

"JavaScript": {
  "language_servers": ["!vtsls", "typescript-language-server", "..."]
},
  • Added a more detailed message in place of the generic checking... messages when Rust-analyzer is running.

  • Added a rate limit for language server status messages, to reduce noisiness of those updates.

  • Added a cancel language server work action which will cancel long-running language server tasks.

  • Added the ability to cancel a cargo check by clicking on the status bar item.

Vim

  • Added pending keys to the mode indicator in Vim mode.
    • See it in action here.
  • Added support for register selection "a-"z, "0-"9, "-. "_ and "% (#11511).
  • Added support for multicursor registers (#11687).
  • Added support for the "/ register.
  • Added gv to restore previous visual selection (#12888).
  • Added support for ctrl-r X to paste in insert mode (#4308).
  • Fixed home and end in visual mode (#13068).
  • Fixed inserting a 0 in insert mode with a count (#9383).
  • Fixed gi when the insert ended at the end of a line (#12162).
  • Fixed gl when the first match is at the end of a line.
  • Fixed behavior of dw at the end of a soft wrapped line.
  • Fixed ci" on keyboards where typing a " requires the IME (#12523).
  • Fixed an issue where held-down modifier keys (such as Shift) would interrupt continuous key events, affecting navigation and selection behavior (#12566).

Bug Fixes

  • Fixed some syntax highlighting bug in Python (#12578).
Before
Before
After
After
  • Fixed auxiliary details in completions returned by VTSLS (#13043).
  • Fixed a bug where the selected tab was not always shown when cycling between tabs with ctrl-tab.
  • Fixed a bug where the command palette was not scrolling down to the last element.
  • Fixed a bug where "Find all references" editor had cursor placed on the first line of the first excerpt in the multibuffer instead of having it on the first reference.
  • Fixed a possible hang when opening a worktree in a .git directory.
  • Fixed snippet completions sometimes being treated as plain text completions when using VTSLS (#12920).
  • Fixed the Hide Copilot context menu item to modify the appropriate setting.
  • Fixed a panic when editing C code (#13128).

0.140.5

06/19/2024

macOS

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

0.139.3

06/12/2024

macOS

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.
  • Fixed VTSLS being enabled by default and duplicating completions with typescript-language-server

Breaking Changes

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

0.138.6

06/07/2024

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

0.138.4

06/05/2024

macOS

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 for package.json and composer.json scripts (#12215).
  • Added .mdwn as a Markdown file extension.
  • 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.

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 an issue where expanded git hunks were rendered in the wrong position when toggling git blame or resizing the buffer font (https://github.com/zed-industries/zed/issues/11941)
  • 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.
May

0.137.6

05/31/2024

macOS
  • Fixed a panic that could sometimes occur when rerunning tasks.

0.137.5

05/30/2024

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

0.137.3

05/29/2024

macOS

0.137.2

05/29/2024

macOS

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

0.136.2

05/22/2024

macOS

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.

0.135.2

05/15/2024

macOS

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

0.134.4

05/09/2024

macOS
  • fixed crash on deleting files in macOS Catalina (#11346)

0.134.3

05/08/2024

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

0.134.2

05/08/2024

macOS

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.

0.133.7

05/03/2024

macOS
  • Fixed a UI beachball when gathering process information (#11285)
  • Fixed a rare crash in watching settings files. (#11241)
  • Fixed UI beachball with hundreds of buffers open doing git blame. (#11277)
  • Reduced main thread hangs under very high system load (#11278)

0.133.5

05/01/2024

macOS

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

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