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());