1
0
зеркало из https://github.com/glebtv/tui-textarea.git synced 2026-09-08 16:35:49 +03:00

improve message in error example and remove unnecessary block in single input example

Этот коммит содержится в:
rhysd
2022-06-17 10:54:11 +09:00
родитель 5fde013747
Коммит 3e09d9a300
2 изменённых файлов: 6 добавлений и 12 удалений

Просмотреть файл

@@ -3,6 +3,7 @@ use crossterm::terminal::{
disable_raw_mode, enable_raw_mode, is_raw_mode_enabled, EnterAlternateScreen, disable_raw_mode, enable_raw_mode, is_raw_mode_enabled, EnterAlternateScreen,
LeaveAlternateScreen, LeaveAlternateScreen,
}; };
use std::borrow::Cow;
use std::env; use std::env;
use std::fs; use std::fs;
use std::io; use std::io;
@@ -70,7 +71,7 @@ struct Editor<'a> {
current: usize, current: usize,
buffers: Vec<Buffer<'a>>, buffers: Vec<Buffer<'a>>,
term: Terminal<CrosstermBackend<io::Stdout>>, term: Terminal<CrosstermBackend<io::Stdout>>,
message: Option<&'static str>, message: Option<Cow<'static, str>>,
} }
impl<'a> Editor<'a> { impl<'a> Editor<'a> {
@@ -133,7 +134,7 @@ impl<'a> Editor<'a> {
f.render_widget(status, chunks[1]); f.render_widget(status, chunks[1]);
let message = if let Some(message) = self.message.take() { let message = if let Some(message) = self.message.take() {
Spans::from(message) Spans::from(Span::raw(message))
} else { } else {
Spans::from(vec![ Spans::from(vec![
Span::raw("Press "), Span::raw("Press "),
@@ -159,10 +160,8 @@ impl<'a> Editor<'a> {
ctrl: true, ctrl: true,
.. ..
} => { } => {
self.current += 1; self.current = (self.current + 1) % self.buffers.len();
if self.current >= self.buffers.len() { self.message = Some(format!("Switched to buffer #{}", self.current + 1).into());
self.current = 0;
}
} }
Input { Input {
key: Key::Char('s'), key: Key::Char('s'),
@@ -170,7 +169,7 @@ impl<'a> Editor<'a> {
.. ..
} => { } => {
self.buffers[self.current].save()?; self.buffers[self.current].save()?;
self.message = Some("Saved!"); self.message = Some("Saved!".into());
} }
input => { input => {
let buffer = &mut self.buffers[self.current]; let buffer = &mut self.buffers[self.current];

Просмотреть файл

@@ -36,11 +36,6 @@ fn main() -> io::Result<()> {
let mut term = Terminal::new(backend)?; let mut term = Terminal::new(backend)?;
let mut textarea = TextArea::default(); let mut textarea = TextArea::default();
textarea.set_block(
Block::default()
.borders(Borders::ALL)
.title("Single Line Input"),
);
textarea.set_cursor_line_style(Style::default()); textarea.set_cursor_line_style(Style::default());
let layout = let layout =
Layout::default().constraints([Constraint::Length(3), Constraint::Min(1)].as_slice()); Layout::default().constraints([Constraint::Length(3), Constraint::Min(1)].as_slice());