зеркало из
https://github.com/glebtv/tui-textarea.git
synced 2026-09-03 14:26:17 +03:00
report pattern error in title of search box in editor example
Этот коммит содержится в:
@@ -5,6 +5,7 @@ use crossterm::terminal::{
|
||||
};
|
||||
use std::borrow::Cow;
|
||||
use std::env;
|
||||
use std::fmt::Display;
|
||||
use std::fs;
|
||||
use std::io;
|
||||
use std::io::{BufRead, Write};
|
||||
@@ -76,6 +77,18 @@ impl<'a> SearchBox<'a> {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn set_error(&mut self, err: Option<impl Display>) {
|
||||
let b = if let Some(err) = err {
|
||||
Block::default()
|
||||
.borders(Borders::ALL)
|
||||
.title(format!("Search: {}", err))
|
||||
.style(Style::default().fg(Color::Red))
|
||||
} else {
|
||||
Block::default().borders(Borders::ALL).title("Search")
|
||||
};
|
||||
self.textarea.set_block(b);
|
||||
}
|
||||
}
|
||||
|
||||
struct Buffer<'a> {
|
||||
@@ -283,10 +296,8 @@ impl<'a> Editor<'a> {
|
||||
}
|
||||
input => {
|
||||
if let Some(query) = self.search.input(input) {
|
||||
if let Err(err) = textarea.set_search_pattern(query) {
|
||||
self.message =
|
||||
Some(format!("Invalid search pattern: {}", err).into());
|
||||
}
|
||||
let maybe_err = textarea.set_search_pattern(query).err();
|
||||
self.search.set_error(maybe_err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user