github zed-industries/zed v0.216.0-pre

pre-release2 hours ago

This week's release includes a File History view for viewing the commit history of individual files, word-based diff highlighting, UI for deleting Git branches, improved pyright/basedpyright completion sorting for Python, and many performance improvements! 🙌

Features

AI

  • Agent: Improved delete thread action in the history view by preventing it from also triggering the thread activation. (#43796; thanks aeroxy)
  • Agent: Made the thread loading state clearer in the agent panel. (#43765)
  • Agent: Added support for deleting your entire thread history. (#43370; thanks RemcoSmitsDev)
  • Agent: Revised tool call description for read file tool to explain outlining behavior. (#43929)
  • Agent: Clarified grep tool description to improve agent precision when using it with the include_pattern parameter. (#41225; thanks procr1337)
  • Agent: Removed timeout for agent initialization. (#44066)
  • ACP: Added support for using @mentions after typing slash command. (#43681)

Git

⭐ = Shipped via Let's Git Together


  • Added word diff highlighting in expanded diff hunks (less than 5 lines), configurable via the word_diff_enabled language setting (defaults to true). (#43269)
  • ⭐Added a File history view accessible via right-click context menu on files in the editor, project panel, or git panel. Shows commit history for the selected file with author, timestamp, and commit message. Clicking a commit opens a diff view filtered to show only changes for that specific file. (#42441; thanks ddoemonn, #44016)
  • ⭐Added UI for deleting Git branches. (#42703; thanks errmayank)
  • Improved performance of multibuffers by spawning git blame processes on the background threads. (#43918)
  • Improved git project diff responsiveness. (#43706)
  • Improved overall git experience when loading buffers with massive git history where they would block other git jobs from running (such as staging/unstaging/committing). Now, git-blame runs separately from the git job queue on the side and the buffer with blame hints when finished thus unblocking other git operations. (#43565)
  • ⭐Git will now check pushRemote and pushDefault configurations before falling back to branch remote. (#41700; thanks errmayank)
  • ⭐Increased the askpass timeout for Git operations from 17 to 300 seconds and improved the error message. (#42946; thanks 11happy)
  • ⭐Fixed a bug where hover tooltips in git commit and blame popovers were not consistently using the UI font. (#43975; thanks GoldStrikeArch)
  • Fixed git features not working when a Windows host collaborates with a Unix guest. (#43515)

Debugger

  • Improved "debug test" experience in Rust with ignored tests. (#43110; thanks mikeHag)

Languages

  • Rust: Changed completion tab stops to display inline rather than as a raw LSP snippet expression. (#43891)
  • Python: Improved sorting order of pyright/basedpyright code completions. (#44050; thanks alkasadist)
  • Added JavaScript highlighting via YAML injections.scm for script blocks of actions/github-script. (#43771; thanks novusnota)
  • Added support for Tailwind suggestions and validations for the Gleam programming language. (#43968; thanks arjunbajaj)
  • Added way to configure ESLint's working directories in settings. For example: {"lsp":{"eslint":{"settings":{"workingDirectories":["./client","./server"]}}}}. (#43677)
  • Added Doxygen grammar support for C/C++ files. (#43581; thanks Clement-Lap)
  • Improved grammar for "Shell Script". (#44009)
  • Changed C preprocessor directives to use keyword.directive for syntax highlighting, matching C++ behavior. (#44043; thanks lipcut)

Vim / Helix

  • Added ctrl-w x keybinding in Vim mode, which swaps the active window with the next adjacent one (aligning with Vim behavior). (#42792; thanks mfroeh)
  • Improved the % vim motion for HTML by moving the cursor to the opening tag when positioned on the / (slash) of the closing tag. (#42513; thanks Pranav2612000)

Windows

  • Improved responsiveness when there are many tasks running in the foreground. (#43682)
  • Reduced hangs in some situations. (#43678)

Linux

Other

  • Improved performance for editors of large multibuffers with many different files. (#43709)
  • Improved performance of large project searches and project diffs. (#43888)
  • Added a keybinding (cmd-, (macOS) / ctrl-, (Windows / Linux)) to open the settings.json file when the Settings UI is in focus. (#43747)
  • Added Show Tab Bar Buttons setting to Settings UI to control visibility of New, Split Pane, and Zoom buttons in the tab bar. (#43746; thanks baldwindavid)
  • Improved visibility of long path names in context completions by truncating on the left when space is insufficient to render the full path. (#42682; thanks schurchley)
  • Changed pane::ActivatePreviousItem and pane::ActivateNextItem to toggle the most recent pane when called from a dock panel. (#42588; thanks FloppyDisco)
  • Added file icon for the Odin programming language. (#43855; thanks olrtg)
  • Added the ability to disable direnv integration entirely by setting "load_direnv": "disabled". (#43764; thanks ian-h-chamberlain)
  • Added banners to the extensions page when searching for Basedpyright, Ruff, or Ty, indicating that these features are now built-in. (#43872; thanks Rani367)
  • Enhanced color logic for phantom elements to improve visual distinction based on collision status. (#42710; thanks libondev)

Bug Fixes

  • Windows: Fixed panics caused by unexpected re-entrancy for interior mutability. (#44002)
  • Windows: Fixed an issue where the resize area on the title bar is only 1px tall. (#43995)
  • Windows: Fixed WSL remoting not working with some NixOS setups. (#43987)
  • Windows: Fixed toggling focus to project panel via keybinding not always working. (#43983)
  • Windows: Fixed wrong button tooltips being shown for terminal pane. (#43981)
  • Agent: Fixed command path not being correctly encoded in context server config modal. (#42693; thanks adam-huganir)
  • Agent: Fixed the UI misalignment between old and new lines from the inline assist. (#43768; thanks xipeng-jin)
  • Agent: Fixed a bug where the plan and edit files list would consume the whole space of the thread if they were too long. They're now capped by a max-height and scrollable. (#43759)
  • Agent: Fixed keybinding for allowing a command to run in the agent panel on Windows. (#43692)
  • Agent: Fixed the incorrect amounts of input/output tokens for some Gemini models. (#43117; thanks jsparkdev)
  • Fixed scope tab tooltip to tab content only. (#44076; thanks cppcoffee)
  • Fixed setting show_completions_on_input: false so that it affects word and user-defined snippet completions as well as LSP completions. (#44021)
  • Fixed project search not working correctly on remotes where the host and remote path styles differ. (#43881)
  • Fixed rendered selections in the terminal view not being clamped to the line start/ends correctly. (#43876)
  • Fixed incorrect font weights in editor view when using a highlighting theme with varying font weights. (#43856; thanks cyndis)
  • Fixed a bug where the "Open File" button would overflow in the multibuffer header if the file path was too long. (#43761)
  • Fixed right-click context menu UX issues. (#43631; thanks cppcoffee)
  • Fixed an issue with buffer search bar where the replacement buttons ("Replace Next Match" & "Replace All Matches") wouldn't work if search bar was not focused. (#43569)
  • Fixed a bug where using language server's file renaming actions could fail if the parent directory of the new file did not exist. (#43499)
  • Fixed Python's run module task not working on Windows platforms. (#44064)
  • Fixed the behavior of the attach to process feature for the Golang debugger. (#43898; thanks markelrep)
  • Fixed vertical_scroll_margin not accounting for file header height. (#43521; thanks errmayank)

Breaking Changes and Notices

  • Agent: Removed the end-of-support Gemini 1.5 and older Gemini 2.0 models from the options. (#43117; thanks jsparkdev)
  • Agent: Renamed variant Gemini3ProPreview to Gemini3Pro. (#43117; thanks jsparkdev)
  • Agent: Updated the default model to Gemini 2.5 Flash-Lite. (#43117; thanks jsparkdev)

Don't miss a new zed release

NewReleases is sending notifications on new releases.