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_patternparameter. (#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_enabledlanguage setting (defaults to true). (#43269) - ⭐Added a
File historyview 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
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.scmfor script blocks ofactions/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.directivefor syntax highlighting, matching C++ behavior. (#44043; thanks lipcut)
Vim / Helix
- Added
ctrl-w xkeybinding 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
- Improved Wayland key repeat rate precision. (#43589; thanks olejorgenb)
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 thesettings.jsonfile when the Settings UI is in focus. (#43747) - Added
Show Tab Bar Buttonssetting 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::ActivatePreviousItemandpane::ActivateNextItemto 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: falseso 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_marginnot accounting for file header height. (#43521; thanks errmayank)