diff --git a/Cargo.lock b/Cargo.lock index a9ae6cbbb6..c7c8d7a090 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3733,6 +3733,18 @@ dependencies = [ "util", ] +[[package]] +name = "project_panel" +version = "0.1.0" +dependencies = [ + "gpui", + "postage", + "project", + "serde_json 1.0.64", + "theme", + "workspace", +] + [[package]] name = "prost" version = "0.8.0" @@ -6113,6 +6125,7 @@ dependencies = [ "parking_lot", "postage", "project", + "project_panel", "rand 0.8.3", "rpc", "rsa", diff --git a/crates/project_panel/Cargo.toml b/crates/project_panel/Cargo.toml new file mode 100644 index 0000000000..a682693a49 --- /dev/null +++ b/crates/project_panel/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "project_panel" +version = "0.1.0" +edition = "2018" + +[dependencies] +gpui = { path = "../gpui" } +project = { path = "../project" } +theme = { path = "../theme" } +workspace = { path = "../workspace" } +postage = { version = "0.4.1", features = ["futures-traits"] } + +[dev-dependencies] +serde_json = { version = "1.0.64", features = ["preserve_order"] } diff --git a/crates/zed/src/project_panel.rs b/crates/project_panel/src/lib.rs similarity index 98% rename from crates/zed/src/project_panel.rs rename to crates/project_panel/src/lib.rs index 3ea20a2c58..385b7dbca2 100644 --- a/crates/zed/src/project_panel.rs +++ b/crates/project_panel/src/lib.rs @@ -1,8 +1,3 @@ -use crate::{ - project::{self, Project, ProjectEntry, ProjectPath}, - workspace::Workspace, - Settings, -}; use gpui::{ action, elements::{ @@ -19,12 +14,13 @@ use gpui::{ ViewContext, ViewHandle, WeakViewHandle, }; use postage::watch; -use project::Worktree; +use project::{Project, ProjectEntry, ProjectPath, Worktree}; use std::{ collections::{hash_map, HashMap}, ffi::OsStr, ops::Range, }; +use workspace::{Settings, Workspace}; pub struct ProjectPanel { project: ModelHandle, @@ -575,17 +571,16 @@ impl Entity for ProjectPanel { #[cfg(test)] mod tests { use super::*; - use crate::test::test_app_state; use gpui::{TestAppContext, ViewHandle}; use serde_json::json; use std::{collections::HashSet, path::Path}; + use workspace::WorkspaceParams; #[gpui::test] async fn test_visible_list(mut cx: gpui::TestAppContext) { - let app_state = cx.update(test_app_state); - let settings = app_state.settings.clone(); - let fs = app_state.fs.as_fake(); - + let params = cx.update(WorkspaceParams::test); + let settings = params.settings.clone(); + let fs = params.fs.as_fake(); fs.insert_tree( "/root1", json!({ @@ -624,9 +619,9 @@ mod tests { let project = cx.add_model(|_| { Project::new( - app_state.languages.clone(), - app_state.client.clone(), - app_state.fs.clone(), + params.languages.clone(), + params.client.clone(), + params.fs.clone(), ) }); let root1 = project @@ -648,7 +643,7 @@ mod tests { .read_with(&cx, |t, _| t.as_local().unwrap().scan_complete()) .await; - let (_, workspace) = cx.add_window(|cx| Workspace::new(&app_state.as_ref().into(), cx)); + let (_, workspace) = cx.add_window(|cx| Workspace::new(¶ms, cx)); let panel = workspace.update(&mut cx, |_, cx| ProjectPanel::new(project, settings, cx)); assert_eq!( visible_entry_details(&panel, 0..50, &mut cx), diff --git a/crates/zed/Cargo.toml b/crates/zed/Cargo.toml index e20dacddf5..42f63266ed 100644 --- a/crates/zed/Cargo.toml +++ b/crates/zed/Cargo.toml @@ -32,6 +32,7 @@ fuzzy = { path = "../fuzzy" } editor = { path = "../editor" } gpui = { path = "../gpui" } project = { path = "../project" } +project_panel = { path = "../project_panel" } rpc = { path = "../rpc" } sum_tree = { path = "../sum_tree" } theme = { path = "../theme" } diff --git a/crates/zed/src/lib.rs b/crates/zed/src/lib.rs index 471e45146e..a145070ba7 100644 --- a/crates/zed/src/lib.rs +++ b/crates/zed/src/lib.rs @@ -4,7 +4,6 @@ pub mod file_finder; pub mod language; pub mod menus; pub mod people_panel; -pub mod project_panel; #[cfg(any(test, feature = "test-support"))] pub mod test; pub mod theme_selector; diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index c328f3be97..c48fb35491 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -16,7 +16,7 @@ use zed::{ client::{http, ChannelList, UserStore}, editor, file_finder, fs::RealFs, - language, menus, people_panel, project_panel, theme_selector, AppState, OpenParams, OpenPaths, + language, menus, people_panel, theme_selector, AppState, OpenParams, OpenPaths, }; fn main() {