Stable releases

August

Zed 0.146.5

08/02/2024

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

Zed 0.146.4

08/01/2024

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

Zed 0.146.3

07/31/2024

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

Zed 0.145.1

07/24/2024

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.

Zed 0.144.4

07/19/2024

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

Zed 0.144.3

07/17/2024

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

Zed 0.143.7

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

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

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.

Zed 0.142.6

07/05/2024

Bug fixes

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

Zed 0.142.5

07/04/2024

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