1
0
зеркало из https://github.com/glebtv/tui-textarea.git synced 2026-09-06 15:45:50 +03:00

simplify ratatui/tui-rs feature groups by adding ratatui and tuirs features

Этот коммит содержится в:
rhysd
2023-10-24 16:16:36 +09:00
родитель 42c76a9d45
Коммит 70f7b95874
5 изменённых файлов: 26 добавлений и 63 удалений

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

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

@@ -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 {

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

@@ -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.