diff --git a/crates/search/src/project_search.rs b/crates/search/src/project_search.rs index 6903337e07160bdb1bec048ad9d3fe4672c91f09..ec9108f92cffa392233f22625f40c15da59bf3cc 100644 --- a/crates/search/src/project_search.rs +++ b/crates/search/src/project_search.rs @@ -996,6 +996,10 @@ impl ProjectSearchBar { SearchOption::Regex => &mut search_view.regex, }; *value = !*value; + + if value.clone() { + search_view.semantic = None; + } search_view.search(cx); }); cx.notify(); @@ -1012,6 +1016,9 @@ impl ProjectSearchBar { search_view.semantic = None; } else if let Some(semantic_index) = SemanticIndex::global(cx) { // TODO: confirm that it's ok to send this project + search_view.regex = false; + search_view.case_sensitive = false; + search_view.whole_word = false; let project = search_view.model.read(cx).project.clone(); let index_task = semantic_index.update(cx, |semantic_index, cx| { @@ -1266,9 +1273,14 @@ impl View for ProjectSearchBar { .with_child(self.render_nav_button(">", Direction::Next, cx)) .aligned(), ) - .with_child( - Flex::row() - .with_child(self.render_semantic_search_button(cx)) + .with_child({ + let row = if SemanticIndex::enabled(cx) { + Flex::row().with_child(self.render_semantic_search_button(cx)) + } else { + Flex::row() + }; + + let row = row .with_child(self.render_option_button( "Case", SearchOption::CaseSensitive, @@ -1286,8 +1298,10 @@ impl View for ProjectSearchBar { )) .contained() .with_style(theme.search.option_button_group) - .aligned(), - ) + .aligned(); + + row + }) .contained() .with_margin_bottom(row_spacing), ) diff --git a/crates/semantic_index/src/semantic_index.rs b/crates/semantic_index/src/semantic_index.rs index 215ca38a28845fdf8b24d8c5d0a5d1249a03bcec..7e8d183ba00a9626af53a881a9fa3d272c257a83 100644 --- a/crates/semantic_index/src/semantic_index.rs +++ b/crates/semantic_index/src/semantic_index.rs @@ -1,7 +1,7 @@ mod db; mod embedding; mod parsing; -mod semantic_index_settings; +pub mod semantic_index_settings; #[cfg(test)] mod semantic_index_tests; @@ -183,6 +183,10 @@ impl SemanticIndex { } } + pub fn enabled(cx: &AppContext) -> bool { + settings::get::(cx).enabled + } + async fn new( fs: Arc, database_url: PathBuf,