зеркало из
https://github.com/glebtv/tui-textarea.git
synced 2026-09-06 23:55:49 +03:00
simplify ratatui/tui-rs feature groups by adding ratatui and tuirs features
Этот коммит содержится в:
12
.github/workflows/ci.yml
поставляемый
12
.github/workflows/ci.yml
поставляемый
@@ -18,8 +18,8 @@ jobs:
|
|||||||
- run: cargo test --no-default-features --features=tuirs-crossterm,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
|
- run: cargo test --no-default-features --features=tuirs-termion,search -- --skip .rs
|
||||||
if: ${{ matrix.os != 'windows-latest' }}
|
if: ${{ matrix.os != 'windows-latest' }}
|
||||||
- run: cargo test --no-default-features --features=your-backend,search -- --skip .rs
|
- run: cargo test --no-default-features --features=no-backend,search -- --skip .rs
|
||||||
- run: cargo test --no-default-features --features=tuirs-your-backend,search -- --skip .rs
|
- run: cargo test --no-default-features --features=tuirs-no-backend,search -- --skip .rs
|
||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
@@ -33,12 +33,12 @@ jobs:
|
|||||||
- run: cargo clippy --examples --features search -- -D warnings
|
- run: cargo clippy --examples --features search -- -D warnings
|
||||||
- run: cargo clippy --examples --no-default-features --features termion -- -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 termion,search -- -D warnings
|
||||||
- run: cargo clippy --examples --no-default-features --features your-backend -- -D warnings
|
- run: cargo clippy --examples --no-default-features --features no-backend -- -D warnings
|
||||||
- run: cargo clippy --examples --no-default-features --features your-backend,search -- -D warnings
|
- run: cargo clippy --examples --no-default-features --features no-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 -- -D warnings
|
||||||
- run: cargo clippy --examples --no-default-features --features tuirs-crossterm,search -- -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 -- -D warnings
|
||||||
- run: cargo clippy --examples --no-default-features --features tuirs-termion,search -- -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-no-backend -- -D warnings
|
||||||
- run: cargo clippy --examples --no-default-features --features tuirs-your-backend,search -- -D warnings
|
- run: cargo clippy --examples --no-default-features --features tuirs-no-backend,search -- -D warnings
|
||||||
- run: cargo rustdoc --features=search -p tui-textarea -- -D warnings
|
- run: cargo rustdoc --features=search -p tui-textarea -- -D warnings
|
||||||
|
|||||||
16
Cargo.toml
16
Cargo.toml
@@ -25,14 +25,16 @@ include = [
|
|||||||
[features]
|
[features]
|
||||||
default = ["crossterm"]
|
default = ["crossterm"]
|
||||||
# Features to use ratatui
|
# Features to use ratatui
|
||||||
crossterm = ["dep:crossterm", "ratatui/crossterm"]
|
ratatui = ["dep:ratatui"]
|
||||||
termion = ["dep:termion", "ratatui/termion"]
|
crossterm = ["ratatui", "dep:crossterm", "ratatui/crossterm"]
|
||||||
termwiz = ["dep:termwiz", "ratatui/termwiz"]
|
termion = ["ratatui", "dep:termion", "ratatui/termion"]
|
||||||
no-backend = ["dep:ratatui"]
|
termwiz = ["ratatui", "dep:termwiz", "ratatui/termwiz"]
|
||||||
|
no-backend = ["ratatui"]
|
||||||
# Features to use tui-rs
|
# Features to use tui-rs
|
||||||
tuirs-crossterm = ["dep:crossterm-025", "tui/crossterm"]
|
tuirs = ["dep:tui"]
|
||||||
tuirs-termion = ["dep:termion", "tui/termion"]
|
tuirs-crossterm = ["tuirs", "dep:crossterm-025", "tui/crossterm"]
|
||||||
tuirs-no-backend = ["dep:tui"]
|
tuirs-termion = ["tuirs", "dep:termion", "tui/termion"]
|
||||||
|
tuirs-no-backend = ["tuirs"]
|
||||||
# Other optional features
|
# Other optional features
|
||||||
search = ["dep:regex"]
|
search = ["dep:regex"]
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,13 @@
|
|||||||
use crate::ratatui::style::Style;
|
use crate::ratatui::style::Style;
|
||||||
#[cfg(any(
|
|
||||||
feature = "crossterm",
|
|
||||||
feature = "termion",
|
|
||||||
feature = "termwiz",
|
|
||||||
feature = "no-backend",
|
|
||||||
))]
|
|
||||||
use crate::ratatui::text::Line;
|
|
||||||
use crate::ratatui::text::Span;
|
use crate::ratatui::text::Span;
|
||||||
#[cfg(any(
|
|
||||||
feature = "tuirs-crossterm",
|
|
||||||
feature = "tuirs-termion",
|
|
||||||
feature = "tuirs-no-backend",
|
|
||||||
))]
|
|
||||||
use crate::ratatui::text::Spans as Line;
|
|
||||||
use crate::util::{num_digits, spaces};
|
use crate::util::{num_digits, spaces};
|
||||||
|
#[cfg(feature = "ratatui")]
|
||||||
|
use ratatui::text::Line;
|
||||||
use std::borrow::Cow;
|
use std::borrow::Cow;
|
||||||
use std::cmp::Ordering;
|
use std::cmp::Ordering;
|
||||||
use std::iter;
|
use std::iter;
|
||||||
|
#[cfg(feature = "tuirs")]
|
||||||
|
use tui::text::Spans as Line;
|
||||||
use unicode_width::UnicodeWidthChar as _;
|
use unicode_width::UnicodeWidthChar as _;
|
||||||
|
|
||||||
enum Boundary {
|
enum Boundary {
|
||||||
|
|||||||
27
src/lib.rs
27
src/lib.rs
@@ -4,19 +4,7 @@
|
|||||||
#![cfg_attr(docsrs, feature(doc_cfg))]
|
#![cfg_attr(docsrs, feature(doc_cfg))]
|
||||||
#![doc = include_str!("../README.md")]
|
#![doc = include_str!("../README.md")]
|
||||||
|
|
||||||
#[cfg(all(
|
#[cfg(all(feature = "ratatui", feature = "tuirs"))]
|
||||||
any(
|
|
||||||
feature = "crossterm",
|
|
||||||
feature = "termion",
|
|
||||||
feature = "termwiz",
|
|
||||||
feature = "no-backend",
|
|
||||||
),
|
|
||||||
any(
|
|
||||||
feature = "tuirs-crossterm",
|
|
||||||
feature = "tuirs-termion",
|
|
||||||
feature = "tuirs-no-backend",
|
|
||||||
),
|
|
||||||
))]
|
|
||||||
compile_error!("ratatui support and tui-rs support are exclussive. only one of them can be enabled at the same time. see https://github.com/rhysd/tui-textarea#installation");
|
compile_error!("ratatui support and tui-rs support are exclussive. only one of them can be enabled at the same time. see https://github.com/rhysd/tui-textarea#installation");
|
||||||
|
|
||||||
mod cursor;
|
mod cursor;
|
||||||
@@ -31,19 +19,10 @@ mod util;
|
|||||||
mod widget;
|
mod widget;
|
||||||
mod word;
|
mod word;
|
||||||
|
|
||||||
#[cfg(any(
|
#[cfg(feature = "ratatui")]
|
||||||
feature = "crossterm",
|
|
||||||
feature = "termion",
|
|
||||||
feature = "termwiz",
|
|
||||||
feature = "no-backend",
|
|
||||||
))]
|
|
||||||
#[allow(clippy::single_component_path_imports)]
|
#[allow(clippy::single_component_path_imports)]
|
||||||
use ratatui;
|
use ratatui;
|
||||||
#[cfg(any(
|
#[cfg(feature = "tuirs")]
|
||||||
feature = "tuirs-crossterm",
|
|
||||||
feature = "tuirs-termion",
|
|
||||||
feature = "tuirs-no-backend",
|
|
||||||
))]
|
|
||||||
use tui as ratatui;
|
use tui as ratatui;
|
||||||
|
|
||||||
#[cfg(feature = "crossterm")]
|
#[cfg(feature = "crossterm")]
|
||||||
|
|||||||
@@ -4,19 +4,6 @@ use crate::history::{Edit, EditKind, History};
|
|||||||
use crate::input::{Input, Key};
|
use crate::input::{Input, Key};
|
||||||
use crate::ratatui::layout::Alignment;
|
use crate::ratatui::layout::Alignment;
|
||||||
use crate::ratatui::style::{Color, Modifier, Style};
|
use crate::ratatui::style::{Color, Modifier, Style};
|
||||||
#[cfg(any(
|
|
||||||
feature = "crossterm",
|
|
||||||
feature = "termion",
|
|
||||||
feature = "termwiz",
|
|
||||||
feature = "no-backend",
|
|
||||||
))]
|
|
||||||
use crate::ratatui::text::Line;
|
|
||||||
#[cfg(any(
|
|
||||||
feature = "tuirs-crossterm",
|
|
||||||
feature = "tuirs-termion",
|
|
||||||
feature = "tuirs-no-backend",
|
|
||||||
))]
|
|
||||||
use crate::ratatui::text::Spans as Line;
|
|
||||||
use crate::ratatui::widgets::{Block, Widget};
|
use crate::ratatui::widgets::{Block, Widget};
|
||||||
use crate::scroll::Scrolling;
|
use crate::scroll::Scrolling;
|
||||||
#[cfg(feature = "search")]
|
#[cfg(feature = "search")]
|
||||||
@@ -24,6 +11,10 @@ use crate::search::Search;
|
|||||||
use crate::util::spaces;
|
use crate::util::spaces;
|
||||||
use crate::widget::{Renderer, Viewport};
|
use crate::widget::{Renderer, Viewport};
|
||||||
use crate::word::{find_word_end_forward, find_word_start_backward};
|
use crate::word::{find_word_end_forward, find_word_start_backward};
|
||||||
|
#[cfg(feature = "ratatui")]
|
||||||
|
use ratatui::text::Line;
|
||||||
|
#[cfg(feature = "tuirs")]
|
||||||
|
use tui::text::Spans as Line;
|
||||||
use unicode_width::UnicodeWidthChar as _;
|
use unicode_width::UnicodeWidthChar as _;
|
||||||
|
|
||||||
/// A type to manage state of textarea.
|
/// A type to manage state of textarea.
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user