Function find_matches

Source
pub fn find_matches(text: &str, query: &SearchQuery) -> Vec<SearchMatch>
Expand description

Finds ordered, non-overlapping matches for a query.

Ranges are UTF-8 byte offsets. An empty needle returns no matches; case-insensitive matching folds ASCII only; whole-word mode treats ASCII letters, digits, and _ as word characters.

ยงExamples

use ailloli_ui_editor::{code::find_matches, SearchQuery};

let query = SearchQuery::new("cat").whole_word(true);
let ranges: Vec<_> = find_matches("Cat scatter cat", &query)
    .into_iter()
    .map(|m| m.range)
    .collect();
assert_eq!(ranges, [0..3, 12..15]);
assert!(find_matches("anything", &SearchQuery::new("")).is_empty());