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/.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 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 2cf7897..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" @@ -24,37 +24,33 @@ 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" 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/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 `