зеркало из
https://github.com/glebtv/tui-textarea.git
synced 2026-09-03 14:26:17 +03:00
fix warnings and compile errors due to ratatui v0.28 update
Этот коммит содержится в:
@@ -3,7 +3,7 @@
|
||||
|
||||
use ratatui::backend::{Backend, WindowSize};
|
||||
use ratatui::buffer::Cell;
|
||||
use ratatui::layout::{Rect, Size};
|
||||
use ratatui::layout::{Position, Size};
|
||||
use ratatui::Terminal;
|
||||
use std::io;
|
||||
use tui_textarea::TextArea;
|
||||
@@ -75,10 +75,8 @@ impl Backend for DummyBackend {
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn size(&self) -> io::Result<Rect> {
|
||||
Ok(Rect {
|
||||
x: 0,
|
||||
y: 0,
|
||||
fn size(&self) -> io::Result<Size> {
|
||||
Ok(Size {
|
||||
width: self.width,
|
||||
height: self.height,
|
||||
})
|
||||
@@ -102,6 +100,19 @@ impl Backend for DummyBackend {
|
||||
fn flush(&mut self) -> io::Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn get_cursor_position(&mut self) -> io::Result<Position> {
|
||||
let (x, y) = self.cursor;
|
||||
Ok(Position { x, y })
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn set_cursor_position<P: Into<Position>>(&mut self, position: P) -> io::Result<()> {
|
||||
let Position { x, y } = position.into();
|
||||
self.cursor = (x, y);
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
@@ -116,6 +127,6 @@ pub trait TerminalExt {
|
||||
impl TerminalExt for Terminal<DummyBackend> {
|
||||
#[inline]
|
||||
fn draw_textarea(&mut self, textarea: &TextArea<'_>) {
|
||||
self.draw(|f| f.render_widget(textarea, f.size())).unwrap();
|
||||
self.draw(|f| f.render_widget(textarea, f.area())).unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ impl<'a> Editor<'a> {
|
||||
);
|
||||
|
||||
self.term.draw(|f| {
|
||||
let chunks = layout.split(f.size());
|
||||
let chunks = layout.split(f.area());
|
||||
|
||||
if search_height > 0 {
|
||||
f.render_widget(&self.search.textarea, chunks[0]);
|
||||
|
||||
@@ -26,7 +26,7 @@ fn main() -> io::Result<()> {
|
||||
|
||||
loop {
|
||||
term.draw(|f| {
|
||||
f.render_widget(&textarea, f.size());
|
||||
f.render_widget(&textarea, f.area());
|
||||
})?;
|
||||
match crossterm::event::read()?.into() {
|
||||
Input { key: Key::Esc, .. } => break,
|
||||
|
||||
@@ -30,7 +30,7 @@ fn main() -> io::Result<()> {
|
||||
|
||||
loop {
|
||||
term.draw(|f| {
|
||||
let chunks = layout.split(f.size());
|
||||
let chunks = layout.split(f.area());
|
||||
f.render_widget(&textarea, chunks[0]);
|
||||
})?;
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ fn main() -> io::Result<()> {
|
||||
|
||||
loop {
|
||||
term.draw(|f| {
|
||||
let chunks = layout.split(f.size());
|
||||
let chunks = layout.split(f.area());
|
||||
f.render_widget(&textarea, chunks[0]);
|
||||
})?;
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ fn main() -> io::Result<()> {
|
||||
|
||||
loop {
|
||||
term.draw(|f| {
|
||||
let chunks = layout.split(f.size());
|
||||
let chunks = layout.split(f.area());
|
||||
for (textarea, chunk) in textarea.iter().zip(chunks.iter()) {
|
||||
f.render_widget(textarea, *chunk);
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
Event::Tick => {}
|
||||
}
|
||||
term.draw(|f| {
|
||||
f.render_widget(&textarea, f.size());
|
||||
f.render_widget(&textarea, f.area());
|
||||
})?;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
// The event loop
|
||||
loop {
|
||||
term.draw(|f| {
|
||||
f.render_widget(&textarea, f.size());
|
||||
f.render_widget(&textarea, f.area());
|
||||
})?;
|
||||
|
||||
if let Some(input) = term
|
||||
|
||||
@@ -33,7 +33,7 @@ fn main() -> io::Result<()> {
|
||||
let chunks = Layout::default()
|
||||
.direction(Direction::Vertical)
|
||||
.constraints([Constraint::Length(height), Constraint::Min(0)])
|
||||
.split(f.size());
|
||||
.split(f.area());
|
||||
f.render_widget(&textarea, chunks[0]);
|
||||
})?;
|
||||
match crossterm::event::read()?.into() {
|
||||
|
||||
@@ -417,7 +417,7 @@ fn main() -> io::Result<()> {
|
||||
let mut vim = Vim::new(Mode::Normal);
|
||||
|
||||
loop {
|
||||
term.draw(|f| f.render_widget(&textarea, f.size()))?;
|
||||
term.draw(|f| f.render_widget(&textarea, f.area()))?;
|
||||
|
||||
vim = match vim.transition(crossterm::event::read()?.into(), &mut textarea) {
|
||||
Transition::Mode(mode) if vim.mode != mode => {
|
||||
|
||||
@@ -78,8 +78,8 @@ impl fmt::Display for YankText {
|
||||
/// println!("Lines: {:?}", textarea.lines());
|
||||
/// ```
|
||||
///
|
||||
/// It implements [`ratatui::widgets::Widget`] trait so it can be rendered to a
|
||||
/// terminal screen via [`ratatui::terminal::Frame::render_widget`] method.
|
||||
/// It implements [`ratatui::widgets::Widget`] trait so it can be rendered to a terminal screen via
|
||||
/// [`ratatui::Frame::render_widget`] method.
|
||||
/// ```no_run
|
||||
/// use ratatui::backend::CrosstermBackend;
|
||||
/// use ratatui::layout::{Constraint, Direction, Layout};
|
||||
@@ -96,7 +96,7 @@ impl fmt::Display for YankText {
|
||||
///
|
||||
/// loop {
|
||||
/// term.draw(|f| {
|
||||
/// let chunks = layout.split(f.size());
|
||||
/// let chunks = layout.split(f.area());
|
||||
/// f.render_widget(&textarea, chunks[0]);
|
||||
/// }).unwrap();
|
||||
///
|
||||
@@ -1616,7 +1616,7 @@ impl<'a> TextArea<'a> {
|
||||
}
|
||||
|
||||
/// Build a ratatui (or tui-rs) widget to render the current state of the textarea. The widget instance returned
|
||||
/// from this method can be rendered with [`ratatui::terminal::Frame::render_widget`].
|
||||
/// from this method can be rendered with [`ratatui::Frame::render_widget`].
|
||||
///
|
||||
/// This method was deprecated at v0.5.3 and is no longer necessary. Instead you can directly pass `&TextArea`
|
||||
/// reference to the `Frame::render_widget` method call.
|
||||
|
||||
@@ -15,8 +15,8 @@ use tui::text::Spans as Line;
|
||||
// instance. In the case, the TextArea instance cannot be accessed from any other objects since it is mutablly
|
||||
// borrowed.
|
||||
//
|
||||
// `ratatui::terminal::Frame::render_stateful_widget` would be an assumed way to render a stateful widget. But at this
|
||||
// point we stick with using `ratatui::terminal::Frame::render_widget` because it is simpler API. Users don't need to
|
||||
// `ratatui::Frame::render_stateful_widget` would be an assumed way to render a stateful widget. But at this
|
||||
// point we stick with using `ratatui::Frame::render_widget` because it is simpler API. Users don't need to
|
||||
// manage states of textarea instances separately.
|
||||
// https://docs.rs/ratatui/latest/ratatui/terminal/struct.Frame.html#method.render_stateful_widget
|
||||
#[derive(Default, Debug)]
|
||||
|
||||
Ссылка в новой задаче
Block a user