Software 43190 Published by

A new version of the Zed editor has been released, featuring numerous enhancements and corrections. The features include automatically adding a new line when you press enter between opening and closing tags in JSX/TSX, better restoring of the editor's state when you reopen files, keeping a history of command palette uses, correct syntax highlighting for use bounds and async closures in Rust, and hiding the mouse cursor in more situations.

Keybinds now manage upper-case characters, interpreting special keys like F8, CTRL, and SHIFT without regard to case. In context menus, keybinds will appear dimmed when the associated action is currently disabled. A feature has been introduced that allows users to double-click on an empty pane to open a new file.




Git now displays previous commits in Zed, and the Git UI presents only one repository when two subdirectories of a shared repository root are open in Zed. The git panel will now utilize GIT_ASKPASS if it is already configured, rather than replacing it with our own implementation.

Vim has introduced commands such as :ls, :buffers, :options, and :map, while AI has incorporated support for DeepSeek R1 hosted on AWS Bedrock. Resolved issues encompass fuzzy matching discrepancies in the file finder, padding inconsistencies in signature popovers, tooltip behavior of code actions appearing above the code actions menu, mouse cursor visibility during typing in Vim mode, and various workspace-related concerns. The ToggleRightDock feature is activating the assistant panel despite being disabled in the settings.

Zed 0.181.5

Enhancements

  • Added support for automatically inserting a newline when hitting enter between opening and closing tags in JSX/TSX ( #27618)
  • Improved restoration of editor state when files are reopened (folds, selections, scroll position). ( #27672)
  • Added persistent history of command palette usages. ( #26948; thanks  KyleBarton)
  • Added correct syntax highlighting for use bounds and async closures in Rust. ( #27875)
  • Mouse cursor now auto-hides in more circumstances. This behavior can be changed by setting hide_mouse to on_typing_and_movementon_typing or never.
  • Improved how upper-case characters are handled in keybinds. "Special" keys such as the function keys, controlshift, etc. are now parsed case-insensitively, so for example F8CTRLSHIFT are now acceptable alternatives to f8ctrl, and shift when declaring keybindings. Additionally, upper-case (ASCII) characters will now be converted explicitly to shift + the lowercase version of the character, to match the Vim behavior. ( #27813)
  • Keybinds in context menus will now be dimmed if the corresponding action is currently disabled ( #27693; thanks  MrSubidubi)
  • Added ability to double click on empty pane to open a new file ( #27521; thanks  loczek)
  • Added support for project panel hiding gitignored files. Use the ProjectPanel::ToggleHideGitIgnore action to toggle the new project_panel.hide_gitignore setting. ( #26636; thanks  AlvaroParker)

Git

  • Added the ability to show past commits in Zed. You can view the most recent commit by clicking its message in the commit panel. And when viewing a git blame, you can show any commit by clicking its sha. ( #27636)
  • Ensured that only one repository is shown in the git UI when two subdirectories of a common repository root are open in Zed. ( #27884)
  • Zed will now use GIT_ASKPASS if you already have one set instead of overriding with our own. Fixes git push in Coder. ( #27681)
  • Changed the git panel to prompt before restoring a file. ( #27525)
  • Fixed git repositories being added for files outside the project. ( #27894)
  • Fixed a bug where the git panel displayed a commit's committer in place of its author. ( #27856)
  • Fixed an issue where Git committer was displayed instead of Git author. ( #27628)

Languages

  • Python: Improved detection of virtualenvwrapper environments in work trees. ( #26759; thanks  elprans)
  • Python: Improved highlighting of function parameters in Python. ( #26815; thanks  MrSubidubi)
  • Python: Improved display of environments in toolchain selector. ( #26741; thanks  elprans)

Vim

  • Added :ls and :buffers. ( #27797; thanks  5brian)
  • Added :options and :map. ( #27798; thanks  5brian)
  • Added g? convert to Rot13/Rot47. ( #27824; thanks  0x2CA)
  • Fixed d]} to not delete the closing brace ( #27786)
  • Fixed d} from the start of the line to not delete the paragraph separator ( #27786)
  • Fixed d} from the middle of the line to not delete the final newline ( #27786)
  • Fixed space on multibyte characters at end of line. ( #27860; thanks  mastion)
  • Fixed o and shift-o in visual block mode. ( #27678; thanks  mastion)
  • Added support for Terminal && vi_mode as keybinding context to detect when the terminal is in vi_mode. ( #26236; thanks  iyht)

AI

  • Added support for DeepSeek R1 hosted on AWS Bedrock. ( #27495; thanks  5herlocked)
  • Fixed an issue where context servers defined in project settings would not be respected in some scenarios. ( #27633)

Bug Fixes

  • Fixed an issue where fuzzy matching in file finder did not properly prioritize matches in file names. ( #27937)
  • Fixed padding issue with the signature popovers. ( #27734; thanks  WeetHet)
  • Fixed code actions tooltip opening on top of code actions menu. ( #27809)
  • Fixed the mouse cursor not hiding while typing in Vim mode. ( #27804)
  • Fixed a bug where unchanged buffers were marked as conflicting if their files were deleted outside of Zed ( #27701)
  • Fixed an issue where accepting LSP snippet completion would insert the label instead of expanding the snippet ( #27630)
  • Fixed an issue where workspace::ToggleRightDock would open the assistant panel even when disabled via settings ( #27215; thanks  MrSubidubi)
  • Fixed an issue where GitHub Copilot would not install properly if the directory was not present. ( #28178)
  • Fixed a panic that could occur when paths changed in the project diff. ( #28364)
  • Fixed the git panel sometimes failing to update after pushing to a remote. ( #28327)
  • Collaboration: Fixed a bug where AirPods had bad sound quality. ( #27126)
  • Collaboration: Fixed a bug where Zed might hang when muting/unmuting/leaving/joining a channel. ( #27126)
  • Collaboration: Fixed echo cancellation in calls on Linux. ( #27126)
  • Collaboration: Removed dependency on WebRTC.framework on Mac. ( #27126)
  • SSH: Fixed remote not restoring when opening for second time. ( #27830)
  • SSH: Fixed project panel not opening when opening new SSH remote folder. ( #27830)
  • SSH: Fixed remote clients unable to query custom, lsp_ext, commands ( #27775)
  • SSH: Fixed trash to work on remotes with no Linux desktop environment configured ( #27682)
  • Removed a small gap between the editor gutter and horizontal scrollbar. ( #24887; thanks  MrSubidubi)
  • Terminal: Fixed an issue where editor theme colors (textbackground) were incorrectly being used instead of terminal theme colors (terminal.{foreground,background}) ( #27617)

Linux Video

  • Added the ability to specify which GPU Zed uses on Linux by setting the ZED_DEVICE_ID environment variable. You can obtain the device ID of your GPU by running lspci -nn | grep VGA which will output each GPU on one line like:
    08:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070] [10de:2484] (rev a1)
    
    where the device ID here is 2484. This value is in hexadecimal, so to force Zed to use this specific GPU you would set the environment variable like so:
    ZED_DEVICE_ID=0x2484
    
    Make sure to export the variable if you choose to define it globally in a .bashrc or similar

Breaking Changes and Notices

  • Renamed hide_mouse_while_typing setting to hide_mouse ( #27677)
  • Keymaps: Upper-case (ASCII) characters will now be converted explicitly to shift + the lowercase version of the character, to match the Vim behavior. ( #27813)

Screenshot_from_2024_07_12_09_18_19

Release v0.181.5 · zed-industries/zed