chore: Move component_preview into zed (#30480)

Piotr Osiewicz created

This improves our build times by ~0.2s

Closes #ISSUE

Release Notes:

- N/A

Change summary

Cargo.lock                                                            | 32 
Cargo.toml                                                            |  2 
crates/component_preview/Cargo.toml                                   | 38 
crates/component_preview/LICENSE-GPL                                  |  1 
crates/zed/Cargo.toml                                                 |  5 
crates/zed/src/main.rs                                                |  2 
crates/zed/src/zed.rs                                                 |  1 
crates/zed/src/zed/component_preview.rs                               |  0 
crates/zed/src/zed/component_preview/persistence.rs                   |  0 
crates/zed/src/zed/component_preview/preview_support.rs               |  0 
crates/zed/src/zed/component_preview/preview_support/active_thread.rs |  0 
11 files changed, 10 insertions(+), 71 deletions(-)

Detailed changes

Cargo.lock 🔗

@@ -3184,33 +3184,6 @@ dependencies = [
  "workspace-hack",
 ]
 
-[[package]]
-name = "component_preview"
-version = "0.1.0"
-dependencies = [
- "agent",
- "anyhow",
- "assistant_tool",
- "client",
- "collections",
- "component",
- "db",
- "futures 0.3.31",
- "gpui",
- "indoc",
- "languages",
- "log",
- "notifications",
- "project",
- "prompt_store",
- "serde",
- "ui",
- "ui_input",
- "util",
- "workspace",
- "workspace-hack",
-]
-
 [[package]]
 name = "concurrent-queue"
 version = "2.5.0"
@@ -18564,6 +18537,7 @@ dependencies = [
  "assets",
  "assistant_context_editor",
  "assistant_settings",
+ "assistant_tool",
  "assistant_tools",
  "async-watch",
  "audio",
@@ -18580,7 +18554,7 @@ dependencies = [
  "collab_ui",
  "collections",
  "command_palette",
- "component_preview",
+ "component",
  "copilot",
  "dap",
  "dap_adapters",
@@ -18606,6 +18580,7 @@ dependencies = [
  "gpui_tokio",
  "http_client",
  "image_viewer",
+ "indoc",
  "inline_completion_button",
  "install_cli",
  "journal",
@@ -18669,6 +18644,7 @@ dependencies = [
  "tree-sitter-md",
  "tree-sitter-rust",
  "ui",
+ "ui_input",
  "ui_prompt",
  "url",
  "urlencoding",

Cargo.toml 🔗

@@ -31,7 +31,6 @@ members = [
     "crates/command_palette",
     "crates/command_palette_hooks",
     "crates/component",
-    "crates/component_preview",
     "crates/context_server",
     "crates/copilot",
     "crates/credentials_provider",
@@ -238,7 +237,6 @@ collections = { path = "crates/collections" }
 command_palette = { path = "crates/command_palette" }
 command_palette_hooks = { path = "crates/command_palette_hooks" }
 component = { path = "crates/component" }
-component_preview = { path = "crates/component_preview" }
 context_server = { path = "crates/context_server" }
 copilot = { path = "crates/copilot" }
 credentials_provider = { path = "crates/credentials_provider" }

crates/component_preview/Cargo.toml 🔗

@@ -1,38 +0,0 @@
-[package]
-name = "component_preview"
-version = "0.1.0"
-edition.workspace = true
-publish.workspace = true
-license = "GPL-3.0-or-later"
-
-[lints]
-workspace = true
-
-[lib]
-path = "src/component_preview.rs"
-
-[features]
-default = []
-
-[dependencies]
-agent.workspace = true
-anyhow.workspace = true
-assistant_tool.workspace = true
-client.workspace = true
-collections.workspace = true
-component.workspace = true
-db.workspace = true
-futures.workspace = true
-gpui.workspace = true
-indoc.workspace = true
-languages.workspace = true
-log.workspace = true
-notifications.workspace = true
-project.workspace = true
-prompt_store.workspace = true
-serde.workspace = true
-ui.workspace = true
-ui_input.workspace = true
-util.workspace = true
-workspace-hack.workspace = true
-workspace.workspace = true

crates/zed/Cargo.toml 🔗

@@ -22,6 +22,7 @@ askpass.workspace = true
 assets.workspace = true
 assistant_context_editor.workspace = true
 assistant_settings.workspace = true
+assistant_tool.workspace = true
 assistant_tools.workspace = true
 async-watch.workspace = true
 audio.workspace = true
@@ -38,7 +39,7 @@ client.workspace = true
 collab_ui.workspace = true
 collections.workspace = true
 command_palette.workspace = true
-component_preview.workspace = true
+component.workspace = true
 copilot.workspace = true
 dap_adapters.workspace = true
 debugger_ui.workspace = true
@@ -63,6 +64,7 @@ gpui = { workspace = true, features = ["wayland", "x11", "font-kit"] }
 gpui_tokio.workspace = true
 http_client.workspace = true
 image_viewer.workspace = true
+indoc.workspace = true
 inline_completion_button.workspace = true
 install_cli.workspace = true
 journal.workspace = true
@@ -124,6 +126,7 @@ time.workspace = true
 title_bar.workspace = true
 toolchain_selector.workspace = true
 ui.workspace = true
+ui_input.workspace = true
 ui_prompt.workspace = true
 url.workspace = true
 urlencoding.workspace = true

crates/zed/src/main.rs 🔗

@@ -658,7 +658,7 @@ fn main() {
 
         let app_state = app_state.clone();
 
-        component_preview::init(app_state.clone(), cx);
+        crate::zed::component_preview::init(app_state.clone(), cx);
 
         cx.spawn(async move |cx| {
             while let Some(urls) = open_rx.next().await {

crates/zed/src/zed.rs 🔗

@@ -1,4 +1,5 @@
 mod app_menus;
+pub mod component_preview;
 pub mod inline_completion_registry;
 #[cfg(target_os = "macos")]
 pub(crate) mod mac_only_instance;