Preview releases

July

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

Zed 0.142.4

07/03/2024

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

June

Zed 0.142.3

06/28/2024

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

Zed 0.142.2

06/27/2024

  • Fixed multi-key shortcuts (preview only)
  • Fixed a panic when editing HTML near the end of a file
  • Fixed a panic when editing settings.json from inside the .zed directory

Zed 0.142.1

06/26/2024

Bug Fixes

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

Zed 0.142.0

06/26/2024

Breaking changes

SETTINGS DEPRECATION NOTICE

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

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

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

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

Enhancements

AI

  • Added support for Claude 3.5 Sonnet (#13357).
  • Added the ability to customize available models for OpenAI-compatible services (#11984, #11075).

General

  • Added the ability to remove multi-cursors by clicking on them again. (#13058).
  • Added package version tooltips when hovering over package.json dependency entries (#13303).
  • Added vertical scrollbar to project panel (#4865).
  • Added editor: select enclosing symbol command based on tree-sitter outline. This is useful when combined with inline assist to rewrite a function.
  • Added a mouse context action to copy permalink to line. (#13247)
  • Allowed binding to shift or other modifier keys (#6460).
  • Added an active_line_width to configure the line width of the active indent guide (#12312).
  • Added a scroll_beyond_last_line setting (#4962).
  • Added a gutter.runnables setting that controls whether runnable indicators are displayed in the gutter (@13280).
  • Added Markdown Preview shortcut for the Atom keymap.
  • Added the workspace: clear all notifications command to clear notifications (#10761).

Vim

  • Added support for auto_surround (#12898).
    • Check it out here.
  • Fixed a panic when searching after focusing search bar with mouse (#13487).
  • Added action to surround text in visual mode (no default binding) (#13122).
  • Fixed vim "r" action to accept a count argument (#13287).
  • Fixed vim "shift-r" action to accept a count argument and allow repetition (#13287).
  • Fixed switching to normal mode after g c(vim::ToggleComments) in visual mode (#4439).

Bug Fixes

  • Fixed a bug where project settings were not loaded from .zed/settings.json if they were .gitignored. (#4432).
  • Fixed inline assist button not being hidden when assistant is disabled (#13289).
  • Fixed crate names not being shown in Rust completions menu (#13494).
  • Improved compatibility keybindings (Atom, JetBrains, TextMate) (#13326).
  • Fixed an issue where provider settings were lost when switching between Ollama models (#13399).
  • Fixed an edge case where some indent guides would disappear when a folded line is the first visible line on screen.
  • Fixed a bug that caused unnecessary computations to happen on every file-system event.
  • Fixed too-small windows on MacOS by adding minimum window size.
  • Fixed deleting the last character during IME composition would mistakenly delete other characters (#12862).
  • Improved organization in the Quick Action Bar (#13476).
  • Fixed autosave settings in project-specific settings file being ignored. (#13316).
  • Improved code folding to exclude folding line breaks in whitespace-sensitive languages (#11614).

Zed 0.141.2

06/23/2024

  • Fix: Command palette not scrolling down to the last element
  • Fixed a bug where "Find all references" editor had cursor placed on the first line of the first excerpt in the multibuffer instead of having it on the first reference.

Zed 0.141.1

06/21/2024

Release Notes:

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

Zed 0.141.0

06/19/2024

Enhancements

General

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

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

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

Place your snippet files in ~/.config/zed/snippets. For instance, in your ~/.config/zed/snippets/snippets.json file, you may have:

{
  "my snippet": {
    "prefix": "log",
    "body": ["console.log(\"$1\")"],
    "description": "Expand `log` to `console.log()`"
  }
}

For more configuration information, see the simple-completion-language-server instructions.

  • Added support for dropping files from the finder onto the project panel (#7386).
  • Added a 'selection and movement' tool to the Editor's toolbar, as well as controls to toggle it and a setting to remove it ("toolbar": {"selections_menu": true/false }).
  • Changed the behavior of the + menu in the tab bar to use standard actions and keybindings. Replaced New Center Terminal with New Terminal, and New Search, with the usual Deploy Search. Also added item-creating actions to this menu.
  • Improved performance of project panel in large worktrees.
  • Improved the look of code action and run indicators in the gutter (#12803).
  • Improved the style of disclosure controls throughout the UI.

AI

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

Languages

  • VTSLS is now a default language server for TypeScript, TSX, and JavaScript.
  • Improved quality of auxiliary details in completions returned by VTSLS.
  • Added a more detailed message in place of the generic checking... messages when Rust-analyzer is running.
  • Added a rate limit for language server status messages, to reduce noisiness of those updates.
  • Added a cancel language server work action which will cancel long-running language server tasks.
  • Added the ability to cancel a cargo check by clicking on the status bar item.
  • Improved syntax highlighting in Python (#12578).
Before
Before
After
After

Vim

  • Added pending keys to the mode indicator in Vim mode.
    • See it in action here.
  • Added support for register selection "a-"z, "0-"9, "-. "_ and "% (#11511).
  • Added support for multicursor registers (#11687).
  • Added support for the "/ register.
  • Added gv to restore previous visual selection (#12888).
  • Added support for ctrl-r X to paste in insert mode (#4308).

Bug Fixes

  • Fixed a bug where the selected tab was not always shown when cycling between tabs with ctrl-tab.
  • Fixed a possible hang when opening a worktree in a .git directory
  • Fixed snippet completions sometimes being treated as plain text completions when using VTSLS (#12920).
  • Fixed the Hide Copilot context menu item to modify the appropriate setting.
  • Fixed a panic when editing C code (#13128).
  • Vim: Fixed home and end in visual mode (#13068).
  • Vim: Fixed inserting a 0 in insert mode with a count (#9383).
  • Vim: Fixed gi when the insert ended at the end of a line (#12162).
  • Vim: Fixed gl when the first match is at the end of a line.
  • Vim: Fixed behavior of dw at the end of a soft wrapped line.
  • Vim: Fixed ci" on keyboards where typing a " requires the IME (#12523).
  • Vim: Fixed an issue where held-down modifier keys (such as Shift) would interrupt continuous key events, affecting navigation and selection behavior (#12566).

Breaking changes

  • Removed the language_overrides alias for the languages setting, the copilot alias for the inline_completions setting, and the show_copilot_suggestions alias for the show_inline_completions setting. If you have settings under language_overrides, copilot, or show_copilot_suggestions, they should get moved to languages, inline_completions, and show_inline_completions, respectively. (#13171 ).

Zed 0.140.5

06/18/2024

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