Preview releases

August

Zed 0.147.2

08/02/2024

Bug Fixes

  • Fixed a regression when rendering diffs for the inline assistant.

Zed 0.147.1

08/01/2024

Bug Fixes

  • Fixed context menus not appearing in multi buffers
  • Fixed not all worktree entries being returned by the /file slash command completions

July

Zed 0.147.0

07/31/2024

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

Zed 0.146.3

07/30/2024

Bug Fixes

  • Fixed ctrl-a broken in Terminal (Linux-only, preview-only) (#15512).

Zed 0.146.2

07/30/2024

  • Added logging of stderr from Jupyter kernels to the Zed logs.

Zed 0.146.1

07/26/2024

Bug Fixes

Zed 0.146.0

07/24/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/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).
  • Fixed a bug where tooltips would sometimes continuously display when the button was selected.

Zed 0.145.0

07/17/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 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.

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

Zed 0.144.3

07/16/2024

  • 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: Remove "Install CLI" from welcome, it is not necessary (#14506)
  • linux: Fixed opening urls/directories on systems where the xdg desktop portal doesn't handle those requests. (#14359)
  • linux: Fix IME under fcitx5 (#14192) (#14508)
  • Improved prettier detection to pick up its installation from transitive dependencies (12731
  • Improved Zed logic for sending textDocument/didSave request (14286)
  • Added dynamic [un]registration for LSP formatting capabilities (#12661)

Zed 0.144.2

07/12/2024

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

Zed 0.144.1

07/11/2024

Bug fixes

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

Zed 0.144.0

07/10/2024

Linux Support 🎉

Linux when? Linux now. 🎉🐧

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

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

Enhancements

Languages

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

General

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

Vim

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

Bug Fixes

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

Zed 0.143.6

07/10/2024

  • (Linux only) Shipping pre-launch changes

Zed 0.143.5

07/09/2024

Zed 0.143.4

07/09/2024

  • (Linux only) Shipping pre-launch changes

Zed 0.143.3

07/09/2024

  • (Linux only) Shipping pre-launch changes

Zed 0.143.2

07/05/2024

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

Zed 0.143.1

07/05/2024

  • Linux window decorations (#13611)

Zed 0.143.0

07/03/2024

Enhancements

AI

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

General

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

Performance

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

Vim

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

Bug Fixes

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