Releases

Keep up with the weekly Zed releases.


December

0.164.2

12/04/2024

macOS
Linux

Enhancements

General

  • Improved app responsiveness in environments with multiple Python virtual environments (#21420)
  • Added image rendering to the Markdown preview (#21082)
  • Added file_scan_inclusions setting to force Zed to index files that match the provided globs, even if they're gitignored (#16852; thanks Hawkbawk).
  • Added task settings to suppress summary and command line in the task output show_summary / show_command (#20920; thanks omennia).
  • Added support for ctrl-k / ctrl-y alternate cut/yank buffer on macOS (#21003).

SSH Remoting

  • Added support for extension languages on the remote server (#20049).

Languages

  • Python: pylsp will now use version installed in user venv, if one is available (#21069).
  • Python: Added string.doc python syntax highlighting to class and module-level docstrings. (#20486; thanks clwainwright)
  • JSON: Added json-language-server configuration via settings (#20748; thanks 4teapo).
  • Updated tsconfig.json and package.json JSON schemas from upstream (#20910).

AI

  • Restyled Apply/Discard buttons (#21017)

Vim

  • Added the = operator, for auto-indent (#21427)
  • Added support for ctrl-w _ and ctrl-w = (#21227).
  • Added ctrl-w {+,-,>,<} for resizing the current pane (#21038; thanks AidanV).
  • Added vim "unmatched" motions: ]}, ]), [{ and [( (#21098; thanks helgemahrt).
  • Added vii, vai and vaI for selecting indent-text-object (#21121; thanks vultix).
  • Fixed : on the welcome screen (#20937)
  • Restores dia to mean "delete in argument" instead of "delete within angle brackets". (#20918) To keep this in your own keymap use:
    {
        "context": "vim_operator == a || vim_operator == i || vim_operator == cs",
        "use_layout_keys": true,
        "bindings": {
            "a": "vim::AngleBrackets"
        }
    }
    

Bug Fixes

  • Fixed code_actions_on_format setting when used with a language server like ZLS (#20847; thanks Techatrix).
  • Fixed diagnostics editor not scrolling properly under certain conditions (#21209).
  • Fixed multiple project panel selection bugs (#20859 and #20577; thanks 0xtimsb)
  • Fixed eslint 404 downloads (#21233).
  • Fixed incorrect handling of the completion list defaults (#21202)
  • Fixed enter not working and menu toggle binding not shown in the file finder menu (#21087).
  • Fixed a bug where it is possible to get in near-unrecoverable panel state by resizing the panel past the edge of the workspace (#20637).
  • Fixed a bug where the non-OS save dialog would fail to save with "file exists" (#21080)
  • Fixed symlink resolution when opening projects from within Zed. Previously this only happened within zed's cli, but that broke file watching on Linux when opening a symlinked directory (#21039).
  • Fixed remote server panic of "local task dropped by a thread that didn't spawn it" (#21022).
  • Fixed terminal title and breadcrumbs behavior (#20997).
  • macOS: Add keybind for ctrl-home / ctrl-end (MoveToBeginning, MoveToEnd) (#21007).
  • macOS: Fixed for cmd-shift-\ (cmd-|) not working for MoveToEnclosingBracket (#21207).
  • macOS: Fixed cmd-shift-e / ctrl-shift-e (pane::RevealInProjectPanel / project_panel::ToggleFocus) to better my VSCode behavior (#21228).
  • Fixed a panic when backspacing at the start of a buffer with always_treat_brackets_as_autoclosed enabled. (#21482)
  • Fixed dismissing the macOS IME menu with escape when no marked text was present (#21413)
  • Improved positioning of macOS IME overlay (#21416)
  • Fixed file-less excerpts always opening instead of activating (#21472)
  • Fixed a bug in the Markdown preview where images in the same paragraph would be rendered next to each other (#21247)

Breaking Changes and Notices

  • Zed longer provides universal binaries for macOS releases (#21014).

0.163.3

12/02/2024

macOS
Linux
  • Improved app responsiveness in environments with multiple Python virtual environments (#21421)
November

0.163.2

11/27/2024

macOS
Linux

Enhancements

General

  • Added an editor: open docs action to open links to documentation via rust-analyzer (#19233; thanks wanlufun).
  • Added a setting to adjust the width of the file finder modal (#18682; thanks isaacdonaldson).
    "file_finder": {
        "modal_width": "medium"
    },
    
  • Added indication of deleted files. Files deleted outside of Zed will have a strikethrough in the title of the tab (#20711).
  • Sublime Keymap: Added editor::SelectAllMatches compatibility bind (find_all_under). Mac: ctrl-cmd-g and Linux: alt-f3 (#20866).
  • Sublime Keymap: Improved tab switching (#20547; thanks ShinyChang).
  • Enabled snippet parsing to successfully parse snippets with choices (#13958; thanks Anthony-Eid).
  • Show completion menu when tabbing to a snippet variable with multiple choices (#13958; thanks Anthony-Eid).
  • Improved detection of .env.* files as Shell Scripts by default (#20429).
  • Improved the vertical movement behavior when reaching the start or end of a document. The selection goal is now maintained, aligning with native text field functionality (#20705; thanks lord).
  • Improved handling of externally deleted files: auto-save will be disabled, multibuffers will treat this as a save conflict, and single buffers will ask for restore confirmation (#20742).
  • Changed the tab bar height according to ui-density (#19076; thanks Aaron-212).
  • Updated Copilot's underlying version to Copilot.vim 1.41.0 (#20520).
  • Linux: Added Support for Back/Forward multimedia keys (#20695).

AI

  • Added inline hints that guide users on how to invoke the inline assistant and open the assistant panel. (These hints can be disabled by setting {"assistant": {"show_hints": false}}) (#20824).
  • Updated the Assistant to show more details in error cases (#20740).

Vim

  • Added :<range>cpplink to copy a permanent git link to the highlighted range to the clipboard (#20707).
  • Added support for % to jump between pairs of tags (#20536; thanks hrou0003).
  • Added support for ctrl-o in insert mode to enter temporary normal mode (#19454; thanks axelcarl).

SSH Remoting

  • Improved environment variable handling for SSH remotes (#20641).

Languages

  • Python: Improved syntax highlighting (#20487, #20763):
    • Differentiated between function and method calls and definitions. function.definition matches the highlight for e.g. rust, function.call is new (thanks clwainwright).
    • Differentiated between class calls and class definitions (thanks clwainwright).
    • Better highlighting of function decorators (the @ symbol is punctuation, and now the decorator itself has a function.decorator tag) (thanks clwainwright).
    • Made cls a special variable (like self) (thanks clwainwright).
    • Added ellipsis as a built-in constant (thanks clwainwright).
    • Added syntax highlighting for attribute docstrings (thanks JaagupAverin).
  • Python: Added pytest-based test discovery and runnables (#18824; thanks jrderuiter).
  • Python: Added a configurable option for switching between unittest and pytest as a test runner under Python language settings. Set "TASK_RUNNER" to "unittest" under task settings for Python if you wish to use unittest to run Python tasks; the default is pytest (#18824; thanks jrderuiter).
  • Python: Improved toolchain selection for Conda environments (#20702; thanks wolffiex).
  • Python: Improved handling of triple-quote strings (#20664).
  • Python: Improved detection of Poetry-based environments (#20669).
  • Python: tasks now use active toolchain to run (#20667).
  • HTML: Added injections for Markdown syntax highlighting (#20527; thanks uncenter).
  • JavaScript, TypeScript, and TSX: Highlighted ? and : in ternary expressions as operator (#20573; thanks Huliiiiii).
  • Added some more common Prettier plugin base paths (#20758; thanks sweetppro).

Bug Fixes

  • Fixed ESLint 404 downloads (#21233).
  • Fixed for cmd-shift-\ (cmd-|) not working for MoveToEnclosingBracket on macOS (#21207).
  • Fixed cmd-shift-e / ctrl-shift-e (pane::RevealInProjectPanel / project_panel::ToggleFocus) to better my VSCode behavior (#21228).
  • Fixed a crash when opening a file containing a very large number of ascii control characters on one line (#20841).
  • Fixed Rust LSP adapter on FreeBSD (#20736; thanks CalebHeydon).
  • Fixed quirks around dropping project entries into tab bar that might have led to tabs being pinned sometimes (#20722).
  • Fixed rendering of dragged project panel entries (#20686).
  • SSH Remoting: Fixed accidental use of GNU netcat instead of nc provided by macOS (#20751).
  • SSH Remoting: Correctly show an error when SSH'ing into a 32-bit arm system (#20618).
  • (macOS) Fixed a panic when using the Pinyin keyboard with emojis (#20969)

Breaking Changes and Notices

  • Removed the low_speed_timeout setting from LLM provider settings, since it was only used to increase the timeout to give LLMs more time, but since we don't have any other use for it, we simply remove the setting to give LLMs as long as they need (#20681).

0.162.5

11/22/2024

macOS
Linux
  • Python: tweaked default pylsp settings to be less noisy (mypy and pycodestyle are no longer enabled by default). (#21028)

0.162.4

11/21/2024

macOS
Linux
  • Fixed keyboard shortcuts on Spanish ISO keyboards (#20999)
  • Fixed a panic when reloading keymaps (#20966)
  • Fixed a bug where tapping shift coudl type "shift" if you had a binding on "shift shift" (#20958)
  • Fixes opening the menu when Chinese Pinyin keyboard is in use (#20916)

0.162.3

11/20/2024

macOS
Linux

Enhancements

General

  • Repl: Added kernel picker (#20274).
image
image
  • Added setting to display error and warning indicators in project panel items (#18182; thanks nilskch).
image
image
  • Added macOS key equivalents to cmd-shift-p debug: Open Key Context View (#20530).
  • Added support for kernelspecs based on python environments (#20467).
  • Added initial support for FreeBSD (#20480; thanks CalebHeydon).
  • Added language setting to disable inline comments in certain scopes. Example: {"languages": {"Go": {"inline_completions_disabled_in": ["comment", "string"]}}} (#20508).
  • Added ability to configure rootFontSize for the tailwindcss-language-server. Example settings: {"lsp": {"tailwindcss-language-server": {"settings": { "rootFontSize": 50}}}} (#20500).
  • Added shortcuts for open settings and revert selected hunks to JetBrains keymap (#20414; thanks trin94).
  • Added initial set of default emacs keybindings (#19605; thanks vextorspace).
  • Added a project panel: remove from project action so that users can now add a keybinding to trigger it: project_panel::RemoveFromProject (#20360).
  • Added support for look-around in project search (#20308; thanks wbbradley).
  • Changed project panel to mark files when opening them, which should make it more intuitive to mark multiple files after opening a single one (#20412).
  • Improved terminal.working_directory when editing settings.json or other non-project files (#18251).
  • Improved task tabs to always rerun tasks on click (#20591).
  • Improved runnable's refresh timings during project search (#20470).
  • Improved the deleting or trashing of files by showing a confirmation prompt when unsaved changes exist (#20172).
  • Improved window title by showing workspace name before filename (#20310; thanks schpet).
  • Improved revealing items for outline and project panels (now center of the list is preferred) (#20349).
  • Improved contrast in default One themes (#20304).
  • Improved prompt for generating title summaries, avoiding preambles (#20822).
  • Stopped showing signature help after completions by default (#20726).
  • Repl: Only show session-oriented repl:: actions for editors after a session has been created (#20396).

AI

  • Changed the model selector in the assistant panel to only show configured models (#20392).
  • Improved knowledge of which model is used when with alternative inline models turned on (#20350).
  • Improved UI feedback when inserting /delta without new changes (#20356).

SSH Remoting

  • Improved error message on unsupported OS/Arch (#20529).
  • Improved support of Zed remote server compilation for riscv64 (#20489; thanks ifsheldon).

Languages

  • Python: Added python-lsp-server as a secondary built-in language server (#20358).
  • Zig: Changed treesitter grammars to the official Zig grammar (#20004; thanks xdBronch).

Bug Fixes

  • Fixed detection of detect_venv.directories being ignored by a worktree (#20227; thanks SirSilver).
  • Fixed context menus not cycling over its edge when selecting items (#20592).
  • Fixed the inability to navigate into project search input with the keyboard (#20579).
  • Fixed an issue with image output from REPL kernels that didn't use base64 padding (#20561).
  • Fixed window drawing when switching X11 workspaces, particularly for tiling window managers such as i3wm and XMonad (#20535).
  • Fixed editor::Rewrap now preserves cursors and only inserts whitespace by using character-level diff instead of line-level diff (#20368).
  • Fixed a long initial delay when performing a project search in a large repository (#20513).
  • Fixed a bug in toolchain selector that caused it to not pick up venvs for tabs before the user interacted with them (#20488).
  • Fixed a bug in the language selector that caused it to pick up Markdown as the language for a buffer up until the tab was interacted with (#20488).
  • Fixed language server logs menu only showing a single entry when using SSH remoting (#20495).
  • Fixed language server names showing up only as "node" (#20428).
  • Fixed an issue where the image preview would not update when the underlying file changed (#20374; thanks wbbradley).
  • Fixed an issue where completions were not triggering when multiple language servers were used for a single file (#20471).
  • Fixed a bug where you could not jump to an untitled file from the multibuffer headers (#20469).
  • Fixed a bug that allowed toggling comments in readonly buffers (#20464; thanks antaz).
  • Fixed a bug where toggling line numbers would incorrectly hide whitespace indicators (#20427).
  • Fixed project panel entries flickering the border when the user clicks on another entry to open it (when preview tabs are disabled) (#20417).
  • Fixed a bug where [] was considered a clickable link in the terminal (#20386; thanks MrSubidubi).
  • Fixed a bug where a directory would be expanded when dropped onto itself in project_panel (#20365; thanks matubu).
  • Fixed inline completions (Copilot, Supermaven, ...) taking over when a snippet completion was active. That resulted in tab not working to jump to the next placeholder in the snippet (#20300).
  • Fixed a bug where file-closing actions would close pinned tabs (#19593; thanks axelcarl).
  • Typescript: Fixed a bug where abstract classes weren't shown correctly in the outline view when editing code (#20377).
  • Fixed Zed when the directory that you opened is renamed (#20313).
  • SSH Remoting: Fixed password dialog for remote server showing ligatures (#20549).

Breaking Changes and Notices

We have made a number of changes to keyboard shortcuts to support non-US keyboard layouts. See the blog post for more information on our general approach, or the issue for details about what changed.

  • All builtin shortcuts that were bound to alt-[a-z] have been rebound, as these shortcuts intefered with typing on non-US keyboards. You can restore these by adding them to your keymap file. The complete list of changes is:

    Old BindingMapped ToFunction
    alt-balt-righteditor::MoveToNextWordStart
    alt-dalt-deleteeditor::DeleteToNextWordEnd
    alt-falt-lefteditor::MoveToNextWordEnd
    alt-shift-fctrl-shift-fproject_panel::SearchInDirectory
    alt-halt-backspaceeditor::DeleteToPreviousWordStart
    alt-mctrl-shift-massistant::ToggleModelSelector
    alt-qcmd-k q / ctrl-k qeditor::Rewrap
    alt-tcmd-shift-r / ctrl-shift-rtask::Spawn
    alt-shift-talt-cmd-r / ctrl-alt-rtask::Rerun
    alt-vctrl-shift-v["editor::MovePageUp", { "center_cursor": true }]
    alt-zcmd-k z / ctrl-k zeditor::ToggleSoftWrap

    Note that alt-t and alt-shift-t have been kept as secondary bindings for Tasks but we may remove them completely in the future.

  • macOS: (For non-US keyboards). Shortcuts are now automatically localized in the same way they are on macOS. For example on QWERTZ keyboards cmd-[ is now cmd-ö and cmd-] is cmd-ä. This allows anyone to access all of our builtin shortcuts.

  • macOS: (For non-Latin keyboards). All keyboard shortcuts now trigger based on the command layout of your keyboard. This fixes ctrl-a on a Cyrillic keyboard, and allows you to use Vim's normal mode on an IME-based keyboard like Japanese.

  • macOS: Key repeat is now always enabled in the Terminal. This disables the character picker that typically shows up when you hold down a key. This was previously enabled only on a best-effort basis.

  • Linux: Use ctrl-right instead of cmd-right as the default for editor::AcceptPartialInlineCompletion (#20443).

0.161.2

11/14/2024

macOS
Linux

Bug Fixes

  • repl: Fixed base64 encoded images to support decoding with or without padding (#20616).

0.161.1

11/13/2024

macOS
Linux

🍂🎉 We squashed some bugs during last week's Quality Week, and half of these fixes have made their way into this week's stable release! 🐛🐞🐜 + 🔨💥 = 😵⚰️!

Enhancements

General

  • Added scrollbar to info popovers in editor (#20184).
  • Added auto-scrolling to project panel when a vertical edge of a panel is hovered with a dragged entry (#20207).
  • Added option to dim inactive panes (#18968; thanks aexvir).
  • Added option to highlight active pane with a border (#18968; thanks aexvir).
  • Added auto_indent_on_paste setting, which can be used on a per-language basis, to configure whether indentation should be adjusted when pasting. This setting is enabled by default for languages other than YAML and Markdown (#20193).
  • Added a new reveal option for tasks: "no_focus". If used, the tasks terminal panel will be opened and shown, but not focused (#19901).
  • Added a new editor: spawn nearest task action that spawns the task with a run indicator icon nearest to the cursor. It can be configured to also use a reveal strategy (#19901).
{
  "context": "EmptyPane || SharedScreen || vim_mode == normal",
  "bindings": {
    ", r t": ["editor::SpawnNearestTask", { "reveal": "no_focus" }],
  }
}
  • Improved editor performance with large # of diagnostics (#20189).
  • Improved sort order in completions to show relevant matches first (#20145; thanks 80avin).
  • Improved project search functionality by reusing the query from the focused buffer's local search (#20253).
  • Improved large project search performance (#20211).
  • Improved workspace::SendKeystrokes to support re-binding keys. For example you can now do: "x": ["workspace::SendKeystrokes", "\" _ x"] in vim mode to ensure that x does not clobber your clipboard (#20277).
  • Improved outline panel keyboard navigation (#20385).
  • Updated the settings schema to allow null as a value for optional settings instead of showing a warning (#20192).
  • Added debug: open theme preview action to the command palette to preview the current theme's styles (#20039).
  • Added optional ignore_indent parameter to editor::ToggleComments to place comment characters at the left margin. You can make this the default by adding "ctrl-/": ["editor::ToggleComments", { "ignore_indent": true }] to your keymap.json in the Editor context (#19746; thanks NichtJens).
  • Added debug: Open Key Context View action to command palette to help debug custom key bindings (#19872).
  • Added scrollbars to outline panel (#19969).
  • Added \u2028 and \u2029 as invisible characters. Previously these were treated as \n (#19712).
  • Markdown Preview: Added button to copy code blocks (#19312; thanks Irilith).
  • Markdown Preview: Added detection to update when file was changed outside of the editor (#20175).
  • Disabled REPL buttons and actions for remote projects and collaboration (#20397).

AI

  • Improved memory footprint for inline transformations (#20296).
  • Moved the text selection action to a slash command (/selection) in the assistant panel (#19988; thanks marechaux).
  • Diagnostics are no longer automatically attached as context to /tab, /file slash commands in the Assistant Panel. Use /diagnostics to include them if desired (#20297).

SSH Remoting

  • Improved latency of connecting (#20220).
  • Improved keyboard navigation in SSH modal (#19894).
  • Fixed duplicated SSH Remote Projects (#20271; thanks AidanV).

Languages

  • Added support for autoclosing braces {} and single quotes '' in Shell Scripts (#20278).
  • Added support for git worktrees. Zed can now open git worktrees and the git status in them is correctly handled (#20164).
  • Go: Improved go test ./... and go generate ./... commands to run in the go module directory rather than the current package directory (#20190; thanks rpadaki).
  • Go: Added runnable and tasks for go generate commands (#19987; thanks rpadaki).
  • C/C++: Fixed info popups from clangd missing information (#20090).

Vim

  • Added r and a as aliases for [ and < text objects (copying vim-surround) (#20104; thanks mike-lloyd03).
  • Added :noh[lsearch] (#20056).
  • Added ctrl-v/ctrl-q to type any unicode code point. For example ctrl-v escape inserts an escape character(U+001B), or ctrl-v u 1 0 E 2 types ტ (U+10E2). As in vim ctrl-v ctrl-j inserts U+0000 not U+000A. Zed does not yet implement insertion of the vim-specific representation of the typed keystroke for other keystrokes (#19585).
  • Added ctrl-shift-v as an alias for paste on Linux (#19585).
  • Extended ctrl-w to work in non-editor contexts. E.g. markdown preview and screen shares (#20058).
  • Fixed r, ~ etc. appearing to modify readonly buffers (#20264).
  • Fixed some shortcuts to render correctly in Command (#20254).
  • Fixed q and @ in visual mode (#20261).
  • Fixed paragraph object in the presence of softwrap (#20259).
  • Fixed search in the assistant panel (#20258).
  • Fixed d G in not deleting until the actual end of the document if soft-wrap is turned on (#20160).
  • Fixed o not scrolling new head into view (#20054).
  • Fixed gu$ missing last character of the line (#20057).
  • Fixed surrounds to allow b/B/r/a anywhere you could use (, {, [, < (#20104; thanks mike-lloyd03).

Bug Fixes

  • Fixed a crash that could happen when closing a workspace with pinned untitled buffers (#20294).
  • Fixed undo and redo macOS menu items being always disabled (#20293).
  • Fixed project panel losing focus after file creation attempt (#20273).
  • Fixed an issue that prevented removing key bindings for actions used in the macOS application menu (#20268).
  • Fixed a bug where rewrapping with a long word at the start of the line would cause a new line to be inserted (#20256).
  • Fixed a bug where Zed would create a new temporary file on each boot for telemetry logs (#20209).
  • Fixed python toolchain detection when worktree local path is set (#20229; thanks WeetHet).
  • Fixed mouse cursor shape flickering in project and outline panels when crossing items (#20202; thanks stippi).
  • Fixed an issue where single quotation marks were spuriously auto-closed when typing in line comments (#20206).
  • Fixed extend/shrink selection on JetBrains keymap (#20199; thanks trin94).
  • Fixed an issue in TypeScript where @vtsls/language-server may not have been updated to the latest version (#20197).
  • Fixed unhelpful auto-indent suggestions in markdown (#20193).
  • Fixed a bug in macOS Sequoia where you couldn't save a new file as *.sql, as it would rename to .sql.s (#20195). As a side effect you can no longer save a new file as *sql.s. We hope to remove this workaround when the operating system fixes its bug; in the meantime you can either set "use_system_path_prompts": false in your settings file to skip the macOS dialogues, or create new files by right clicking in the project panel.
  • Fixed an inconsistency in the recent project picker, where different keybindings would determine whether to reuse the window or not (#20176).
  • Rewrap Command: Fixed a bug in handling of text wrapping for some ideographic writing systems (#20218).
  • Rewrap Command: Fixed the command to consider the width of each tab character at the beginning of the line to be the configured tab size (#20196).
  • Rewrap Command: The command now considers the width of each tab character at the beginning of the line to be the configured tab size (#20196).
  • SSH Remoting: Fixed opening multiple folders on one server (#20281).
  • SSH Remoting: Fixed remoting when the remote runs tcsh (#20220).
  • Outline Panel: Improved performance during large project searches (#20171).
  • Image Viewer: Added file path to breadcrumbs toolbar for images (#20155).
  • Project Panel: Fixed an issue where single-clicking on a file would not focus the editor with preview_tabs disabled (#20154).
  • Fixed an issue where the multibuffer hint was shown when terminal was in centered mode (#20137; thanks tekikaito).
  • Fixed preview tabs being disabled in code, even if they were enabled in the settings (#20416).
  • Fixed a regression where key binding symbols weren't shown in certain pickers (#20367).
  • Linux: Fixed duplicate font loading (#19374; thanks AlvaroParker).

Breaking Changes and Notices

  • active_pane_magnification value is no longer used, it should be migrated to active_pane_modifiers.magnification.
  • Vim: Rebound the function argument text object to g (#20104; thanks mike-lloyd03).

0.160.7

11/06/2024

macOS
Linux

Enhancements

General

  • Added support for new models with GitHub Copilot Chat (OpenAI o1-mini, o1-preview; Anthropic Claude 3.5 Sonnet (#19968)).
  • Added support for zed://ssh/<connection>/<path> (#19970).
  • Added support to show invisible characters in the editor (#19846).
  • Added support for self-hosted GitLab instances when generating Git permalinks (#19909).
    • The instance URL must have gitlab somewhere in the host in order to be recognized.
  • Added feature to show commit summary as part of the inline Git blame (#19759; thanks pjtatlow).
  • Improved the parsing of Git remote URLs to support additional scenarios (#19924).

AI

  • Added "Suggest Edit" button to the assistant panel if "enable_experimental_live_diffs": true is set in the "assistant" section of settings.json (#19900). This button takes the place of the previous /workflow command, but it is experimental and may change!
  • Diagnostics are no longer automatically attached as context to /tab, /file slash commands in the Assistant Panel. Use /diagnostics to include them if desired. (#20297).

Languages

  • Added support for Doxygen-style doc comments starting with /// or //! in C++ (#19858).
  • Improved syntax highlighting for type hints in Python (#18185; thanks ClanEver).

Bug Fixes

  • Fixed an issue where the project diagnostics view spuriously allowed horizontal scrolling by a small amount (#19856).
  • Fixed block cursor rendering only the first character of multi-character graphemes (#19867).
  • Fixed image support in REPL for certain versions of matplotlib that included preceding and/or trailing whitespace in the base64 image data (#19977).
  • Fixed Zed incorrectly changing soft wrap based on .editorconfig contents (#20198).
  • Fixed outline panel navigation with menu::SelectNext and menu::SelectPrev (#20083).
  • Fixed outline panel-related performance issues when selections change in the large document (#20031).
  • Fixed deserialization error with Gemini 1.5 Pro (#20200; thanks zeitlings).
  • SSH Remoting: make downloading binary on remote more reliable (#19983).
  • SSH Remoting: Fixed a bug where we could cache an HTML error page as a binary (#19990).
  • SSH Remoting: Fixed compatibility with busy box gunzip (#20046).
  • SSH Remoting: Fixed compatibility with non-sh/bash/zsh shells (#20046).
  • SSH Remoting: Fixed fallback to uploading binary when downloading on the remote fails (#19991).
  • SSH Remoting: Fixed panic when restoring untitled unsaved buffers (#20215).

0.159.10

11/04/2024

macOS
Linux
  • Remoting: Fixed connecting to hosts with long (>~50 character) hostnames (#20093).
  • Fixed undo stack corruption on external file changes (#20156) (preview-only).
  • Fixed outline panel navigation with menu::SelectNext and menu::SelectPrev (#20083).
  • Fixed outline panel-related performance issues when selections change in the large document (#20031).

0.159.7

11/01/2024

macOS
Linux
  • Remoting: Fixed remotes with non-sh/bash/zsh default shells (#20046).
  • Remoting: Fixed remotes running busybox's version of gunzip (#20046).
October

0.159.6

10/31/2024

macOS
Linux

Bug Fixes

  • Fixed image support in REPL for certain versions of matplotlib that included preceding and/or trailing whitespace in the base64 image data (#19977).
  • SSH Remoting: make downloading binary on remote more reliable (#19983).
  • SSH Remoting: Fixes a bug where we could cache an HTML error page as a binary (#19990).

0.159.5

10/30/2024

macOS
Linux

Enhancements

Today we're excited to launch Zed SSH Remoting in Beta. 💻🌐🎉

For remote hosts, we support macOS remotes (both Intel x86_64 and ARM aarch64) and Linux on x86_64 or ARM: Ubuntu 20/22/24, Raspbian, Debian 11/12, Fedora 40/41/42, ArchLinux, Alpine, NixOS, SUSE/OpenSUSE as well as RedHat 8.x/9.x, and clones (Rocky Linux, CentOS Stream, AlmaLinux, Amazon Linux, Oracle Linux).

Blog Post: https://zed.dev/blog/remote-development Docs: https://zed.dev/docs/remote-development

Note: The original version of remote development sent traffic via Zed's servers. As of Zed v0.157, you can no longer use that mode.

General

  • Added file icons for Gleam (#19887; thanks okkdev), Zig, Julia, SCSS, HCL, Nix, and Roc files.
  • Added the ability to fold all blocks of code at a target "level." macOS: cmd-k, cmd-<number>, Linux: ctrl-k, ctrl-<number> (#19750).
  • Added indent guides to the project and outline panel (#18260, (#19719)).
  • Added macOS Services menu (fixed global macOS shortcuts) (#16959).
  • Added support for detecting images with non-lowercase file extensions (#19304).
  • Added a user-visible error message when a manual save fails (#19311).
  • Added toolchain selector to the status bar with initial support for Rust and Python (#19576).
  • Added ability to cancel language server work in remote development (#19946).
  • Improved [re]open for external worktree entries (#19612).

AI

  • Improved Inline Assistant placeholder text. Including focus context panel and navigate history key bindings (#19447).
  • Improved prompt for generating context editor summaries (#19530; thanks wolffiex).
  • Moved Git hunk controls to the right of the header (#19515).

Languages

  • Added keybindings for applying hunks in Proposed Changes: cmd-shift-y / ctrl-shift-y (#19749).
  • Added autoclosing of Rust multiline strings (#19765).
  • Added .editorconfig support (#19455).
  • Registered .postcss files as CSS (#19416).

Vim

  • Added support for incrementing and decrementing numbers with leading zeros in Vim mode (#18362; thanks ThomAub).

Bug Fixes

  • Fixed directory name comparison on Linux not considering the case (#19211; thanks wannacu).
  • Fixed issue where auto-update would quietly fail if rsync was not available (#19392).
  • Fixed code action for Fix with assistant appearing when assistant was disabled (#19553).
  • Fixed empty keystroke with simulated IME (#19414; thanks brunocalza).
  • Fixed a bug where auto-indent didn't work correctly when pasting with multiple cursors on adjacent lines (#19521).
  • Fixed incorrect checkbox placement in Markdown preview (#19383; thanks zfz7).
  • Fixed Markdown preview rendering of empty list items (#19449; thanks mgsloan).
  • Fixed inconsistent serialization of workspace paths order (#19232; thanks eth0net).
  • Fixed error handling when no project paths could be opened (#19320).
  • Fixed an issue where the branch switcher would show an error when opening a file outside of the project (#19888).
  • Fixed outline panel panicking on filtering (#19811).
  • Fixed horizontal scrollbar not being hidden (#19767).
  • Fixed an issue where HTML tags within list items would break the Markdown preview (#19785).
  • Fixed an issue where clicking on an image inside the project panel would not re-use an existing image tab (#19717).
  • Fixed autoclosing quotes when the string is already open (#19765).
  • Fixed project panel bug when renaming files where up/down keys could select other files (#19670; thanks zhang0098).
  • Fixed slowness when collaborating (#19912).
  • Fixed an issue where diagnostic underlines and certain text highlights were not rendered correctly below block decorations such as the inline assistant prompt (#19920).
  • Fixed a rare crash that could happen when certain SQL statements were prepared (#19922).
  • Fixed prettier not reporting failures in the status panel on formatting and installation errors (#19951).
  • Vim: Fixed a bug where the o and O commands did not respect the extend_comment_on_newline setting (#19766).

Breaking Changes and Notices

  • Changed terminal.option_as_meta default from true to false for better out-of-the-box experience on non-US keyboards. Terminal Emacs users will want to set this to true (#19364).

0.158.2

10/24/2024

macOS
Linux

Enhancements

  • Switch to using Anthropic -latest model names by default (#19615).

Bug Fixes

  • Fixed a panic that could occur when trying to complete arguments with the /delta command (#19693).

0.158.1

10/23/2024

macOS
Linux

Enhancements

General

  • Added the ability to click intermediate auto-folded project panel entries (#18956).
  • Added a new editor: format selections action that allows formatting only the currently selected text via the primary language server (#18752; thanks terziele).
  • Added an editor: reload file command (#18395; thanks schpet).
  • Improved performance on macOS when working with very long lines (#19215).
  • Adjusted the divider rule in LSP hovers to be more muted (#19255; thanks dyedgreen).
  • Switched to using the system locale in the terminal instead of forcing en_US.UTF-8 (#18967; thanks shish).
  • Improved Supermaven completions by preventing suggestions based on outdated cursor positions (#18858; thanks kevmo314).

Languages

  • Improved language auto-detection of TypeScript, JavaScript, and shell scripts. Added shebang detection for ts-node, tsx, bun, Deno JS, Deno TS, dash, and ash (#19114).
  • Improved automatic indentation behavior in JSX (#18816; thanks schpet).

Vim

  • Added basic support for Alacritty's vi mode to the built-in terminal (which is using Alacritty under the hood). Vi mode can be activated with ctrl-shift-space, enabling basic motions to navigate the terminal's scrollback buffer (#18715; thanks NukaCody).
  • Added support for using the insert button to activate vim mode (#19245; thanks axelcarl).
  • Added :e[dit], :e[dit]!, which call the editor: reload file command (#18395; thanks schpet).
  • Added z keybindings for scrolling (#18928; thanks syndesis).
  • Changed / in Vim mode to always reset the search options in the search bar back to regex-only. That means using * (in normal or visual mode) still works with its options, but the next / will reset the search options. That makes it much closer to how / behaves in Vim (#19058).
  • Improved vim mode's whole word match by using the search bar's "Match whole words" option, instead of wrapping the search term with \<...\>. This allows easier toggling of whole-word search, and it also works without enabling the regex mode (#18725; thanks osa1).
  • Added a regex option to vim::Search command to allow disabling regex search by default in the keymap (#19177; thanks osa1).

Example usage:

{
  "context": "VimControl && !menu",
  "bindings": {
    "/": ["vim::Search", { "regex": false }],
  }
}

Bug Fixes

  • Fixed Astro LSP interactions (#19266).
  • Fixed a bug where prettier was attempting to install too frequently (#19283).
  • Fixed a bug where language servers from PATH would sometimes be prioritized over the ones from direnv (#19144; thanks WeetHet).
  • Fixed \s in regex search not behaving correctly (#19241).
  • Fixed an issue where the project search would sometimes show "Search all files" when there were no results (#19108; thanks CharlesChen0823).
  • Fixed a bug where relative paths were copied incorrectly from tab context menu (#19206; thanks CharlesChen0823).
  • Fixed a bug where Supermaven was crashing on deleting non-ASCII text (#19153; thanks JunkuiZhang).
  • Fixed tab closing not respecting history. You can use the tabs.activate_on_close = neighbour settings to activate adjacent tabs, if you prefer that behavior (#19150).
  • Fixed support for macOS Keyboard Shortcuts for specific menu items like Window->Zoom (#18921; thanks henryhchchc).
  • Fixed a bug where auto-indent was not enabled while typing in multi-buffers (#18984).

Breaking Changes and Notices

  • Renamed one cursor_shape from underscore to underline (#19028).

0.157.5

10/16/2024

macOS
Linux

Bug fixes

0.157.4

10/16/2024

macOS
Linux

Enhancements

General

  • Added support for color swatches in the language server completions list (#18665; thanks thecrypticace).
  • Streamlined the creation of new branches from the branch selector (#18712).
  • Added a notice in the activity indicator if an error occurs while loading the shell environment (#18567; thanks WeetHet).

Languages

  • Added runnables for main functions in C (#18720; thanks talal).

Example task configuration:

[
  {
    "label": "Run ${ZED_STEM}",
    "command": "gcc",
    "args": [
      "$ZED_FILE",
      "-o",
      "${ZED_DIRNAME}/${ZED_STEM}.out",
      "&&",
      "${ZED_DIRNAME}/${ZED_STEM}.out"
    ],
    "tags": ["c-main"]
  }
]

Vim

  • Added regex and caseSensitive arguments to vim::MoveToNext and vim ::MoveToPrev commands, for toggling regex and case sensitive search (#18429; thanks osa1).

Example:

{
  "context": "VimControl && !menu",
  "bindings": {
    "*": ["vim::MoveToNext", { "regex": false, "caseSensitive": false }],
    "#": ["vim::MoveToPrev", { "regex": false, "caseSensitive": false }]
  }
}

Bug Fixes

  • Fixed a potential hang and panic when an SSH project goes through a slow reconnect.
  • Fixed completion items being applied improperly on fast typing (#18907).
  • Fixed an issue where diff hunks at the boundaries of multi buffer excerpts could not be expanded (#18885).
  • Fixed external formatters not being found, even when they were available in the $PATH of a project (#18611).
  • Fixed option-t and option-shift-t in terminal on macOS (#18749).
  • Fixed code action list not being horizontally aligned correctly (#18748; thanks RemcoSmitsDev).
  • Fixed tab switcher icons not respecting the tabs.git_status setting (#18733; thanks Daste745).
  • Linux: Fixed a bug where the cursor would be the wrong size on Wayland (#18642).

Breaking Changes and Notices

  • Removed built-in support for Protocol Buffers, in favor of making it available as an extension. The Protocol Buffers extension will be suggested for download when you open a .proto file (#18704).

0.156.2

10/14/2024

macOS
Linux
  • Fixed completion menu rendering
  • Fixed Zed not being open filenames with special combination of brackets (#18268)
  • Fixed worktree.read_text_file plugin API working incorrectly (#19050)
  • Fixes horizontal scrollbar not scrolling enough for certain paths (#18939)

0.156.1

10/10/2024

macOS
Linux
  • Fixed completion items inserted with a delay (#19005)

0.156.0

10/09/2024

macOS
Linux

Enhancements

General

  • Added a horizontal scrollbar to project panel (#18513).
  • Added new fold actions to toggle folds (cmd-k cmd-l), fold every fold (cmd-k cmd-0) unfold every fold (cmd-k cmd-j) to fold recursively (cmd-k cmd-[) and unfold recursively (cmd-k cmd-]).
  • Added snippets: configure snippets command to create and modify snippets (#18453; thanks loczek).
  • Added snippets: open folder command for opening the ~/.config/zed/snippets directory (#18453; thanks loczek).
  • Added a setting for the terminal's default cursor shape. The setting is {"terminal": {"cursor_shape": "block"}}. Possible values: block, bar, hollow, underline (#18530).
  • Added file watching for symlinks (#17609; thanks AlvaroParker).
  • Added keyboard shortcuts inside tooltips in the project search, buffer search, etc (#18282).
  • Added editor.document_highlight.bracket_background field to the theme to set background color of highlighted brackets. This will fall back to editor.document_highlight.read_background, if not set (#17566; thanks thataboy).
  • Improved alignment of rendered tables in Markdown Preview (#18315; thanks andarut).
  • Improved consistency and reliability of direnv detection by making direnv integration use direct (direnv export json) mode by default instead of relying on a shell hook (#18536; thanks WeetHet).
  • Improved language server log panel split ergonomics (#18527).
  • Improved experience of configuring external formatters by making formatter arguments optional (#18340; thanks twz123).
  • Improved the git blame gutter to take up only the space required to display the longest git author name in the current file (#18145).
  • Changed the behavior of the git gutter so that diff hunk are expanded immediately when clicking the gutter, and hunk controls are displayed above the hunk (#18313).
  • Changed the view the release notes button in the update toast to trigger the auto update: view release notes locally action (#18486).
  • Changed ui_font_weight and buffer_font_weight settings to require values to be between 100 and 950 (inclusive) (#18594; thanks JunkuiZhang).

SSH Remoting

  • Added running LSP Adapters on host (#18359).
  • Enabled assistant panel and inline assists (running on client) (#18367).

AI

  • Added llama3.2 support (#18366).
  • Linux: Added ability to paste images into the Assistant Panel to include them as context on Linux Wayland (#17671; thanks maan2003).

Languages

  • Improved syntax highlighting for C++ (#18016; thanks VacheDesNeiges).
  • Added syntax highlighting inside heredoc strings in PHP (#18368; thanks sylbru).
  • Added support for using locally installed pyright if available (#18353).
  • Associated uv.lock files with the TOML language (#18426; thanks thorbenk).

Vim

  • Added :fo[ld], :foldo[pen] and :foldc[lose] (#18424).
  • Added za to toggle fold under cursor (#18421).
  • Added zO/zC/zA to open, close and toggle folds recursively (and fixed zc to not recurse into selections) (#18421).
  • Added zR/zM to open/close all folds in the buffer (#18421).

Bug Fixes

  • Assistant: Changed the assistant model to be less likely to incorporate diagnostic information when not requested to fix any issues (#18596; thanks rowillia).
  • Assistant: Fixed copy/cut/paste not working in the assistant panel when selection was empty (#18403).
  • Fixed Reveal in Finder/File Manager, Copy Path, Copy Relative Path and Copy file location actions not working with multibuffers (#18626).
  • Fixed the behavior of {"terminal": {"blinking": "[on|off|terminal_controlled]"} to work correctly and to work correctly when custom cursor_shape is set (#18538).
    • terminal.cursor_shape only controls the default shape of the terminal, not the blinking.
    • terminal.blinking = on means that it's always blinking, regardless of what terminal programs want
    • terminal.blinking = off means that it's never blinking, regardless of what terminal programs want
    • terminal.blinking = terminal_controlled (default) means that it's blinking depending on what terminal programs want. when a terminal program resets the cursor to default, it sets it back to terminal.cursor_shape if that is set.
  • Fixed the environment not loading if direnv mode is set to direct and .envrc is not allowed (#18473; thanks WeetHet).
  • Fixed task indicators not showing up at the starts of folds (#18526).
  • Fixed a bug where go to definition would scroll the editor even when the definition was already within the viewport (#18441; thanks osa1).
  • Fixed an bug where some tooltips would not show up (#18435).
  • Fixed low_speed_timeout_in_seconds for Ollama (#18417).
  • Fixed a slight gutter flicker when going over 999 lines (#18021; thanks galenelias).
  • Fixed use_on_type_format setting not working when defined inside "languages" in the settings. This change will now change the default behavior for C, C++, and Markdown, by turning language server's OnTypeFormatting completions off by default (#18387).
  • Fixed the cursor shape in the editor not changing back to default when {"cursor_shape": "..."} setting is removed. This does not apply to Vim mode (#18379).
  • Fixed sending alt-enter in terminal (#18363).
  • Fixed overriding the path of a language server binary for all language servers. {"lsp":{"<lsp-name>":{"binary":{"path": "_"}}}} will now work for all language servers including those defined by extensions (#18318).
  • Removed confusing soft wrap option behavior (#18412).
  • Removed automatic reinstallation of language servers (#18318). (It mostly didn't work)
  • SSH Remote: Fixed cmd-O to correctly open files on the remote host (#18308).
  • Linux: Fixed some cases where Linux X11 mouse scrolling didn't work at all (#18484; thanks mgsloan).
  • Linux: Fixed handling of switching between Linux X11 devices used for scrolling (#18484; thanks mgsloan).
  • Linux: Fixed a bug where middle mouse clicks could be interpreted as left or right mouse clicks (#18504; thanks mycroft).
  • Linux: Fixed a regression with middle-click pasting (#18503; thanks mycroft).
  • Linux: Fixed blur region on Plasma/Wayland (#18465; thanks jansol).
  • Vim: Fixed cursor position after :{range}yank (#18424).
  • Vim: Fixed register selection in visual yank (#18418).

Breaking Changes and Notices

  • Protocol Buffers language support: Renamed "proto" language to "Proto". This is a breaking change and requires users adjust their settings accordingly from proto to Proto under file_types and languages (#18559).
  • To disable finding lsp adapters in your path, you must now specify {"lsp":{"<lsp-name>":{"binary":{"ignore_system_version": true}}}} (#18318). Previously this was {"lsp":{"<lsp-name>":{"binary":{"path_lookup": false}}}}. Note that this setting still does not apply to extensions.

0.155.2

10/02/2024

macOS
Linux

Enhancements

General

  • Added icons to the file finder (#18091; thanks Daste745).
  • Added a notification to warn users if their user settings or project-local settings failed to deserialize (#18122).
  • Improved preview tabs by marking them as permanent when saved (#18158).
  • Improved performance in repositories using Git fsmonitor--daemon feature (#18326).
  • Improved activity indicators' UX by allowing more of them to be hidden on click (#18305).
  • Improved the appearance of diff hunks in the editor (#18283).
  • Improved buffer search performance when switching tabs (#18281).
  • Improved Permalinks to markdown files on GitHub and GitLab (#18241).
  • Improved completion resolve mechanism (#18212).

AI

  • Added a new assistant.inline_alternatives setting to configure additional models that will be used to perform inline assists in parallel (#18098).
  • Added a new Fix with Assistant action on code with errors or warnings (#18163).
  • Added max tokens for Ollama's qwen2.5-coder model (#18290; thanks thehamsti).

Languages

  • Added escape string highlights to JSON and JSONC files (#18138; thanks Huliiiiii).

Vim

  • Added the ability to spawn multiple cursors through the g-A and g-I motions while in visual select mode (#18183; thanks sergioengineer).
  • Added gq/gw for rewrapping lines (#18156).

Bug Fixes

  • SSH remoting: Fixed projects not restoring previous locations and not refreshing the project panel on open (#18262; thanks CharlesChen0823).
  • SSH remoting: Fixed cmd-o to correctly open files on the host (#18308).
  • SSH remoting: Fixed buffer reloading (#18245).
  • SSH remoting: Fixed format on save (#18242).
  • SSH remoting: Fixed go to definition outside of worktree (#18094).
  • SSH remoting: Fixed LSP queries run over collab (#18099).
  • SSH remoting: Removed "reveal in finder" option from menu (#18306).
  • Fixed a recent regression where tuple and unit structs were omitted from the outline view in Rust (#18297).
  • Fixed a bug where Python import names were highlighted as types (#17984; thanks verhovsky).
  • Fixed running ESLint offline (#18286).
  • Fixed a panic when graphemes are included in supermaven completions (#18279; thanks s3bba).

Breaking Changes

  • Zed will now use the node installed on your $PATH (if it is more recent than v18) instead of downloading its own. You can disable the new behavior with {"node": {"disable_path_lookup": true}} in your settings. We do not yet use system/project-local node_modules (#18172).

0.154.4

10/01/2024

macOS
Linux

Bug fixes

  • Linux: Fixed Ubuntu 20.04 compatibility on x86_64. This regression occurred in Zed Stable v0.153.6 and Zed Preview 0.154.0-pre and was unintentional. Glibc requirement on x86_64 linux is glibc >= 2.31 as it was prior to those releases. Impacted users will have to reinstall zed. (PR #18442).
September

0.154.3

09/27/2024

macOS
Linux

Bug fixes

  • Fixed a (rare) panic in file finder (PR #18374).

0.154.2

09/25/2024

macOS
Linux

Bug Fixes

  • Fixed a panic when graphemes are included in supermaven completions (#18279).

0.154.1

09/25/2024

macOS
Linux

Enhancements

General

  • Added file icons to the tab switcher. Enable with by adding "tabs": {"file_icons": true} to settings (#17115; thanks Daste745).
  • Added an editor: rewrap command for rewrapping text to the maximum line width (#17909).
  • Added the ability to copy surrounding code blocks in the assistant panel into the clipboard, or inserting them directly into the editor, without manually selecting. Place cursor anywhere in a code block (marked by triple backticks) and use the assistant::CopyCode action (cmd-k c / ctrl-k c) to copy to the clipboard, or the assistant::InsertIntoEditor action (cmd-< / ctrl-<) to insert into editor (#17853; thanks thataboy).
  • Added ability to click on filepaths when using git diff inside the built-in terminal (#17446; thanks watsoncj).
  • Added theme styling option to separate terminal background view from terminal background color, for transparent terminal backgrounds (#17611; thanks AlbertMarashi).
  • Added keyboard shortcut to rearrange tabs (left: ctrl-shift-pageup, right: ctrl-shift-pagedown) like Chrome (#15583; thanks tepek2).
  • Added a way to join all panes into one with pane::JoinAll action (#17673).
  • Added a setting for cursor_shape. Can be bar, block, underline, or hollow. Default is bar (#17572; thanks thataboy).
  • Added an inlay_hints.show_background setting to allow displaying backgrounds for inlay hints in the editor (#18010).
    • This setting defaults to false.
    • If enabled, the inlay hint backgrounds will use the hint.background color from the theme.
  • Added access to the local shell environment for task context providers, enabling local Rust tool installations to function (#17964; thanks WeetHet).
  • Improved underline appearance (#17586; thanks ncor).
  • Persisted tab pin state across Zed runs (#17670).
  • Changed documentation popovers to render Markdown prose using the UI font instead of the buffer font. Code blocks still using the buffer font (#17761).
  • Improved the behavior of editor: rewrap when working with a selection that contained comments at different indentation levels (#18146).
  • Improved the auto update: view release notes locally feature by displaying release notes for each patch version associated with the installed minor version (#18108).
  • Improved welcome page design and added additional links (#17874).
  • Enabled dark mode for documentation (#17940).
  • Changed ui_font_size and buffer_font_size to require values to be between 6px and 100px (inclusive) (#17829).
  • Changed tab_size setting to require values be between 1 and 16 (inclusive) (#17882; thanks ihavecoke).

SSH Remoting

  • Added support for booting language servers (in limited circumstances) (#17655).
  • Settings files are now opened in a non-remote window (#18020).
  • Show LSP status in status bar (#17912).
  • Look up language server binaries in the environment on SSH host (#17658).

Languages

  • Improved C syntax highlighting (#17541; thanks krizej).
  • Improved C++ syntax highlighting (#17471; thanks VacheDesNeiges).
  • Changed built-in language support (Rust, Go, C, YAML, ...) to lookup language-server specific settings locally in project directory first before falling back to global value (#17753).
  • Changed rust-analyzer support to look up rust-analyzer binaries by default in $PATH. That changes the default value to something users requested (#17926).
  • Improved highlighting for property names in CSS (#17324).

Vim

  • Improved edge-case handling for ctrl-a/ctrl-x (#17644; thanks hekmyr).
  • When using OpenFile (gf in Vim mode) and the word under the cursor is not an existing file path, we now fall back and additionally check whether a file called <word-under-cursor>.<language-specific-path-suffixes> exists. That's similar to Vim's suffixesadd option (#17805).

AI

  • Added a new /delta command to re-insert changed files that were previously included in a context (#17903).
  • Added support for OpenAI o1-mini and o1-preview models (#17796).
  • Added support for fill-in-the-middle style inline completions (#17578; thanks kevmo314).
  • Added support for specifying keep_alive for Ollama AI models via settings (#17906).
  • Changed default low_speed_timeout_in_seconds option to 600 for OpenAI provider to accommodate recent o1 model release (#17804).

Bug Fixes

  • Fixed tab bar not preserving pinned tab state when an editor::NewFile action is executed (#18072).
  • Fixed macOS incorrectly using ~/.cache/zed instead of ~/Library/Caches/Zed (#17949).
  • Fixed a bug where files with colons in their names could not be opened from the Zed CLI (#17281; thanks erickguan).
  • Fixed a bug where Zed would initiate a window move and then refuse to release the mouse (#17801; thanks skytwosea).
  • Fixed a bug where file watching for Go projects would resort to watching the filesystem root (#17769).
  • Fixed a bug where an extra row was appearing in the toolbar when it was empty (#17888; thanks zhang0098).
  • Fixed a bug where the editor: toggle comments command didn't use the right comment syntax in JSX and TSX elements (#17734).
  • Fixed ctrl-b not moving the cursor (#17808).
  • Fixed display of task commands by using single quotation marks instead of backticks (#17637; thanks bestgopher).
  • SSH remoting: Fixed rename over language server (#17897).
  • SSH remoting: Fixed shell environment loading for remote shells (#17665).
  • Fixed user-configured initialization_options being passed as workspace/Configuration for the vtsls, TypeScript, and YAML language servers (#17757).
  • Fixed a wrong offset calculation in the Supermaven inline completion provider (#17925; thanks kevmo314).
  • Fixed the is and ... highlights for TypeScript (#17787; thanks AlbertMarashi).
  • Fixed a panic that could occur when expanding an excerpt within a multibuffer when the cursor was at the end of the excerpt (#17955).
  • Fixed a link in the Assistant panel to the OpenAI console (#17675; thanks aa2kb).
  • Fixed inline completions showing up in Vim normal mode (#17727).
  • Vim: Fixed gv after > and < in visual mode (#17986).
  • Fixed vtsls being initialized the wrong way, which would mean the wrong options were used to enable completions or inlay hints (#18259).
  • Fixed a bug where copying from the assistant panel appended an additional newline to the end of the clipboard contents (#18090).
  • Fixed link to Privacy Policy in terms displayed by macOS DMG (#17877; thanks Eamon Sisk).
  • Linux: x86 binaries now require glibc >= 2.35; was >= 2.29 (#17375).

0.153.7

09/24/2024

macOS
Linux

Fixes

  • Fix wrong offset calculation in the assistant panel.
  • Fixed buffer search options toggling unexpectedly on redeploys (#18166)
  • Fixed search results in project-wide search not being highlighted consistently and navigation sometimes being broken (#18254, #18219, #17690)

0.153.6

09/19/2024

macOS
Linux

Enhancements

General

  • Added "Pin/Unpin Tab" action to the workspace, assistant and terminal panes (#17426).
  • Added ability to select and act upon intermediate auto-folded project entries (remove, rename, cut, paste) (#17520).
  • Improved DeleteToPreviousWordStart and DeleteToNextWordEnd interactions around newlines. You can opt-in into the previous behavior by adding {"ignore_newlines": true} to either action's binds in your keymap (#16848; thanks kjzl).
  • Improved language server reliability in multi-worktree projects and monorepo. We now notify the language server more reliably about which files have changed (#17499).
  • Improved popup menu margins (#17159; thanks huacnlee).
  • Updated Markdown code blocks to use the buffer font (#17351; thanks matubu).
  • Added support for display_name for custom models in OpenAI and Google Gemini AI providers (#17508).
  • Added search settings section to configure default options enabled in buffer and project searches (#17179; thanks thataboy).
  • Added yaml-language-server configuration via settings. See: zed.dev/docs/languages/yaml (#17479).
  • Increased the default memory limit for vtsls from 3GiB to 8GiB (#17354).
  • Linux (X11): Added Drag and Drop support (#17491; thanks XDeme1).

Vim

  • Added vim-style smart case option for search patterns (#16932; thanks 0x2CA).
  • Added :y[ank] (#17448).
  • Project Panel: Added s keybind to open with default app (#17231; thanks KorigamiK).
  • Added :diff and :revert (that work with '<,'>) to open the selected diff and revert it (#17456).
  • Added d o to open the diff and d p to revert (spiritually similar to vim's do/dp, though obviously not the same) (#17456).
  • Added ctrl-p and ctrl-n to summon the autocomplete menu in insert mode (#17456).
  • Added ( and ) for sentence motion (#17425).

AI

  • Added support for using the configured UI font size in the inline assistant (#17542; thanks haasn).
  • Added support for adding multiple files in a single /file command when pressing tab (#17652).
  • Added support for copying and pasting slash commands in the assistant panel (#17490).
  • Added context_size for "yi-coder" model in Ollama (#17409; thanks rauberdaniel). More information about the model on ollama.
  • Added ability to configure environment variables for context servers through settings. These variables are passed to the server process when launched (#17356; thanks dsp-ant).
  • Improved "Assistant::NewContext" quote selection behavior (#17589).
  • Improved "Assistant::QuoteSelection" to handle multicursor selections (#17589).

Bug Fixes

  • Fixed an issue where a failed inline assistant prompt could not be restarted (#17651).
  • Fixed an issue where commands generated by the terminal command could sometimes be executed without confirmation (#17647).
  • Fixed JSON Schema for tabs.file_icons default value (#17629; thanks kachick).
  • Fixed parenthesis matching for file links in terminal (#17512; thanks saahityaedams).
  • Fixed an issue when using Google Gemini models, where the setting low_speed_timeout_in_seconds was not respected (#17423).
  • Fixed a bug where $PATH could be incompletely loaded during task execution.
  • Fixed Go tasks not working when trying to run tests or benchmarks in sub-packages (#17998.
  • Increased memory limit for eslint to reduce crashes (#17724).
  • Go: Fixed regression by restoring regex to match tests (#17645).
  • Vim: Fixed the behavior of surrounding a text object (#17603; thanks emandres).
  • Vim: Fixed s// to act on current line only (#17234; thanks Horam-Zarri).
  • Vim: Fixed "_ register writes overwriting " register (#17419).
  • Vim: Reverted Y to vim behavior. If you want the neovim version (as a built in mapping to y$) you must configure it in your settings (#17563; thanks vbhavsar).
  • Vim: Fixed parsing of commands with ranges :3 d (#17474).
  • Linux: Fixed blurry mouse cursor on wayland when the screen scale is other than 100% (#17496; thanks senonide).
  • Linux: x86 binaries now require glibc >= 2.35; was >= 2.29 (https://github.com/zed-industries/zed/pull/17375).

0.152.4

09/16/2024

macOS
Linux
  • Fixed a performance problem that happened after opening and closing many editors with vim mode enabled.

0.152.3

09/10/2024

macOS
Linux

Enhancements

General

  • Added ability to perform project search only in opened files (#16580; thanks CharlesChen0823).
  • REPL: Added a readonly buffer for viewing large outputs (#17121).
REPL: Added a readonly buffer for viewing large outputs
REPL: Added a readonly buffer for viewing large outputs
  • REPL: Added button to open full text output in a separate buffer (#16971).

  • Improved the Zed CLI zed to pass along the environment as it was on the CLI to the opened Zed project. That environment is then used when opening new terminals, spawning tasks, or language servers (#17075). Specifically:

    • If Zed was started via zed my-folder, a terminal spawned with workspace: new terminal will inherit these environment variables that existed on the CLI
    • Specific language servers that allow looking up the language server binary in the environments $PATH (such as gopls, zls, rust-analyzer if configured, ...) will look up the language server binary in the CLI environment too and use that environment when starting the process.
    • Language servers that are not found in the CLI environment (or configured to not be found in there), will be spawned with the CLI environment in case that's set. That means users can do something like RA_LOG=info zed . and it will be picked up by the rust-analyzer that was spawned.
    • Check the demo here.
  • Added multiuser support for up to 100 users on the same machine (#14143; thanks samsonjs).

  • Linux: Added an editor setting to toggle middle-click pasting (enabled by default) (#16572; thanks micahscopes).

  • Linux: Improved GPU detection (#17022).

Languages

parameters are colored pink
parameters are colored pink
attributes are colored yellow
attributes are colored yellow
  • Improved Rust syntax highlighting queries (#17097; thanks everdrone).
  • Improved syntax highlighting of Rust methods in completions menu (#17184).
  • Improved language server reliability in multi-worktree projects and monorepo. We now notify the language server more reliably about which files have changed (#17173).

Performance

  • Improved editor performance in presence of many runnable indicators in the gutter (#17250).
  • Improved outline panel performance (#17183).

AI

  • Added a way to accept terminal inline assist suggestions without executing them (#17299).
  • Improved Assistant Configuration to make links clickable (#17011).
  • Improved UX of tab slash command completions (#17296).
  • Added support for argument completions for context server prompts. These show up as regular completions to slash commands (#17085; thanks dsp-ant).
  • Added ability for context servers to provide optional descriptions in prompts/get responses, displayed as slash command labels (#17077; thanks dsp-ant).

Bug Fixes

  • Fixed outline panel filter not working for certain Vim bindings (#17293; thanks CharlesChen0823).
  • Fixed inlay hints not being enabled for JavaScript when using the vtsls language server (#17334; thanks matubu).
  • Fixed an issue where the inline assist would be dismissed even when instructed to regenerate the transformation after an error (#17301).
  • Fixed a bug where "Paste" wasn't always shown in project panel context menu (#17262).
  • Assistant: Fixed New Context opening a new file when focused in the editor pane (#17106; thanks ramipellumbi).
  • Fixed GPT-4 breakage (incorrect max_output_tokens handling) (#17168).
  • Fixed a bug where save replaced the existing open file, using the new pane to replace the old pane (#17123; thanks CharlesChen0823).
  • Fixed a bug where inline completions (Copilot or Supermaven) were showing up in Vim's normal mode (#17154).
  • Fixed an issue where workspace::ActivatePaneInDirection could not activate the center pane (i.e. one couldn't navigate from terminal or assistant panel to the center pane) after loading Zed (#17140).
  • Fixed an issue where context servers returning a carriage return character would result in a panic (#17112; thanks dsp-ant).
  • Fixed a panic opening a file in ~/ with use_system_prompts: false (#17027).
  • Fixed an issue with dangling disk images during macOS auto-updates by implementing automatic unmounting (#17019; thanks vitallium).
  • Fixed an issue where toggling inline completions in a markdown file did not work correctly (#17104).
  • Fixed Go tests not being able to run in case the package (and the go.mod) was in a nested folder (#17108; thanks glaudiston). Pre-defined Go tasks now run in the package's directory. That means go test ./package -run MyTest will run in ./package and execute go test -run MyTest. Also, go test ./... will run in the package directory, not at the root of the Zed project, which is a small breaking change. In case one wants to run go test ./... from the root, one can spawn a manual task that does this.
  • Linux: Fixed the prompt library not closing on Wayland (#16850; thanks apricotbucket28).
  • Linux: Fixed copy/paste shortcuts in context menus (#17103).
  • Linux: Zed will no longer be marked as the default file browser (#16940; thanks valaphee).
  • Linux: ARM binaries now require glibc >= 2.35; was >= 2.29 (#17643).

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