1
0
зеркало из https://github.com/glebtv/tui-textarea.git synced 2026-08-28 11:36:17 +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-termion,search -- --skip .rs
if: ${{ matrix.os != 'windows-latest' }}
- run: cargo test --no-default-features --features=your-backend,search -- --skip .rs
- run: cargo test --no-default-features --features=tuirs-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-no-backend,search -- --skip .rs
lint:
runs-on: ubuntu-latest
steps:
@@ -33,12 +33,12 @@ jobs:
- 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,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 no-backend -- -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,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 clippy --examples --no-default-features --features tuirs-no-backend -- -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

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

@@ -25,14 +25,16 @@ include = [
[features]
default = ["crossterm"]
# Features to use ratatui
crossterm = ["dep:crossterm", "ratatui/crossterm"]
termion = ["dep:termion", "ratatui/termion"]
termwiz = ["dep:termwiz", "ratatui/termwiz"]
no-backend = ["dep:ratatui"]
ratatui = ["dep:ratatui"]
crossterm = ["ratatui", "dep:crossterm", "ratatui/crossterm"]
termion = ["ratatui", "dep:termion", "ratatui/termion"]
termwiz = ["ratatui", "dep:termwiz", "ratatui/termwiz"]
no-backend = ["ratatui"]
# Features to use tui-rs
tuirs-crossterm = ["dep:crossterm-025", "tui/crossterm"]
tuirs-termion = ["dep:termion", "tui/termion"]
tuirs-no-backend = ["dep:tui"]
tuirs = ["dep:tui"]
tuirs-crossterm = ["tuirs", "dep:crossterm-025", "tui/crossterm"]
tuirs-termion = ["tuirs", "dep:termion", "tui/termion"]
tuirs-no-backend = ["tuirs"]
# Other optional features
search = ["dep:regex"]

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

@@ -1,22 +1,13 @@
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;
#[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};
#[cfg(feature = "ratatui")]
use ratatui::text::Line;
use std::borrow::Cow;
use std::cmp::Ordering;
use std::iter;
#[cfg(feature = "tuirs")]
use tui::text::Spans as Line;
use unicode_width::UnicodeWidthChar as _;
enum Boundary {

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

@@ -4,19 +4,7 @@
#![cfg_attr(docsrs, feature(doc_cfg))]
#![doc = include_str!("../README.md")]
#[cfg(all(
any(
feature = "crossterm",
feature = "termion",
feature = "termwiz",
feature = "no-backend",
),
any(
feature = "tuirs-crossterm",
feature = "tuirs-termion",
feature = "tuirs-no-backend",
),
))]
#[cfg(all(feature = "ratatui", feature = "tuirs"))]
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;
@@ -31,19 +19,10 @@ mod util;
mod widget;
mod word;
#[cfg(any(
feature = "crossterm",
feature = "termion",
feature = "termwiz",
feature = "no-backend",
))]
#[cfg(feature = "ratatui")]
#[allow(clippy::single_component_path_imports)]
use ratatui;
#[cfg(any(
feature = "tuirs-crossterm",
feature = "tuirs-termion",
feature = "tuirs-no-backend",
))]
#[cfg(feature = "tuirs")]
use tui as ratatui;
#[cfg(feature = "crossterm")]

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

@@ -4,19 +4,6 @@ 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 = "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::scroll::Scrolling;
#[cfg(feature = "search")]
@@ -24,6 +11,10 @@ use crate::search::Search;
use crate::util::spaces;
use crate::widget::{Renderer, Viewport};
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 _;
/// A type to manage state of textarea.