Use correct worktree when getting permalink to line (#8888)
Previously this code would call `project.visible_worktrees(cx).next` which might not necessarily return the worktree matching the currently open file. What this change does is it adds `get_repo` method on `Project` that allows us to get the `GitRepository` for the current buffer. Release Notes: - Fixed `open permalink to line` not working when multiple folders are added to the project. Co-authored-by: Mikayla <mikayla@zed.dev>
This commit is contained in:
parent
d286c56ebb
commit
2b8b913b6b
3 changed files with 34 additions and 22 deletions
|
@ -16,6 +16,7 @@ use clock::ReplicaId;
|
|||
use collections::{hash_map, BTreeMap, HashMap, HashSet, VecDeque};
|
||||
use copilot::Copilot;
|
||||
use debounced_delay::DebouncedDelay;
|
||||
use fs::repository::GitRepository;
|
||||
use futures::{
|
||||
channel::mpsc::{self, UnboundedReceiver},
|
||||
future::{try_join_all, Shared},
|
||||
|
@ -7302,6 +7303,18 @@ impl Project {
|
|||
})
|
||||
}
|
||||
|
||||
pub fn get_repo(
|
||||
&self,
|
||||
project_path: &ProjectPath,
|
||||
cx: &AppContext,
|
||||
) -> Option<Arc<Mutex<dyn GitRepository>>> {
|
||||
self.worktree_for_id(project_path.worktree_id, cx)?
|
||||
.read(cx)
|
||||
.as_local()?
|
||||
.snapshot()
|
||||
.local_git_repo(&project_path.path)
|
||||
}
|
||||
|
||||
// RPC message handlers
|
||||
|
||||
async fn handle_unshare_project(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue