use ratatui::{buffer::Buffer, layout::Rect};
pub(super) fn find_text(buffer: &Buffer, needle: &str) -> Option<(u16, u16)> {
find_text_in_area(buffer, buffer.area, needle)
}
pub(super) fn find_text_in_area(buffer: &Buffer, area: Rect, needle: &str) -> Option<(u16, u16)> {
let needle = needle
.chars()
.map(|character| character.to_string())
.collect::<Vec<_>>();
for y in area.y..area.y + area.height {
for x in area.x..area.x + area.width {
if needle.iter().enumerate().all(|(offset, symbol)| {
let x = x + offset as u16;
x < area.x + area.width && buffer[(x, y)].symbol() == symbol
}) {
return Some((x, y));
}
}
}
None
}