-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix project environment not working correctly with multiple worktrees (…
…#22246) Fixes #21972 This fixes two bugs: **Bug 1**: this bug caused us to only ever load a single environment in a multi-worktree project, thanks to this line: ```rust if let Some(task) = self.get_environment_task.as_ref() ``` We'd only ever run a single task per project, which is wrong. What does code does is to cache the tasks per `worktree_id`, which means we don't even need to cache the environments again, since we can just cache the `Shared<Task<...>>`. **Bug 2**: we assumed that every `worktree_abs_path` is a directory, which lead to `Failed to run direnv` log messages when opening a project that had a worktree with a single file open (easy to reproduce: open a normal project, open your settings, close Zed, reopen it — the settings faile caused environments to not load) It's fixed by checking whether the `worktree_abs_path` is an absolute directory. Since this is always running locally, it's fine to use `smol::fs` here instead of using our `Fs`. Release Notes: - Fixed shell environments not being loaded properly to be used by language servers and terminals in case a project had multiple worktrees. - Fixed `Failed to run direnv` messages showing up in case Zed restored a window that contained a worktree with a single file. #21972
- Loading branch information
Showing
2 changed files
with
96 additions
and
93 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters