From ef3b3188f495c79766febc09c61a4a7e436bd0c4 Mon Sep 17 00:00:00 2001 From: rhysd Date: Tue, 24 Oct 2023 12:51:29 +0900 Subject: [PATCH 1/6] invert `ratatui-*` features with `tuirs-*` --- Cargo.toml | 28 ++++++++++++++-------------- src/cursor.rs | 8 ++++---- src/highlight.rs | 33 ++++++++++++++++----------------- src/input.rs | 30 +++++++++++++++--------------- src/lib.rs | 41 ++++++++++++++++++++++------------------- src/scroll.rs | 8 ++++---- src/search.rs | 2 +- src/textarea.rs | 45 ++++++++++++++++++++++----------------------- src/widget.rs | 8 ++++---- 9 files changed, 102 insertions(+), 101 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 2cf7897..10a6470 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,28 +24,28 @@ include = [ [features] default = ["crossterm"] -# Features to use tui-rs -crossterm = ["dep:crossterm", "tui/crossterm"] -termion = ["dep:termion", "tui/termion"] -your-backend = ["tui"] # Features to use ratatui -ratatui-crossterm = ["dep:crossterm-027", "ratatui/crossterm"] -ratatui-termion = ["dep:termion", "ratatui/termion"] -ratatui-termwiz = ["dep:termwiz", "ratatui/termwiz"] -ratatui-your-backend = ["ratatui"] +crossterm = ["dep:crossterm", "ratatui/crossterm"] +termion = ["dep:termion", "ratatui/termion"] +termwiz = ["dep:termwiz", "ratatui/termwiz"] +your-backend = ["ratatui"] +# Features to use tui-rs +tuirs-crossterm = ["dep:crossterm-025", "tui/crossterm"] +tuirs-termion = ["dep:termion", "tui/termion"] +tuirs-your-backend = ["tui"] # Other optional features search = ["dep:regex"] [dependencies] -crossterm = { package = "crossterm", version = "0.25", optional = true } +arbitrary = { version = "1", features = ["derive"], optional = true } +crossterm = { package = "crossterm", version = "0.27", optional = true } +crossterm-025 = { package = "crossterm", version = "0.25", optional = true } +ratatui = { version = "0.23.0", default-features = false, optional = true } regex = { version = "1", optional = true } termion = { version = "2.0", optional = true } -tui = { version = "0.19", default-features = false, optional = true } -arbitrary = { version = "1", features = ["derive"], optional = true } -crossterm-027 = { package = "crossterm", version = "0.27", optional = true } -ratatui = { version = "0.23.0", default-features = false, optional = true } -unicode-width = "0.1.11" termwiz = { version = "0.20.0", optional = true } +tui = { version = "0.19", default-features = false, optional = true } +unicode-width = "0.1.11" [[example]] name = "minimal" diff --git a/src/cursor.rs b/src/cursor.rs index f863c3c..68c4890 100644 --- a/src/cursor.rs +++ b/src/cursor.rs @@ -324,12 +324,12 @@ impl CursorMove { #[cfg(test)] mod tests { - // Seaparate tests for ratatui support + // Seaparate tests for tui-rs support #[test] fn in_viewport() { - use crate::tui::buffer::Buffer; - use crate::tui::layout::Rect; - use crate::tui::widgets::Widget; + use crate::ratatui::buffer::Buffer; + use crate::ratatui::layout::Rect; + use crate::ratatui::widgets::Widget; use crate::{CursorMove, TextArea}; let mut textarea: TextArea = (0..20).map(|i| i.to_string()).collect(); diff --git a/src/highlight.rs b/src/highlight.rs index c827855..df9bad5 100644 --- a/src/highlight.rs +++ b/src/highlight.rs @@ -1,19 +1,18 @@ -use crate::tui::style::Style; +use crate::ratatui::style::Style; #[cfg(any( - feature = "ratatui-crossterm", - feature = "ratatui-termion", - feature = "ratatui-termwiz", - feature = "ratatui-your-backend", + feature = "crossterm", + feature = "termion", + feature = "termwiz", + feature = "your-backend", ))] -use crate::tui::text::Line as Spans; -use crate::tui::text::Span; -#[cfg(not(any( - feature = "ratatui-crossterm", - feature = "ratatui-termion", - feature = "ratatui-termwiz", - feature = "ratatui-your-backend", -)))] -use crate::tui::text::Spans; +use crate::ratatui::text::Line; +use crate::ratatui::text::Span; +#[cfg(any( + feature = "tuirs-crossterm", + feature = "tuirs-termion", + feature = "tuirs-your-backend", +))] +use crate::ratatui::text::Spans as Line; use crate::util::{num_digits, spaces}; use std::borrow::Cow; use std::cmp::Ordering; @@ -138,7 +137,7 @@ impl<'a> LineHighlighter<'a> { } } - pub fn into_spans(self) -> Spans<'a> { + pub fn into_spans(self) -> Line<'a> { let Self { line, mut spans, @@ -158,7 +157,7 @@ impl<'a> LineHighlighter<'a> { if cursor_at_end { spans.push(Span::styled(" ", cursor_style)); } - return Spans::from(spans); + return Line::from(spans); } boundaries.sort_unstable_by(|(l, i), (r, j)| match i.cmp(j) { @@ -197,7 +196,7 @@ impl<'a> LineHighlighter<'a> { if cursor_at_end { spans.push(Span::styled(" ", cursor_style)); } - return Spans::from(spans); + return Line::from(spans); } } } diff --git a/src/input.rs b/src/input.rs index ed62996..04b2c24 100644 --- a/src/input.rs +++ b/src/input.rs @@ -1,13 +1,13 @@ -#[cfg(any(feature = "crossterm", feature = "ratatui-crossterm"))] +#[cfg(any(feature = "crossterm", feature = "tuirs-crossterm"))] use crate::crossterm::event::{ Event as CrosstermEvent, KeyCode, KeyEvent, KeyEventKind, KeyModifiers, MouseEvent, MouseEventKind as CrosstermMouseEventKind, }; #[cfg(feature = "arbitrary")] use arbitrary::Arbitrary; -#[cfg(any(feature = "termion", feature = "ratatui-termion"))] +#[cfg(any(feature = "termion", feature = "tuirs-termion"))] use termion::event::{Event as TermionEvent, Key as TermionKey, MouseEvent as TermionMouseEvent}; -#[cfg(feature = "ratatui-termwiz")] +#[cfg(feature = "termwiz")] use termwiz::input::{ InputEvent as TermwizInputEvent, KeyEvent as TermwizKeyEvent, MouseButtons as TermwizMouseButtons, MouseEvent as TermwizMouseEvent, PixelMouseEvent, @@ -47,7 +47,7 @@ pub enum Key { /// Backend-agnostic key input type. /// -/// When `crossterm`, `termion`, `ratatui-termwiz` features are enabled, converting respective key input types into this +/// When `crossterm`, `termion`, `termwiz` features are enabled, converting respective key input types into this /// `Input` type is defined. /// ```no_run /// use tui_textarea::{TextArea, Input, Key}; @@ -101,7 +101,7 @@ impl Default for Input { } } -#[cfg(any(feature = "crossterm", feature = "ratatui-crossterm"))] +#[cfg(any(feature = "crossterm", feature = "tuirs-crossterm"))] impl From for Input { /// Convert [`crossterm::event::Event`] to [`Input`]. fn from(event: CrosstermEvent) -> Self { @@ -113,7 +113,7 @@ impl From for Input { } } -#[cfg(any(feature = "crossterm", feature = "ratatui-crossterm"))] +#[cfg(any(feature = "crossterm", feature = "tuirs-crossterm"))] impl From for Input { /// Convert [`crossterm::event::KeyEvent`] to [`Input`]. fn from(key: KeyEvent) -> Self { @@ -141,7 +141,7 @@ impl From for Input { } } -#[cfg(any(feature = "crossterm", feature = "ratatui-crossterm"))] +#[cfg(any(feature = "crossterm", feature = "tuirs-crossterm"))] impl From for Input { /// Convert [`crossterm::event::MouseEvent`] to [`Input`]. fn from(mouse: MouseEvent) -> Self { @@ -156,7 +156,7 @@ impl From for Input { } } -#[cfg(any(feature = "termion", feature = "ratatui-termion"))] +#[cfg(any(feature = "termion", feature = "tuirs-termion"))] impl From for Input { /// Convert [`termion::event::Event`] to [`Input`]. fn from(event: TermionEvent) -> Self { @@ -168,7 +168,7 @@ impl From for Input { } } -#[cfg(any(feature = "termion", feature = "ratatui-termion"))] +#[cfg(any(feature = "termion", feature = "tuirs-termion"))] impl From for Input { /// Convert [`termion::event::Key`] to [`Input`]. fn from(key: TermionKey) -> Self { @@ -207,7 +207,7 @@ impl From for Input { } } -#[cfg(any(feature = "termion", feature = "ratatui-termion"))] +#[cfg(any(feature = "termion", feature = "tuirs-termion"))] impl From for Input { /// Convert [`termion::event::MouseEvent`] to [`Input`]. fn from(mouse: TermionMouseEvent) -> Self { @@ -225,7 +225,7 @@ impl From for Input { } } -#[cfg(feature = "ratatui-termwiz")] +#[cfg(feature = "termwiz")] impl From for Input { /// Convert [`termwiz::input::InputEvent`] to [`Input`]. fn from(input: TermwizInputEvent) -> Self { @@ -238,7 +238,7 @@ impl From for Input { } } -#[cfg(feature = "ratatui-termwiz")] +#[cfg(feature = "termwiz")] impl From for Input { /// Convert [`termwiz::input::KeyEvent`] to [`Input`]. fn from(key: TermwizKeyEvent) -> Self { @@ -270,7 +270,7 @@ impl From for Input { } } -#[cfg(feature = "ratatui-termwiz")] +#[cfg(feature = "termwiz")] impl From for Key { /// Convert [`termwiz::input::MouseButtons`] to [`Key`]. fn from(buttons: TermwizMouseButtons) -> Self { @@ -286,7 +286,7 @@ impl From for Key { } } -#[cfg(feature = "ratatui-termwiz")] +#[cfg(feature = "termwiz")] impl From for Input { /// Convert [`termwiz::input::MouseEvent`] to [`Input`]. fn from(mouse: TermwizMouseEvent) -> Self { @@ -305,7 +305,7 @@ impl From for Input { } } -#[cfg(feature = "ratatui-termwiz")] +#[cfg(feature = "termwiz")] impl From for Input { /// Convert [`termwiz::input::PixelMouseEvent`] to [`Input`]. fn from(mouse: PixelMouseEvent) -> Self { diff --git a/src/lib.rs b/src/lib.rs index ecbe412..c73a83b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,12 +5,16 @@ #![doc = include_str!("../README.md")] #[cfg(all( - any(feature = "crossterm", feature = "termion", feature = "your-backend"), any( - feature = "ratatui-crossterm", - feature = "ratatui-termion", - feature = "ratatui-termwiz", - feature = "ratatui-your-backend" + feature = "crossterm", + feature = "termion", + feature = "termwiz", + feature = "your-backend" + ), + any( + feature = "tuirs-crossterm", + feature = "tuirs-termion", + feature = "tuirs-your-backend" ), ))] compile_error!("tui-rs support and ratatui support are exclussive. only one of them can be enabled at the same time. see https://github.com/rhysd/tui-textarea#installation"); @@ -28,26 +32,25 @@ mod widget; mod word; #[cfg(any( - feature = "ratatui-crossterm", - feature = "ratatui-termion", - feature = "ratatui-termwiz", - feature = "ratatui-your-backend", + feature = "crossterm", + feature = "termion", + feature = "termwiz", + feature = "your-backend", ))] -use ratatui as tui; -#[cfg(not(any( - feature = "ratatui-crossterm", - feature = "ratatui-termion", - feature = "ratatui-termwiz", - feature = "ratatui-your-backend", -)))] #[allow(clippy::single_component_path_imports)] -use tui; +use ratatui; +#[cfg(any( + feature = "tuirs-crossterm", + feature = "tuirs-termion", + feature = "tuirs-your-backend", +))] +use tui as ratatui; #[cfg(feature = "crossterm")] #[allow(clippy::single_component_path_imports)] use crossterm; -#[cfg(feature = "ratatui-crossterm")] -use crossterm_027 as crossterm; +#[cfg(feature = "tuirs-crossterm")] +use crossterm_025 as crossterm; pub use cursor::CursorMove; pub use input::{Input, Key}; diff --git a/src/scroll.rs b/src/scroll.rs index 7e97fc3..32a7d39 100644 --- a/src/scroll.rs +++ b/src/scroll.rs @@ -185,12 +185,12 @@ impl From<(i16, i16)> for Scrolling { mod tests { use super::*; - // Seaparate tests for ratatui support + // Seaparate tests for tui-rs support #[test] fn delta() { - use crate::tui::buffer::Buffer; - use crate::tui::layout::Rect; - use crate::tui::widgets::Widget; + use crate::ratatui::buffer::Buffer; + use crate::ratatui::layout::Rect; + use crate::ratatui::widgets::Widget; use crate::TextArea; let mut textarea: TextArea = (0..20).map(|i| i.to_string()).collect(); diff --git a/src/search.rs b/src/search.rs index cf1bf6b..e0b706b 100644 --- a/src/search.rs +++ b/src/search.rs @@ -1,4 +1,4 @@ -use crate::tui::style::{Color, Style}; +use crate::ratatui::style::{Color, Style}; use regex::Regex; #[derive(Clone, Debug)] diff --git a/src/textarea.rs b/src/textarea.rs index 0505a3c..ff2e900 100644 --- a/src/textarea.rs +++ b/src/textarea.rs @@ -2,26 +2,25 @@ use crate::cursor::CursorMove; use crate::highlight::LineHighlighter; use crate::history::{Edit, EditKind, History}; use crate::input::{Input, Key}; +use crate::ratatui::layout::Alignment; +use crate::ratatui::style::{Color, Modifier, Style}; +#[cfg(any( + feature = "crossterm", + feature = "termion", + feature = "termwiz", + feature = "your-backend", +))] +use crate::ratatui::text::Line; +#[cfg(any( + feature = "tuirs-crossterm", + feature = "tuirs-termion", + feature = "tuirs-your-backend", +))] +use crate::ratatui::text::Spans as Line; +use crate::ratatui::widgets::{Block, Widget}; use crate::scroll::Scrolling; #[cfg(feature = "search")] use crate::search::Search; -use crate::tui::layout::Alignment; -use crate::tui::style::{Color, Modifier, Style}; -#[cfg(any( - feature = "ratatui-crossterm", - feature = "ratatui-termion", - feature = "ratatui-termwiz", - feature = "ratatui-your-backend", -))] -use crate::tui::text::Line as Spans; -#[cfg(not(any( - feature = "ratatui-crossterm", - feature = "ratatui-termion", - feature = "ratatui-termwiz", - feature = "ratatui-your-backend", -)))] -use crate::tui::text::Spans; -use crate::tui::widgets::{Block, Widget}; use crate::util::spaces; use crate::widget::{Renderer, Viewport}; use crate::word::{find_word_end_forward, find_word_start_backward}; @@ -172,7 +171,7 @@ impl<'a> TextArea<'a> { /// Handle a key input with default key mappings. For default key mappings, see the table in /// [the module document](./index.html). - /// `crossterm`, `termion`, and `ratatui-termwiz` features enable conversion from their own key event types into + /// `crossterm`, `termion`, and `termwiz` features enable conversion from their own key event types into /// [`Input`] so this method can take the event values directly. /// This method returns if the input modified text contents or not in the textarea. /// ```ignore @@ -1010,7 +1009,7 @@ impl<'a> TextArea<'a> { } } - pub(crate) fn line_spans<'b>(&'b self, line: &'b str, row: usize, lnum_len: u8) -> Spans<'b> { + pub(crate) fn line_spans<'b>(&'b self, line: &'b str, row: usize, lnum_len: u8) -> Line<'b> { let mut hl = LineHighlighter::new(line, self.cursor_style, self.tab_len, self.mask); if let Some(style) = self.line_number_style { @@ -1749,12 +1748,12 @@ impl<'a> TextArea<'a> { mod tests { use super::*; - // Seaparate tests for ratatui support + // Seaparate tests for tui-rs support #[test] fn scroll() { - use crate::tui::buffer::Buffer; - use crate::tui::layout::Rect; - use crate::tui::widgets::Widget; + use crate::ratatui::buffer::Buffer; + use crate::ratatui::layout::Rect; + use crate::ratatui::widgets::Widget; let mut textarea: TextArea = (0..20).map(|i| i.to_string()).collect(); let r = Rect { diff --git a/src/widget.rs b/src/widget.rs index bd8d06a..291df41 100644 --- a/src/widget.rs +++ b/src/widget.rs @@ -1,8 +1,8 @@ +use crate::ratatui::buffer::Buffer; +use crate::ratatui::layout::Rect; +use crate::ratatui::text::Text; +use crate::ratatui::widgets::{Paragraph, Widget}; use crate::textarea::TextArea; -use crate::tui::buffer::Buffer; -use crate::tui::layout::Rect; -use crate::tui::text::Text; -use crate::tui::widgets::{Paragraph, Widget}; use crate::util::num_digits; use std::cmp; use std::sync::atomic::{AtomicU64, Ordering}; From 330b7074ae286e60b8ff19f58b9dad97153380b6 Mon Sep 17 00:00:00 2001 From: rhysd Date: Tue, 24 Oct 2023 13:14:44 +0900 Subject: [PATCH 2/6] fix examples to invert ratatui and tui-rs --- Cargo.toml | 50 +++++++++---------- examples/editor.rs | 18 +++---- examples/minimal.rs | 6 +-- examples/modal.rs | 8 +-- examples/password.rs | 10 ++-- examples/popup_placeholder.rs | 13 ++--- examples/single_line.rs | 10 ++-- examples/split.rs | 14 +++--- examples/termion.rs | 6 +-- .../{ratatui_editor.rs => tuirs_editor.rs} | 20 ++++---- .../{ratatui_minimal.rs => tuirs_minimal.rs} | 8 +-- ...ceholder.rs => tuirs_popup_placeholder.rs} | 16 +++--- .../{ratatui_termion.rs => tuirs_termion.rs} | 6 +-- examples/variable.rs | 8 +-- 14 files changed, 97 insertions(+), 96 deletions(-) rename examples/{ratatui_editor.rs => tuirs_editor.rs} (96%) rename examples/{ratatui_minimal.rs => tuirs_minimal.rs} (90%) rename examples/{ratatui_popup_placeholder.rs => tuirs_popup_placeholder.rs} (88%) rename examples/{ratatui_termion.rs => tuirs_termion.rs} (94%) diff --git a/Cargo.toml b/Cargo.toml index 10a6470..dd416df 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,10 +51,6 @@ unicode-width = "0.1.11" name = "minimal" required-features = ["crossterm"] -[[example]] -name = "termion" -required-features = ["termion"] - [[example]] name = "editor" required-features = ["crossterm", "search"] @@ -67,10 +63,6 @@ required-features = ["crossterm"] name = "single_line" required-features = ["crossterm"] -[[example]] -name = "password" -required-features = ["crossterm"] - [[example]] name = "variable" required-features = ["crossterm"] @@ -79,29 +71,37 @@ required-features = ["crossterm"] name = "modal" required-features = ["crossterm"] +[[example]] +name = "password" +required-features = ["crossterm"] + [[example]] name = "popup_placeholder" required-features = ["crossterm"] -[[example]] -name = "ratatui_minimal" -required-features = ["ratatui-crossterm"] - -[[example]] -name = "ratatui_popup_placeholder" -required-features = ["ratatui-crossterm"] - -[[example]] -name = "ratatui_editor" -required-features = ["ratatui-crossterm", "search"] - -[[example]] -name = "ratatui_termion" -required-features = ["ratatui-termion"] - [[example]] name = "termwiz" -required-features = ["ratatui-termwiz"] +required-features = ["termwiz"] + +[[example]] +name = "termion" +required-features = ["termion"] + +[[example]] +name = "tuirs_minimal" +required-features = ["tuirs-crossterm"] + +[[example]] +name = "tuirs_editor" +required-features = ["tuirs-crossterm", "search"] + +[[example]] +name = "tuirs_popup_placeholder" +required-features = ["tuirs-crossterm"] + +[[example]] +name = "tuirs_termion" +required-features = ["tuirs-termion"] [workspace] members = [ diff --git a/examples/editor.rs b/examples/editor.rs index 67a80e6..0e59a19 100644 --- a/examples/editor.rs +++ b/examples/editor.rs @@ -3,6 +3,12 @@ use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, is_raw_mode_enabled, EnterAlternateScreen, LeaveAlternateScreen, }; +use ratatui::backend::CrosstermBackend; +use ratatui::layout::{Constraint, Direction, Layout}; +use ratatui::style::{Color, Modifier, Style}; +use ratatui::text::{Line, Span}; +use ratatui::widgets::{Block, Borders, Paragraph}; +use ratatui::Terminal; use std::borrow::Cow; use std::env; use std::fmt::Display; @@ -10,12 +16,6 @@ use std::fs; use std::io; use std::io::{BufRead, Write}; use std::path::PathBuf; -use tui::backend::CrosstermBackend; -use tui::layout::{Constraint, Direction, Layout}; -use tui::style::{Color, Modifier, Style}; -use tui::text::{Span, Spans}; -use tui::widgets::{Block, Borders, Paragraph}; -use tui::Terminal; use tui_textarea::{CursorMove, Input, Key, TextArea}; macro_rules! error { @@ -223,9 +223,9 @@ impl<'a> Editor<'a> { // Render message at bottom let message = if let Some(message) = self.message.take() { - Spans::from(Span::raw(message)) + Line::from(Span::raw(message)) } else if search_height > 0 { - Spans::from(vec![ + Line::from(vec![ Span::raw("Press "), Span::styled("Enter", Style::default().add_modifier(Modifier::BOLD)), Span::raw(" to jump to first match and close, "), @@ -243,7 +243,7 @@ impl<'a> Editor<'a> { Span::raw(" to search previous"), ]) } else { - Spans::from(vec![ + Line::from(vec![ Span::raw("Press "), Span::styled("^Q", Style::default().add_modifier(Modifier::BOLD)), Span::raw(" to quit, "), diff --git a/examples/minimal.rs b/examples/minimal.rs index 5d26a20..ac37201 100644 --- a/examples/minimal.rs +++ b/examples/minimal.rs @@ -2,10 +2,10 @@ use crossterm::event::{DisableMouseCapture, EnableMouseCapture}; use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen, }; +use ratatui::backend::CrosstermBackend; +use ratatui::widgets::{Block, Borders}; +use ratatui::Terminal; use std::io; -use tui::backend::CrosstermBackend; -use tui::widgets::{Block, Borders}; -use tui::Terminal; use tui_textarea::{Input, Key, TextArea}; fn main() -> io::Result<()> { diff --git a/examples/modal.rs b/examples/modal.rs index ac68cc4..5e3f1c2 100644 --- a/examples/modal.rs +++ b/examples/modal.rs @@ -2,15 +2,15 @@ use crossterm::event::{DisableMouseCapture, EnableMouseCapture}; use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen, }; +use ratatui::backend::CrosstermBackend; +use ratatui::style::{Color, Modifier, Style}; +use ratatui::widgets::{Block, Borders}; +use ratatui::Terminal; use std::env; use std::fmt; use std::fs; use std::io; use std::io::BufRead; -use tui::backend::CrosstermBackend; -use tui::style::{Color, Modifier, Style}; -use tui::widgets::{Block, Borders}; -use tui::Terminal; use tui_textarea::{CursorMove, Input, Key, Scrolling, TextArea}; enum Mode { diff --git a/examples/password.rs b/examples/password.rs index 8f345ed..3cd0875 100644 --- a/examples/password.rs +++ b/examples/password.rs @@ -2,12 +2,12 @@ use crossterm::event::{DisableMouseCapture, EnableMouseCapture}; use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen, }; +use ratatui::backend::CrosstermBackend; +use ratatui::layout::{Constraint, Layout}; +use ratatui::style::{Color, Style}; +use ratatui::widgets::{Block, Borders}; +use ratatui::Terminal; use std::io; -use tui::backend::CrosstermBackend; -use tui::layout::{Constraint, Layout}; -use tui::style::{Color, Style}; -use tui::widgets::{Block, Borders}; -use tui::Terminal; use tui_textarea::{Input, Key, TextArea}; fn main() -> io::Result<()> { diff --git a/examples/popup_placeholder.rs b/examples/popup_placeholder.rs index a18f656..d705761 100644 --- a/examples/popup_placeholder.rs +++ b/examples/popup_placeholder.rs @@ -2,12 +2,12 @@ use crossterm::event::{DisableMouseCapture, EnableMouseCapture}; use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen, }; +use ratatui::backend::CrosstermBackend; +use ratatui::layout::Rect; +use ratatui::style::{Color, Style}; +use ratatui::widgets::{Block, Borders}; +use ratatui::Terminal; use std::io; -use tui::backend::CrosstermBackend; -use tui::layout::Rect; -use tui::style::{Color, Style}; -use tui::widgets::{Block, Borders}; -use tui::Terminal; use tui_textarea::{Input, Key, TextArea}; fn main() -> io::Result<()> { @@ -34,9 +34,6 @@ fn main() -> io::Result<()> { y: 5, }; textarea.set_style(Style::default().fg(Color::Yellow)); - - // set placeholder - textarea.set_placeholder_style(Style::default()); textarea.set_placeholder_text("prompt message"); loop { diff --git a/examples/single_line.rs b/examples/single_line.rs index 5b7ed42..e76d89b 100644 --- a/examples/single_line.rs +++ b/examples/single_line.rs @@ -2,12 +2,12 @@ use crossterm::event::{DisableMouseCapture, EnableMouseCapture}; use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen, }; +use ratatui::backend::CrosstermBackend; +use ratatui::layout::{Constraint, Layout}; +use ratatui::style::{Color, Style}; +use ratatui::widgets::{Block, Borders}; +use ratatui::Terminal; use std::io; -use tui::backend::CrosstermBackend; -use tui::layout::{Constraint, Layout}; -use tui::style::{Color, Style}; -use tui::widgets::{Block, Borders}; -use tui::Terminal; use tui_textarea::{Input, Key, TextArea}; fn validate(textarea: &mut TextArea) -> bool { diff --git a/examples/split.rs b/examples/split.rs index e470649..da2ce7f 100644 --- a/examples/split.rs +++ b/examples/split.rs @@ -2,12 +2,12 @@ use crossterm::event::{DisableMouseCapture, EnableMouseCapture}; use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen, }; +use ratatui::backend::CrosstermBackend; +use ratatui::layout::{Constraint, Direction, Layout}; +use ratatui::style::{Color, Modifier, Style}; +use ratatui::widgets::{Block, Borders}; +use ratatui::Terminal; use std::io; -use tui::backend::CrosstermBackend; -use tui::layout::{Constraint, Direction, Layout}; -use tui::style::{Color, Modifier, Style}; -use tui::widgets::{Block, Borders}; -use tui::Terminal; use tui_textarea::{Input, Key, TextArea}; fn inactivate(textarea: &mut TextArea<'_>) { @@ -54,9 +54,9 @@ fn main() -> io::Result<()> { loop { term.draw(|f| { let chunks = layout.split(f.size()); - for (textarea, chunk) in textarea.iter().zip(chunks) { + for (textarea, chunk) in textarea.iter().zip(chunks.iter()) { let widget = textarea.widget(); - f.render_widget(widget, chunk); + f.render_widget(widget, *chunk); } })?; match crossterm::event::read()?.into() { diff --git a/examples/termion.rs b/examples/termion.rs index 63ac412..3a73fe2 100644 --- a/examples/termion.rs +++ b/examples/termion.rs @@ -1,3 +1,6 @@ +use ratatui::backend::TermionBackend; +use ratatui::widgets::{Block, Borders}; +use ratatui::Terminal; use std::error::Error; use std::io; use std::sync::mpsc; @@ -7,9 +10,6 @@ use termion::event::Event as TermEvent; use termion::input::{MouseTerminal, TermRead}; use termion::raw::IntoRawMode; use termion::screen::IntoAlternateScreen; -use tui::backend::TermionBackend; -use tui::widgets::{Block, Borders}; -use tui::Terminal; use tui_textarea::{Input, Key, TextArea}; enum Event { diff --git a/examples/ratatui_editor.rs b/examples/tuirs_editor.rs similarity index 96% rename from examples/ratatui_editor.rs rename to examples/tuirs_editor.rs index 73189f9..7fa6389 100644 --- a/examples/ratatui_editor.rs +++ b/examples/tuirs_editor.rs @@ -1,16 +1,10 @@ -use crossterm_027 as crossterm; +use crossterm_025 as crossterm; use crossterm::event::{DisableMouseCapture, EnableMouseCapture}; use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, is_raw_mode_enabled, EnterAlternateScreen, LeaveAlternateScreen, }; -use ratatui::backend::CrosstermBackend; -use ratatui::layout::{Constraint, Direction, Layout}; -use ratatui::style::{Color, Modifier, Style}; -use ratatui::text::{Line, Span}; -use ratatui::widgets::{Block, Borders, Paragraph}; -use ratatui::Terminal; use std::borrow::Cow; use std::env; use std::fmt::Display; @@ -18,6 +12,12 @@ use std::fs; use std::io; use std::io::{BufRead, Write}; use std::path::PathBuf; +use tui::backend::CrosstermBackend; +use tui::layout::{Constraint, Direction, Layout}; +use tui::style::{Color, Modifier, Style}; +use tui::text::{Span, Spans}; +use tui::widgets::{Block, Borders, Paragraph}; +use tui::Terminal; use tui_textarea::{CursorMove, Input, Key, TextArea}; macro_rules! error { @@ -225,9 +225,9 @@ impl<'a> Editor<'a> { // Render message at bottom let message = if let Some(message) = self.message.take() { - Line::from(Span::raw(message)) + Spans::from(Span::raw(message)) } else if search_height > 0 { - Line::from(vec![ + Spans::from(vec![ Span::raw("Press "), Span::styled("Enter", Style::default().add_modifier(Modifier::BOLD)), Span::raw(" to jump to first match and close, "), @@ -245,7 +245,7 @@ impl<'a> Editor<'a> { Span::raw(" to search previous"), ]) } else { - Line::from(vec![ + Spans::from(vec![ Span::raw("Press "), Span::styled("^Q", Style::default().add_modifier(Modifier::BOLD)), Span::raw(" to quit, "), diff --git a/examples/ratatui_minimal.rs b/examples/tuirs_minimal.rs similarity index 90% rename from examples/ratatui_minimal.rs rename to examples/tuirs_minimal.rs index e81e38f..2c41cba 100644 --- a/examples/ratatui_minimal.rs +++ b/examples/tuirs_minimal.rs @@ -1,13 +1,13 @@ -use crossterm_027 as crossterm; +use crossterm_025 as crossterm; use crossterm::event::{DisableMouseCapture, EnableMouseCapture}; use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen, }; -use ratatui::backend::CrosstermBackend; -use ratatui::widgets::{Block, Borders}; -use ratatui::Terminal; use std::io; +use tui::backend::CrosstermBackend; +use tui::widgets::{Block, Borders}; +use tui::Terminal; use tui_textarea::{Input, Key, TextArea}; fn main() -> io::Result<()> { diff --git a/examples/ratatui_popup_placeholder.rs b/examples/tuirs_popup_placeholder.rs similarity index 88% rename from examples/ratatui_popup_placeholder.rs rename to examples/tuirs_popup_placeholder.rs index 021de04..60a9deb 100644 --- a/examples/ratatui_popup_placeholder.rs +++ b/examples/tuirs_popup_placeholder.rs @@ -1,14 +1,15 @@ +use crossterm_025 as crossterm; + use crossterm::event::{DisableMouseCapture, EnableMouseCapture}; use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen, }; -use crossterm_027 as crossterm; -use ratatui::backend::CrosstermBackend; -use ratatui::layout::Rect; -use ratatui::style::{Color, Style}; -use ratatui::widgets::{Block, Borders}; -use ratatui::Terminal; use std::io; +use tui::backend::CrosstermBackend; +use tui::layout::Rect; +use tui::style::{Color, Style}; +use tui::widgets::{Block, Borders}; +use tui::Terminal; use tui_textarea::{Input, Key, TextArea}; fn main() -> io::Result<()> { @@ -35,6 +36,9 @@ fn main() -> io::Result<()> { y: 5, }; textarea.set_style(Style::default().fg(Color::Yellow)); + + // set placeholder + textarea.set_placeholder_style(Style::default()); textarea.set_placeholder_text("prompt message"); loop { diff --git a/examples/ratatui_termion.rs b/examples/tuirs_termion.rs similarity index 94% rename from examples/ratatui_termion.rs rename to examples/tuirs_termion.rs index 3a73fe2..63ac412 100644 --- a/examples/ratatui_termion.rs +++ b/examples/tuirs_termion.rs @@ -1,6 +1,3 @@ -use ratatui::backend::TermionBackend; -use ratatui::widgets::{Block, Borders}; -use ratatui::Terminal; use std::error::Error; use std::io; use std::sync::mpsc; @@ -10,6 +7,9 @@ use termion::event::Event as TermEvent; use termion::input::{MouseTerminal, TermRead}; use termion::raw::IntoRawMode; use termion::screen::IntoAlternateScreen; +use tui::backend::TermionBackend; +use tui::widgets::{Block, Borders}; +use tui::Terminal; use tui_textarea::{Input, Key, TextArea}; enum Event { diff --git a/examples/variable.rs b/examples/variable.rs index 91637c9..fff32bc 100644 --- a/examples/variable.rs +++ b/examples/variable.rs @@ -2,12 +2,12 @@ use crossterm::event::{DisableMouseCapture, EnableMouseCapture}; use crossterm::terminal::{ disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen, }; +use ratatui::backend::CrosstermBackend; +use ratatui::layout::{Constraint, Direction, Layout}; +use ratatui::widgets::{Block, Borders}; +use ratatui::Terminal; use std::cmp; use std::io; -use tui::backend::CrosstermBackend; -use tui::layout::{Constraint, Direction, Layout}; -use tui::widgets::{Block, Borders}; -use tui::Terminal; use tui_textarea::{Input, Key, TextArea}; fn main() -> io::Result<()> { From 953ec9b2954093274de423d2e3f7c1a158603728 Mon Sep 17 00:00:00 2001 From: rhysd Date: Tue, 24 Oct 2023 14:26:50 +0900 Subject: [PATCH 3/6] move doc tests from tui-rs to ratatui --- .cargo/config.toml | 2 +- src/cursor.rs | 6 +++--- src/scroll.rs | 30 +++++++++++++++--------------- src/textarea.rs | 38 +++++++++++++++++++------------------- 4 files changed, 38 insertions(+), 38 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 208a354..2fb9621 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,3 +1,3 @@ [alias] -watch-check = ["watch", "-x", "clippy --features ratatui-crossterm,search --no-default-features --examples --tests", "-x", "clippy --features search --examples --tests"] +watch-check = ["watch", "-x", "clippy --features search --examples --tests", "-x", "clippy --features tuirs-crossterm,search --no-default-features --examples --tests"] watch-test = ["watch", "-x", "test --features=search", "-w", "src", "-w", "tests"] diff --git a/src/cursor.rs b/src/cursor.rs index 68c4890..ed521e7 100644 --- a/src/cursor.rs +++ b/src/cursor.rs @@ -199,9 +199,9 @@ pub enum CursorMove { /// /// This is useful when you moved a cursor but you don't want to move the viewport. /// ``` - /// # use tui::buffer::Buffer; - /// # use tui::layout::Rect; - /// # use tui::widgets::Widget; + /// # use ratatui::buffer::Buffer; + /// # use ratatui::layout::Rect; + /// # use ratatui::widgets::Widget; /// use tui_textarea::{TextArea, CursorMove}; /// /// // Let's say terminal height is 8. diff --git a/src/scroll.rs b/src/scroll.rs index 32a7d39..524feb8 100644 --- a/src/scroll.rs +++ b/src/scroll.rs @@ -13,9 +13,9 @@ pub enum Scrolling { /// `Scrolling::Delta` where 1st element means rows and 2nd means columns. /// /// ``` - /// # use tui::buffer::Buffer; - /// # use tui::layout::Rect; - /// # use tui::widgets::Widget; + /// # use ratatui::buffer::Buffer; + /// # use ratatui::layout::Rect; + /// # use ratatui::widgets::Widget; /// use tui_textarea::{TextArea, Scrolling}; /// /// // Let's say terminal height is 8. @@ -39,9 +39,9 @@ pub enum Scrolling { /// Scroll down the textarea by one page. /// /// ``` - /// # use tui::buffer::Buffer; - /// # use tui::layout::Rect; - /// # use tui::widgets::Widget; + /// # use ratatui::buffer::Buffer; + /// # use ratatui::layout::Rect; + /// # use ratatui::widgets::Widget; /// use tui_textarea::{TextArea, Scrolling}; /// /// // Let's say terminal height is 8. @@ -65,9 +65,9 @@ pub enum Scrolling { /// Scroll up the textarea by one page. /// /// ``` - /// # use tui::buffer::Buffer; - /// # use tui::layout::Rect; - /// # use tui::widgets::Widget; + /// # use ratatui::buffer::Buffer; + /// # use ratatui::layout::Rect; + /// # use ratatui::widgets::Widget; /// use tui_textarea::{TextArea, Scrolling, CursorMove}; /// /// // Let's say terminal height is 8. @@ -95,9 +95,9 @@ pub enum Scrolling { /// Scroll down the textarea by half of the page. /// /// ``` - /// # use tui::buffer::Buffer; - /// # use tui::layout::Rect; - /// # use tui::widgets::Widget; + /// # use ratatui::buffer::Buffer; + /// # use ratatui::layout::Rect; + /// # use ratatui::widgets::Widget; /// use tui_textarea::{TextArea, Scrolling}; /// /// // Let's say terminal height is 8. @@ -121,9 +121,9 @@ pub enum Scrolling { /// Scroll up the textarea by half of the page. /// /// ``` - /// # use tui::buffer::Buffer; - /// # use tui::layout::Rect; - /// # use tui::widgets::Widget; + /// # use ratatui::buffer::Buffer; + /// # use ratatui::layout::Rect; + /// # use ratatui::widgets::Widget; /// use tui_textarea::{TextArea, Scrolling, CursorMove}; /// /// // Let's say terminal height is 8. diff --git a/src/textarea.rs b/src/textarea.rs index ff2e900..a2bccaf 100644 --- a/src/textarea.rs +++ b/src/textarea.rs @@ -1029,11 +1029,11 @@ impl<'a> TextArea<'a> { } /// Build a tui-rs widget to render the current state of the textarea. The widget instance returned from this - /// method can be rendered with [`tui::terminal::Frame::render_widget`]. + /// method can be rendered with [`ratatui::terminal::Frame::render_widget`]. /// ```no_run - /// use tui::backend::CrosstermBackend; - /// use tui::layout::{Constraint, Direction, Layout}; - /// use tui::Terminal; + /// use ratatui::backend::CrosstermBackend; + /// use ratatui::layout::{Constraint, Direction, Layout}; + /// use ratatui::Terminal; /// use tui_textarea::TextArea; /// /// let mut textarea = TextArea::default(); @@ -1060,7 +1060,7 @@ impl<'a> TextArea<'a> { /// Set the style of textarea. By default, textarea is not styled. /// ``` - /// use tui::style::{Style, Color}; + /// use ratatui::style::{Style, Color}; /// use tui_textarea::TextArea; /// /// let mut textarea = TextArea::default(); @@ -1080,7 +1080,7 @@ impl<'a> TextArea<'a> { /// Set the block of textarea. By default, no block is set. /// ``` /// use tui_textarea::TextArea; - /// use tui::widgets::{Block, Borders}; + /// use ratatui::widgets::{Block, Borders}; /// /// let mut textarea = TextArea::default(); /// let block = Block::default().borders(Borders::ALL).title("Block Title"); @@ -1094,7 +1094,7 @@ impl<'a> TextArea<'a> { /// Remove the block of textarea which was set by [`TextArea::set_block`]. /// ``` /// use tui_textarea::TextArea; - /// use tui::widgets::{Block, Borders}; + /// use ratatui::widgets::{Block, Borders}; /// /// let mut textarea = TextArea::default(); /// let block = Block::default().borders(Borders::ALL).title("Block Title"); @@ -1198,7 +1198,7 @@ impl<'a> TextArea<'a> { /// Set the style of line at cursor. By default, the cursor line is styled with underline. To stop styling the /// cursor line, set the default style. /// ``` - /// use tui::style::{Style, Color}; + /// use ratatui::style::{Style, Color}; /// use tui_textarea::TextArea; /// /// let mut textarea = TextArea::default(); @@ -1223,7 +1223,7 @@ impl<'a> TextArea<'a> { /// that line numbers are disabled by default. If you want to show line numbers but don't want to style them, set /// the default style. /// ``` - /// use tui::style::{Style, Color}; + /// use ratatui::style::{Style, Color}; /// use tui_textarea::TextArea; /// /// let mut textarea = TextArea::default(); @@ -1240,7 +1240,7 @@ impl<'a> TextArea<'a> { /// Remove the style of line number which was set by [`TextArea::set_line_number_style`]. After calling this /// method, Line numbers will no longer be shown. /// ``` - /// use tui::style::{Style, Color}; + /// use ratatui::style::{Style, Color}; /// use tui_textarea::TextArea; /// /// let mut textarea = TextArea::default(); @@ -1278,7 +1278,7 @@ impl<'a> TextArea<'a> { /// Set the style of the placeholder text. The default style is a dark gray text. /// ``` - /// use tui::style::{Style, Color}; + /// use ratatui::style::{Style, Color}; /// use tui_textarea::TextArea; /// /// let mut textarea = TextArea::default(); @@ -1372,7 +1372,7 @@ impl<'a> TextArea<'a> { /// Set the style of cursor. By default, a cursor is rendered in the reversed color. Setting the same style as /// cursor line hides a cursor. /// ``` - /// use tui::style::{Style, Color}; + /// use ratatui::style::{Style, Color}; /// use tui_textarea::TextArea; /// /// let mut textarea = TextArea::default(); @@ -1448,8 +1448,8 @@ impl<'a> TextArea<'a> { /// Set text alignment. When [`Alignment::Center`] or [`Alignment::Right`] is set, line number is automatically /// disabled because those alignments don't work well with line numbers. /// ``` + /// use ratatui::layout::Alignment; /// use tui_textarea::TextArea; - /// use tui::layout::Alignment; /// /// let mut textarea = TextArea::default(); /// @@ -1465,8 +1465,8 @@ impl<'a> TextArea<'a> { /// Get current text alignment. The default alignment is [`Alignment::Left`]. /// ``` + /// use ratatui::layout::Alignment; /// use tui_textarea::TextArea; - /// use tui::layout::Alignment; /// /// let mut textarea = TextArea::default(); /// @@ -1668,7 +1668,7 @@ impl<'a> TextArea<'a> { /// Get the text style at matches of text search. The default style is colored with blue in background. /// /// ``` - /// use tui::style::{Style, Color}; + /// use ratatui::style::{Style, Color}; /// use tui_textarea::TextArea; /// /// let textarea = TextArea::default(); @@ -1684,7 +1684,7 @@ impl<'a> TextArea<'a> { /// Set the text style at matches of text search. The default style is colored with blue in background. /// /// ``` - /// use tui::style::{Style, Color}; + /// use ratatui::style::{Style, Color}; /// use tui_textarea::TextArea; /// /// let mut textarea = TextArea::default(); @@ -1705,9 +1705,9 @@ impl<'a> TextArea<'a> { /// the cursor position will be adjusted to stay in the viewport using the same logic as [`CursorMove::InViewport`]. /// /// ``` - /// # use tui::buffer::Buffer; - /// # use tui::layout::Rect; - /// # use tui::widgets::Widget; + /// # use ratatui::buffer::Buffer; + /// # use ratatui::layout::Rect; + /// # use ratatui::widgets::Widget; /// use tui_textarea::TextArea; /// /// // Let's say terminal height is 8. From 08b538e39b84b285dbcb56a3c29178c74a25edcb Mon Sep 17 00:00:00 2001 From: rhysd Date: Tue, 24 Oct 2023 14:28:58 +0900 Subject: [PATCH 4/6] fix CI for inverting `ratatui-*` features to `tuirs-*` --- .github/workflows/ci.yml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 470132a..ec63526 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,12 +15,11 @@ jobs: - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - run: cargo test --features=search - - run: cargo test --no-default-features --features=ratatui-crossterm,search -- --skip .rs - - run: cargo test --no-default-features --features=ratatui-termion,search -- --skip .rs + - run: cargo test --no-default-features --features=tuirs-crossterm,search -- --skip .rs + - run: cargo test --no-default-features --features=tuirs-termion,search -- --skip .rs if: ${{ matrix.os != 'windows-latest' }} - - run: cargo test --no-default-features --features=ratatui-termwiz,search -- --skip .rs - run: cargo test --no-default-features --features=your-backend,search -- --skip .rs - - run: cargo test --no-default-features --features=ratatui-your-backend,search -- --skip .rs + - run: cargo test --no-default-features --features=tuirs-your-backend,search -- --skip .rs lint: runs-on: ubuntu-latest steps: @@ -32,16 +31,14 @@ jobs: - run: cargo fmt -- --check - run: cargo clippy --examples -- -D warnings - run: cargo clippy --examples --features search -- -D warnings - - run: cargo clippy --examples --no-default-features --features ratatui-crossterm -- -D warnings - - run: cargo clippy --examples --no-default-features --features ratatui-crossterm,search -- -D warnings - - run: cargo clippy --examples --no-default-features --features ratatui-termion -- -D warnings - - run: cargo clippy --examples --no-default-features --features ratatui-termion,search -- -D warnings - - run: cargo clippy --examples --no-default-features --features ratatui-termwiz -- -D warnings - - run: cargo clippy --examples --no-default-features --features ratatui-termwiz,search -- -D warnings - run: cargo clippy --examples --no-default-features --features termion -- -D warnings - run: cargo clippy --examples --no-default-features --features termion,search -- -D warnings - run: cargo clippy --examples --no-default-features --features your-backend -- -D warnings - run: cargo clippy --examples --no-default-features --features your-backend,search -- -D warnings - - run: cargo clippy --examples --no-default-features --features ratatui-your-backend -- -D warnings - - run: cargo clippy --examples --no-default-features --features ratatui-your-backend,search -- -D warnings + - run: cargo clippy --examples --no-default-features --features tuirs-crossterm -- -D warnings + - run: cargo clippy --examples --no-default-features --features tuirs-crossterm,search -- -D warnings + - run: cargo clippy --examples --no-default-features --features tuirs-termion -- -D warnings + - run: cargo clippy --examples --no-default-features --features tuirs-termion,search -- -D warnings + - run: cargo clippy --examples --no-default-features --features tuirs-your-backend -- -D warnings + - run: cargo clippy --examples --no-default-features --features tuirs-your-backend,search -- -D warnings - run: cargo rustdoc --features=search -p tui-textarea -- -D warnings From 989be96aa93816472175ada05ff170367a9e8884 Mon Sep 17 00:00:00 2001 From: rhysd Date: Tue, 24 Oct 2023 14:54:26 +0900 Subject: [PATCH 5/6] invert tui-rs and ratatui in document --- CONTRIBUTING.md | 6 +-- Cargo.toml | 4 +- README.md | 119 +++++++++++++++++++++++++----------------------- src/lib.rs | 2 +- src/textarea.rs | 7 ++- 5 files changed, 71 insertions(+), 67 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 38bf3b7..94d3783 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ For reporting a bug, please make sure your report includes the following points. - Environment - Your terminal - Rust version - - `tui` or `ratatui` crate version + - `ratatui` or `tui` crate version - Enabled features of `tui-textarea` crate An example of bug report: https://github.com/rhysd/tui-textarea/issues/1 @@ -29,7 +29,7 @@ To run linters: ```sh cargo clippy --features=search --tests --examples -cargo clippy --features=ratatui-crossterm,search --no-default-features --tests --examples +cargo clippy --features=tuirs-crossterm,search --no-default-features --tests --examples cargo fmt -- --check ``` @@ -67,7 +67,7 @@ tail -F debug.txt ## Running a fuzzer -To run fuzzing tests, [cargo-fuzz][] is necessary. +To run fuzzing tests, [cargo-fuzz][] and Rust nightly toolchain are necessary. ```sh cargo +nightly fuzz run edit diff --git a/Cargo.toml b/Cargo.toml index dd416df..88de3a4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,10 +2,10 @@ name = "tui-textarea" version = "0.2.4" edition = "2021" -rust-version = "1.56.1" +rust-version = "1.56.1" # for `tui` crate support authors = ["rhysd "] description = """ -tui-textarea is a simple yet powerful text editor widget for tui-rs and ratatui. Multi-line +tui-textarea is a simple yet powerful text editor widget for ratatui and tui-rs. Multi-line text editor can be easily put as part of your TUI application. """ license = "MIT" diff --git a/README.md b/README.md index cd8b669..ea5895b 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ tui-textarea [![docs][doc-badge]][doc] [![CI][ci-badge]][ci] -[tui-textarea][crate] is a simple yet powerful text editor widget like `