Always open buffers via the project

This commit is contained in:
Max Brunsfeld
2022-01-19 14:48:54 -08:00
parent f43dcd6763
commit 0992132a0d
4 changed files with 53 additions and 83 deletions
+5 -5
View File
@@ -7,7 +7,7 @@ use gpui::{
use language::{Bias, Buffer, Diagnostic};
use postage::watch;
use project::worktree::File;
use project::{Project, ProjectEntry, ProjectPath, Worktree};
use project::{Project, ProjectEntry, ProjectPath};
use std::rc::Rc;
use std::{fmt::Write, path::PathBuf};
use text::{Point, Selection};
@@ -28,13 +28,13 @@ struct WeakBufferItemHandle(WeakModelHandle<Buffer>);
impl PathOpener for BufferOpener {
fn open(
&self,
worktree: &mut Worktree,
project: &mut Project,
project_path: ProjectPath,
cx: &mut ModelContext<Worktree>,
cx: &mut ModelContext<Project>,
) -> Option<Task<Result<Box<dyn ItemHandle>>>> {
let buffer = worktree.open_buffer(project_path.path, cx);
let buffer = project.open_buffer(project_path, cx);
let task = cx.spawn(|_, _| async move {
let buffer = buffer.await?.0;
let buffer = buffer.await?;
Ok(Box::new(BufferItemHandle(buffer)) as Box<dyn ItemHandle>)
});
Some(task)