From af7b2f17ae28699fc20bbe88513db00450390fa3 Mon Sep 17 00:00:00 2001 From: KCaverly Date: Tue, 11 Jul 2023 17:13:58 -0400 Subject: [PATCH] added initial keymap for toggle semantic search Co-authored-by: maxbrunsfeld --- assets/keymaps/default.json | 1 + crates/vector_store/src/vector_store.rs | 42 +++++++++++++------------ 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/assets/keymaps/default.json b/assets/keymaps/default.json index 8c3a1f407cb8baaeff50ea761205d689a773f081..3f0b545ebc2c053eecd7a59692836db1b927deba 100644 --- a/assets/keymaps/default.json +++ b/assets/keymaps/default.json @@ -405,6 +405,7 @@ "cmd-k cmd-t": "theme_selector::Toggle", "cmd-k cmd-s": "zed::OpenKeymap", "cmd-t": "project_symbols::Toggle", + "cmd-alt-t": "semantic_search::Toggle", "cmd-p": "file_finder::Toggle", "cmd-shift-p": "command_palette::Toggle", "cmd-shift-m": "diagnostics::Deploy", diff --git a/crates/vector_store/src/vector_store.rs b/crates/vector_store/src/vector_store.rs index a2ca90e84ef5c138f4019fba08c000cd160de450..d3f89d568a6161369f267c7234422558e74ea871 100644 --- a/crates/vector_store/src/vector_store.rs +++ b/crates/vector_store/src/vector_store.rs @@ -49,7 +49,6 @@ pub fn init( } settings::register::(cx); - if !settings::get::(cx).enable { return; } @@ -58,6 +57,27 @@ pub fn init( .join(Path::new(RELEASE_CHANNEL_NAME.as_str())) .join("embeddings_db"); + SemanticSearch::init(cx); + cx.add_action( + |workspace: &mut Workspace, _: &Toggle, cx: &mut ViewContext| { + eprintln!("semantic_search::Toggle action"); + + if cx.has_global::>() { + let vector_store = cx.global::>().clone(); + workspace.toggle_modal(cx, |workspace, cx| { + let project = workspace.project().clone(); + let workspace = cx.weak_handle(); + cx.add_view(|cx| { + SemanticSearch::new( + SemanticSearchDelegate::new(workspace, project, vector_store), + cx, + ) + }) + }); + } + }, + ); + cx.spawn(move |mut cx| async move { let vector_store = VectorStore::new( fs, @@ -73,6 +93,7 @@ pub fn init( .await?; cx.update(|cx| { + cx.set_global(vector_store.clone()); cx.subscribe_global::({ let vector_store = vector_store.clone(); move |event, cx| { @@ -88,25 +109,6 @@ pub fn init( } }) .detach(); - - cx.add_action({ - // "semantic search: Toggle" - move |workspace: &mut Workspace, _: &Toggle, cx: &mut ViewContext| { - let vector_store = vector_store.clone(); - workspace.toggle_modal(cx, |workspace, cx| { - let project = workspace.project().clone(); - let workspace = cx.weak_handle(); - cx.add_view(|cx| { - SemanticSearch::new( - SemanticSearchDelegate::new(workspace, project, vector_store), - cx, - ) - }) - }) - } - }); - - SemanticSearch::init(cx); }); anyhow::Ok(())