working textarea with example, time to prepare it for the future implementations

This commit is contained in:
Priec
2025-08-17 12:17:46 +02:00
parent 60cb45dcca
commit e36324af6f
3 changed files with 235 additions and 107 deletions

View File

@@ -90,6 +90,27 @@ impl TextAreaProvider {
self.lines[prev_idx].push_str(&curr);
Some((prev_idx, prev_len))
}
pub fn insert_blank_line_after(&mut self, idx: usize) -> usize {
let clamped = idx.min(self.lines.len());
let insert_at = if clamped >= self.lines.len() {
self.lines.len()
} else {
clamped + 1
};
if insert_at == self.lines.len() {
self.lines.push(String::new());
} else {
self.lines.insert(insert_at, String::new());
}
insert_at
}
pub fn insert_blank_line_before(&mut self, idx: usize) -> usize {
let insert_at = idx.min(self.lines.len());
self.lines.insert(insert_at, String::new());
insert_at
}
}
impl DataProvider for TextAreaProvider {