Change summary
crates/project/src/search.rs | 15 +++++++++++++++
1 file changed, 15 insertions(+)
Detailed changes
@@ -55,6 +55,10 @@ impl SearchQuery {
}
pub fn detect<T: Read>(&self, stream: T) -> Result<bool> {
+ if self.as_str().is_empty() {
+ return Ok(false);
+ }
+
match self {
SearchQuery::Text { search, .. } => {
let mat = search.stream_find_iter(stream).next();
@@ -89,6 +93,10 @@ impl SearchQuery {
pub async fn search(&self, rope: &Rope) -> Vec<Range<usize>> {
const YIELD_INTERVAL: usize = 20000;
+ if self.as_str().is_empty() {
+ return Default::default();
+ }
+
let mut matches = Vec::new();
match self {
SearchQuery::Text {
@@ -152,4 +160,11 @@ impl SearchQuery {
}
matches
}
+
+ fn as_str(&self) -> &str {
+ match self {
+ SearchQuery::Text { query, .. } => query.as_str(),
+ SearchQuery::Regex { regex, .. } => regex.as_str(),
+ }
+ }
}