chore: format imports

This commit is contained in:
Loric ANDRE 2026-06-17 13:58:44 +02:00
parent 42fa8e143b
commit 0de1a2acbb
37 changed files with 127 additions and 156 deletions

View file

@ -1,5 +1,5 @@
set -xeuo pipefail set -xeuo pipefail
cargo fmt --check --all cargo +nightly fmt --check --all
cargo clippy --all-targets -- -Dwarnings cargo clippy --all-targets -- -Dwarnings
cargo check --no-default-features cargo check --no-default-features

View file

@ -1 +1,2 @@
max_width = 120 max_width = 120
imports_granularity = "Module"

View file

@ -11,7 +11,7 @@
1. Build: `RUSTFLAGS="-Zsanitizer=thread" cargo +nightly build --tests -Zbuild-std --target x86_64-unknown-linux-gnu` 1. Build: `RUSTFLAGS="-Zsanitizer=thread" cargo +nightly build --tests -Zbuild-std --target x86_64-unknown-linux-gnu`
2. Run: `TSAN_OPTIONS="detect_deadlocks=1" cargo +nightly nextest run --profile tsan --target x86_64-unknown-linux-gnu` 2. Run: `TSAN_OPTIONS="detect_deadlocks=1" cargo +nightly nextest run --profile tsan --target x86_64-unknown-linux-gnu`
- Lint: `cargo clippy` - Lint: `cargo clippy`
- Format: `cargo fmt` (check only: `cargo fmt --check`) - Format: `cargo +nightly fmt` (check only: `cargo +nightly fmt --check`)
## Code Style ## Code Style
- Format with 120 char line width (defined in .rustfmt.toml) - Format with 120 char line width (defined in .rustfmt.toml)

View file

@ -1310,10 +1310,12 @@ where
} }
fn cmd_plot(args: &PlotArgs) -> std::result::Result<(), Box<dyn std::error::Error>> { fn cmd_plot(args: &PlotArgs) -> std::result::Result<(), Box<dyn std::error::Error>> {
use gnuplot::{ use gnuplot::AlignType::*;
AlignType::*, AutoOption::Fix, AxesCommon, BorderLocation2D::*, Caption, Color, Figure, FillAlpha, use gnuplot::AutoOption::Fix;
LabelOption::TextColor, LegendOption::Placement, LineWidth, use gnuplot::BorderLocation2D::*;
}; use gnuplot::LabelOption::TextColor;
use gnuplot::LegendOption::Placement;
use gnuplot::{AxesCommon, Caption, Color, Figure, FillAlpha, LineWidth};
// ── Catppuccin Mocha dark palette ───────────────────────────────────────── // ── Catppuccin Mocha dark palette ─────────────────────────────────────────
// Colours are referenced as HTML hex strings throughout. // Colours are referenced as HTML hex strings throughout.

View file

@ -1,7 +1,8 @@
//! Demonstrates selecting ANSI-colored command output. //! Demonstrates selecting ANSI-colored command output.
extern crate skim; extern crate skim;
use skim::{prelude::*, reader::CommandCollector}; use skim::prelude::*;
use skim::reader::CommandCollector;
fn main() { fn main() {
env_logger::init(); env_logger::init();

View file

@ -1,6 +1,7 @@
//! Runs skim from an async Tokio entry point. //! Runs skim from an async Tokio entry point.
use skim::{Skim, prelude::SkimOptionsBuilder}; use skim::Skim;
use skim::prelude::SkimOptionsBuilder;
#[tokio::main] #[tokio::main]
async fn main() { async fn main() {

View file

@ -1,6 +1,7 @@
//! Demonstrates basic item selection with inline status information. //! Demonstrates basic item selection with inline status information.
use skim::{prelude::*, tui::statusline::InfoDisplay}; use skim::prelude::*;
use skim::tui::statusline::InfoDisplay;
fn main() -> color_eyre::Result<()> { fn main() -> color_eyre::Result<()> {
let opts = SkimOptionsBuilder::default() let opts = SkimOptionsBuilder::default()

View file

@ -1,6 +1,7 @@
//! Runs skim repeatedly to check that runs clean up their worker threads. //! Runs skim repeatedly to check that runs clean up their worker threads.
use skim::{Skim, prelude::SkimOptionsBuilder}; use skim::Skim;
use skim::prelude::SkimOptionsBuilder;
// Hint: use `ps -T -p $(pgrep -f target/debug/examples/multiple_runs)` to watch threads while the // Hint: use `ps -T -p $(pgrep -f target/debug/examples/multiple_runs)` to watch threads while the
// different invocations run, and make sure none is leaking through // different invocations run, and make sure none is leaking through

View file

@ -3,10 +3,8 @@
//! This module provides utilities for parsing and managing keyboard shortcuts //! This module provides utilities for parsing and managing keyboard shortcuts
//! and their associated actions in skim. //! and their associated actions in skim.
use std::{ use std::collections::HashMap;
collections::HashMap, use std::ops::{Deref, DerefMut};
ops::{Deref, DerefMut},
};
use color_eyre::Result; use color_eyre::Result;
use color_eyre::eyre::eyre; use color_eyre::eyre::eyre;

View file

@ -2,14 +2,16 @@ use std::cmp::min;
use std::fmt::{Display, Error, Formatter}; use std::fmt::{Display, Error, Formatter};
use std::sync::Arc; use std::sync::Arc;
use crate::fuzzy_matcher::FuzzyMatcher;
use crate::fuzzy_matcher::arinae::ArinaeMatcher; use crate::fuzzy_matcher::arinae::ArinaeMatcher;
use crate::fuzzy_matcher::clangd::ClangdMatcher;
#[cfg(frizbee)] #[cfg(frizbee)]
use crate::fuzzy_matcher::frizbee::FrizbeeMatcher; use crate::fuzzy_matcher::frizbee::FrizbeeMatcher;
use crate::fuzzy_matcher::{FuzzyMatcher, clangd::ClangdMatcher, fzy::FzyMatcher, skim::SkimMatcherV2}; use crate::fuzzy_matcher::fzy::FzyMatcher;
use crate::fuzzy_matcher::skim::SkimMatcherV2;
use crate::item::RankBuilder; use crate::item::RankBuilder;
use crate::{CaseMatching, MatchEngine, Typos}; use crate::{CaseMatching, MatchEngine, MatchRange, MatchResult, SkimItem, Typos};
use crate::{MatchRange, MatchResult, SkimItem};
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
/// Fuzzy matching algorithm to use /// Fuzzy matching algorithm to use

View file

@ -6,8 +6,9 @@
use std::borrow::Cow; use std::borrow::Cow;
use std::fmt::{Display, Error, Formatter}; use std::fmt::{Display, Error, Formatter};
use crate::engine::util::{map_byte_range_to_original, map_char_indices_to_original}; use crate::engine::util::{
use crate::engine::util::{normalize_with_byte_mapping, normalize_with_char_mapping}; map_byte_range_to_original, map_char_indices_to_original, normalize_with_byte_mapping, normalize_with_char_mapping,
};
use crate::{CaseMatching, MatchEngine, MatchEngineFactory, MatchRange, MatchResult, SkimItem}; use crate::{CaseMatching, MatchEngine, MatchEngineFactory, MatchRange, MatchResult, SkimItem};
/// Engine that normalizes text before matching /// Engine that normalizes text before matching

View file

@ -5,8 +5,7 @@ use regex::Regex;
use crate::engine::util::regex_match; use crate::engine::util::regex_match;
use crate::item::RankBuilder; use crate::item::RankBuilder;
use crate::{CaseMatching, MatchEngine}; use crate::{CaseMatching, MatchEngine, MatchRange, MatchResult, SkimItem};
use crate::{MatchRange, MatchResult, SkimItem};
use std::cmp::min; use std::cmp::min;
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------

View file

@ -4,10 +4,8 @@
//! fields from text based on delimiters. //! fields from text based on delimiters.
use regex::Regex; use regex::Regex;
use std::{ use std::cmp::{max, min};
cmp::{max, min}, use std::sync::LazyLock;
sync::LazyLock,
};
static FIELD_RANGE: LazyLock<Regex> = static FIELD_RANGE: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^(?P<left>-?\d+)?(?P<sep>\.\.)?(?P<right>-?\d+)?$").unwrap()); LazyLock::new(|| Regex::new(r"^(?P<left>-?\d+)?(?P<sep>\.\.)?(?P<right>-?\d+)?$").unwrap());

View file

@ -44,10 +44,8 @@ use self::constants::{CAMEL_CASE_BONUS, START_OF_STRING_BONUS};
use self::prefilter::cheap_typo_prefilter; use self::prefilter::cheap_typo_prefilter;
use self::matrix::{CELL_ZERO, Cell, Dir, SWMatrix}; use self::matrix::{CELL_ZERO, Cell, Dir, SWMatrix};
use crate::{ use crate::CaseMatching;
CaseMatching, use crate::fuzzy_matcher::{FuzzyMatcher, MatchIndices, ScoreType};
fuzzy_matcher::{FuzzyMatcher, MatchIndices, ScoreType},
};
type Score = i16; type Score = i16;

View file

@ -1,10 +1,9 @@
//! Matcher using <https://crates.io/crates/frizbee> //! Matcher using <https://crates.io/crates/frizbee>
use frizbee::{Scoring, smith_waterman::SmithWatermanMatcher}; use frizbee::Scoring;
use frizbee::smith_waterman::SmithWatermanMatcher;
use crate::{ use crate::CaseMatching;
CaseMatching, use crate::fuzzy_matcher::{FuzzyMatcher, MatchIndices, ScoreType};
fuzzy_matcher::{FuzzyMatcher, MatchIndices, ScoreType},
};
const RESPECT_CASE_BONUS: u16 = 10000; const RESPECT_CASE_BONUS: u16 = 10000;

View file

@ -33,10 +33,8 @@ use std::process::Command;
use std::sync::Arc; use std::sync::Arc;
use crate::fuzzy_matcher::MatchIndices; use crate::fuzzy_matcher::MatchIndices;
use ratatui::{ use ratatui::style::Style;
style::Style, use ratatui::text::{Line, Span};
text::{Line, Span},
};
pub use crate::engine::fuzzy::FuzzyAlgorithm; pub use crate::engine::fuzzy::FuzzyAlgorithm;
pub use crate::item::RankCriteria; pub use crate::item::RankCriteria;

View file

@ -15,12 +15,10 @@ use crate::binds::KeyMap;
use crate::item::RankCriteria; use crate::item::RankCriteria;
use crate::prelude::SkimItemReader; use crate::prelude::SkimItemReader;
use crate::reader::CommandCollector; use crate::reader::CommandCollector;
use crate::tui::BorderType;
use crate::tui::PreviewCallback;
use crate::tui::event::Action; use crate::tui::event::Action;
use crate::tui::options::{PreviewLayout, TuiLayout}; use crate::tui::options::{PreviewLayout, TuiLayout};
use crate::tui::statusline::Info; use crate::tui::statusline::{Info, InfoDisplay};
use crate::tui::statusline::InfoDisplay; use crate::tui::{BorderType, PreviewCallback};
use crate::util::read_file_lines; use crate::util::read_file_lines;
use crate::{CaseMatching, FuzzyAlgorithm, Selector, Typos}; use crate::{CaseMatching, FuzzyAlgorithm, Selector, Typos};

View file

@ -6,27 +6,22 @@
mod tmux; mod tmux;
mod zellij; mod zellij;
use std::{ use std::borrow::Cow;
borrow::Cow, use std::fmt::Write as FmtWrite;
fmt::Write as FmtWrite, use std::io::{BufRead as _, BufReader, BufWriter, IsTerminal as _, Write as _};
io::{BufRead as _, BufReader, BufWriter, IsTerminal as _, Write as _}, use std::process::ExitStatus;
process::ExitStatus, use std::sync::Arc;
sync::{ use std::sync::atomic::{AtomicBool, Ordering};
Arc, use std::thread;
atomic::{AtomicBool, Ordering},
},
thread,
};
use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; use crossterm::event::{KeyCode, KeyEvent, KeyModifiers};
use nix::sys::stat::Mode; use nix::sys::stat::Mode;
use nix::unistd::mkfifo; use nix::unistd::mkfifo;
use crate::{ use crate::item::{MatchedItem, RankBuilder};
Rank, SkimItem, SkimOptions, SkimOutput, use crate::tui::Event;
item::{MatchedItem, RankBuilder}, use crate::tui::event::Action;
tui::{Event, event::Action}, use crate::{Rank, SkimItem, SkimOptions, SkimOutput};
};
use tmux::TmuxPopup; use tmux::TmuxPopup;
use zellij::ZellijPopup; use zellij::ZellijPopup;

View file

@ -1,5 +1,6 @@
use super::{PopupWindowDir, SkimPopup}; use super::{PopupWindowDir, SkimPopup};
use crate::{SkimOptions, tui::Size}; use crate::SkimOptions;
use crate::tui::Size;
use std::fmt::Write as _; use std::fmt::Write as _;
use std::process::{Command, ExitStatus, Stdio}; use std::process::{Command, ExitStatus, Stdio};

View file

@ -3,17 +3,16 @@
//! This module provides a convenient way to import all the commonly used //! This module provides a convenient way to import all the commonly used
//! skim types and traits with a single `use skim::prelude::*;` statement. //! skim types and traits with a single `use skim::prelude::*;` statement.
pub use crate::engine::{ pub use crate::engine::factory::*;
factory::*, pub use crate::engine::fuzzy::{FuzzyAlgorithm, FuzzyEngine};
fuzzy::{FuzzyAlgorithm, FuzzyEngine},
};
pub use crate::fuzzy_matcher::skim::SkimMatcherV2; pub use crate::fuzzy_matcher::skim::SkimMatcherV2;
pub use crate::helper::item_reader::{SkimItemReader, SkimItemReaderOption}; pub use crate::helper::item_reader::{SkimItemReader, SkimItemReaderOption};
pub use crate::helper::selector::DefaultSkimSelector; pub use crate::helper::selector::DefaultSkimSelector;
pub use crate::options::{SkimOptions, SkimOptionsBuilder}; pub use crate::options::{SkimOptions, SkimOptionsBuilder};
pub use crate::output::SkimOutput; pub use crate::output::SkimOutput;
pub use crate::reader::CommandCollector; pub use crate::reader::CommandCollector;
pub use crate::tui::{Event, PreviewCallback, event::Action}; pub use crate::tui::event::Action;
pub use crate::tui::{Event, PreviewCallback};
pub use crate::*; pub use crate::*;
pub use kanal::{Receiver, Sender, bounded, unbounded}; pub use kanal::{Receiver, Sender, bounded, unbounded};
pub use std::borrow::Cow; pub use std::borrow::Cow;

View file

@ -3,15 +3,16 @@ use std::io::{BufWriter, Stderr};
use std::sync::Arc; use std::sync::Arc;
use std::time::Duration; use std::time::Duration;
use color_eyre::eyre::Result; use color_eyre::eyre::{self, OptionExt, Result};
use color_eyre::eyre::{self, OptionExt};
use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; use crossterm::event::{KeyCode, KeyEvent, KeyModifiers};
use ratatui_image::picker::Picker; use ratatui_image::picker::Picker;
use tokio::{runtime::Handle, select, task::block_in_place}; use tokio::runtime::Handle;
use tokio::select;
use tokio::task::block_in_place;
use crate::reader::{Reader, ReaderControl}; use crate::reader::{Reader, ReaderControl};
use crate::tui::TICK_RATE; use crate::tui::event::Action;
use crate::tui::{App, Event, Size, Tui, event::Action}; use crate::tui::{App, Event, Size, TICK_RATE, Tui};
use crate::{SkimItem, SkimItemReceiver, SkimOptions, SkimOutput}; use crate::{SkimItem, SkimItemReceiver, SkimOptions, SkimOutput};
/// Main entry point for running skim /// Main entry point for running skim

View file

@ -1,8 +1,6 @@
use ratatui::text::Line; use ratatui::text::Line;
use std::{ use std::borrow::Cow;
borrow::Cow, use std::fmt::{Debug, Display};
fmt::{Debug, Display},
};
use crate::{AsAny, DisplayContext, ItemPreview, PreviewContext}; use crate::{AsAny, DisplayContext, ItemPreview, PreviewContext};

View file

@ -5,10 +5,8 @@
//! 2. Use `.lock()` instead of `.lock().unwrap()` to retrieve the guard. //! 2. Use `.lock()` instead of `.lock().unwrap()` to retrieve the guard.
//! 3. It doesn't handle poison so data is still available on thread panic. //! 3. It doesn't handle poison so data is still available on thread panic.
use std::cell::UnsafeCell; use std::cell::UnsafeCell;
use std::ops::Deref; use std::ops::{Deref, DerefMut};
use std::ops::DerefMut; use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::atomic::AtomicBool;
use std::sync::atomic::Ordering;
/// A spin lock that uses busy-waiting instead of OS blocking /// A spin lock that uses busy-waiting instead of OS blocking
#[derive(Default)] #[derive(Default)]

View file

@ -12,15 +12,12 @@ use crate::tui::options::TuiLayout;
use crate::tui::statusline::InfoDisplay; use crate::tui::statusline::InfoDisplay;
use crate::tui::widget::SkimWidget; use crate::tui::widget::SkimWidget;
use crate::tui::{SkimRender, TICK_RATE}; use crate::tui::{SkimRender, TICK_RATE};
use crate::{ItemPreview, PreviewContext, SkimItem, SkimOptions}; use crate::{ItemPreview, PreviewContext, Rank, SkimItem, SkimOptions, util};
use crate::{Rank, util};
use super::Event;
use super::Tui;
use super::event::Action; use super::event::Action;
use super::header::Header; use super::header::Header;
use super::item_list::ItemList; use super::item_list::ItemList;
use super::{input, preview}; use super::{Event, Tui, input, preview};
use crate::thread_pool::{self, ThreadPool}; use crate::thread_pool::{self, ThreadPool};
use color_eyre::eyre::{Result, bail}; use color_eyre::eyre::{Result, bail};
use crossterm::event::{KeyCode, KeyEvent, KeyModifiers, MouseButton, MouseEvent, MouseEventKind}; use crossterm::event::{KeyCode, KeyEvent, KeyModifiers, MouseButton, MouseEvent, MouseEventKind};

View file

@ -3,9 +3,9 @@ use std::ops::{Deref, DerefMut};
use std::sync::Once; use std::sync::Once;
use color_eyre::eyre::Result; use color_eyre::eyre::Result;
use crossterm::event::KeyEventKind; use crossterm::event::{
use crossterm::event::{DisableBracketedPaste, EnableBracketedPaste}; DisableBracketedPaste, DisableMouseCapture, EnableBracketedPaste, EnableMouseCapture, KeyEventKind,
use crossterm::event::{DisableMouseCapture, EnableMouseCapture}; };
use crossterm::terminal::{Clear, ClearType, EnterAlternateScreen, LeaveAlternateScreen}; use crossterm::terminal::{Clear, ClearType, EnterAlternateScreen, LeaveAlternateScreen};
use crossterm::{self, cursor}; use crossterm::{self, cursor};
use futures::{FutureExt as _, StreamExt as _}; use futures::{FutureExt as _, StreamExt as _};

View file

@ -1,24 +1,18 @@
//! Header display widget for skim's TUI. //! Header display widget for skim's TUI.
//! //!
//! This module provides the header widget that displays static text above the item list. //! This module provides the header widget that displays static text above the item list.
use crate::DisplayContext;
use crate::SkimItem;
use crate::SkimOptions;
use crate::theme::ColorTheme; use crate::theme::ColorTheme;
use crate::tui::BorderType; use crate::tui::BorderType;
use crate::tui::options::TuiLayout; use crate::tui::options::TuiLayout;
use crate::tui::util::char_display_width; use crate::tui::util::{char_display_width, clip_line_to_chars, style_line, style_text};
use crate::tui::util::clip_line_to_chars;
use crate::tui::util::style_line;
use crate::tui::util::style_text;
use crate::tui::widget::{SkimRender, SkimWidget}; use crate::tui::widget::{SkimRender, SkimWidget};
use crate::{DisplayContext, SkimItem, SkimOptions};
use ansi_to_tui::IntoText; use ansi_to_tui::IntoText;
use ratatui::buffer::Buffer; use ratatui::buffer::Buffer;
use ratatui::layout::Rect; use ratatui::layout::Rect;
use ratatui::text::{Line, Span, Text}; use ratatui::text::{Line, Span, Text};
use ratatui::widgets::Widget; use ratatui::widgets::{Block, Borders, Paragraph, Widget};
use ratatui::widgets::{Block, Borders, Paragraph};
use std::cmp::max; use std::cmp::max;
use std::sync::Arc; use std::sync::Arc;

View file

@ -4,16 +4,18 @@ use std::sync::Arc;
use std::time::Instant; use std::time::Instant;
use ansi_to_tui::IntoText; use ansi_to_tui::IntoText;
use ratatui::{prelude::*, widgets::Widget}; use ratatui::prelude::*;
use ratatui::widgets::Widget;
use unicode_display_width::width as display_width; use unicode_display_width::width as display_width;
use crate::SkimOptions;
use crate::helper::item::strip_ansi; use crate::helper::item::strip_ansi;
use crate::theme::ColorTheme;
use crate::tui::BorderType; use crate::tui::BorderType;
use crate::tui::options::TuiLayout; use crate::tui::options::TuiLayout;
use crate::tui::statusline::{Info, InfoDisplay, spinner_char}; use crate::tui::statusline::{Info, InfoDisplay, spinner_char};
use crate::tui::util::style_line; use crate::tui::util::style_line;
use crate::tui::widget::{SkimRender, SkimWidget}; use crate::tui::widget::{SkimRender, SkimWidget};
use crate::{SkimOptions, theme::ColorTheme};
/// Status information to display in the input widget's title /// Status information to display in the input widget's title
#[derive(Clone, Default)] #[derive(Clone, Default)]
@ -434,8 +436,7 @@ impl SkimWidget for Input {
fn render(&mut self, area: Rect, buf: &mut Buffer) -> SkimRender { fn render(&mut self, area: Rect, buf: &mut Buffer) -> SkimRender {
use ratatui::layout::Alignment; use ratatui::layout::Alignment;
use ratatui::text::{Line, Span}; use ratatui::text::{Line, Span};
use ratatui::widgets::Paragraph; use ratatui::widgets::{Block, Borders, Paragraph};
use ratatui::widgets::{Block, Borders};
let mut line = self.prompt.into_text().map_or_else( let mut line = self.prompt.into_text().map_or_else(
|_| Line::from(self.prompt.as_str()), |_| Line::from(self.prompt.as_str()),

View file

@ -1,4 +1,5 @@
use std::{rc::Rc, sync::Arc}; use std::rc::Rc;
use std::sync::Arc;
use indexmap::IndexSet; use indexmap::IndexSet;
use ratatui::widgets::{ use ratatui::widgets::{
@ -7,17 +8,15 @@ use ratatui::widgets::{
}; };
use regex::Regex; use regex::Regex;
use crate::item::MatchedItem;
use crate::options::feature_flag; use crate::options::feature_flag;
use crate::{ use crate::spinlock::SpinLock;
Selector, SkimOptions, use crate::theme::ColorTheme;
item::MatchedItem, use crate::tui::BorderType;
spinlock::SpinLock, use crate::tui::item_renderer::ItemRenderer;
theme::ColorTheme, use crate::tui::options::TuiLayout;
tui::BorderType, use crate::tui::widget::{SkimRender, SkimWidget};
tui::item_renderer::ItemRenderer, use crate::{Selector, SkimOptions};
tui::options::TuiLayout,
tui::widget::{SkimRender, SkimWidget},
};
/// How to apply processed items to the display list /// How to apply processed items to the display list
#[derive(Default, Clone, Copy)] #[derive(Default, Clone, Copy)]

View file

@ -3,9 +3,11 @@ use ratatui::text::{Line, Span};
use ratatui::widgets::{ListDirection, ListItem}; use ratatui::widgets::{ListDirection, ListItem};
use unicode_display_width::width as display_width; use unicode_display_width::width as display_width;
use crate::item::MatchedItem;
use crate::theme::ColorTheme;
use crate::tui::item_list::ItemList; use crate::tui::item_list::ItemList;
use crate::tui::util::{char_display_width, clip_line_to_chars, wrap_text}; use crate::tui::util::{char_display_width, clip_line_to_chars, wrap_text};
use crate::{DisplayContext, MatchRange, item::MatchedItem, theme::ColorTheme}; use crate::{DisplayContext, MatchRange};
#[allow(clippy::struct_excessive_bools)] #[allow(clippy::struct_excessive_bools)]
struct SubLineState { struct SubLineState {

View file

@ -1,23 +1,21 @@
use ansi_to_tui::IntoText; use ansi_to_tui::IntoText;
use color_eyre::eyre::{Result, eyre}; use color_eyre::eyre::{Result, eyre};
use portable_pty::{PtyPair, PtySize, native_pty_system}; use portable_pty::{PtyPair, PtySize, native_pty_system};
use ratatui::{ use ratatui::layout::Alignment;
layout::Alignment, use ratatui::prelude::Backend;
prelude::Backend, use ratatui::style::Stylize;
style::Stylize, use ratatui::text::{Line, Text};
text::{Line, Text}, use ratatui::widgets::{Block, Borders, Clear, Paragraph, Widget};
widgets::{Block, Borders, Clear, Paragraph, Widget},
};
use ratatui_image::picker::Picker; use ratatui_image::picker::Picker;
use ratatui_image::protocol::Protocol as ImageProtocol; use ratatui_image::protocol::Protocol as ImageProtocol;
use tui_term::vt100; use tui_term::vt100;
use tui_term::widget::PseudoTerminal; use tui_term::widget::PseudoTerminal;
use std::sync::mpsc; use std::env;
use std::sync::{Arc, RwLock}; use std::io::Read;
use std::sync::{Arc, RwLock, mpsc};
use std::thread::JoinHandle; use std::thread::JoinHandle;
use std::time::Instant; use std::time::Instant;
use std::{env, io::Read};
use super::statusline::spinner_char; use super::statusline::spinner_char;
use super::util::{find_csi_end, find_osc_end, handle_csi_query, handle_osc_query}; use super::util::{find_csi_end, find_osc_end, handle_csi_query, handle_osc_query};

View file

@ -1,8 +1,6 @@
use crossterm::terminal; use crossterm::terminal;
use ratatui::{ use ratatui::style::Style;
style::Style, use ratatui::text::{Line, Span, Text};
text::{Line, Span, Text},
};
use std::io::{self, Write}; use std::io::{self, Write};
#[cfg(unix)] #[cfg(unix)]
use std::{ use std::{
@ -556,7 +554,8 @@ mod tests {
#[test] #[test]
fn test_merge_styles() { fn test_merge_styles() {
use ratatui::style::{Color::*, Modifier}; use ratatui::style::Color::*;
use ratatui::style::Modifier;
let input = "before \x1b[1;34mline1\x1b[0m nocol"; let input = "before \x1b[1;34mline1\x1b[0m nocol";
let styled = input.into_text().unwrap().lines[0].clone(); let styled = input.into_text().unwrap().lines[0].clone();
let red = Style::new().red(); let red = Style::new().red();
@ -581,7 +580,8 @@ mod tests {
#[test] #[test]
fn test_style_text() { fn test_style_text() {
use ratatui::style::{Color::*, Modifier}; use ratatui::style::Color::*;
use ratatui::style::Modifier;
let input = "before \x1b[1;34mline1\x1b[0m nocol"; let input = "before \x1b[1;34mline1\x1b[0m nocol";
let mut styled = input.into_text().unwrap(); let mut styled = input.into_text().unwrap();
let red = Style::new().red(); let red = Style::new().red();

View file

@ -1,5 +1,4 @@
use crate::field::FieldRange; use crate::field::{FieldRange, get_string_by_field};
use crate::field::get_string_by_field;
use crate::helper::item::strip_ansi; use crate::helper::item::strip_ansi;
use crate::item::MatchedItem; use crate::item::MatchedItem;
use regex::Regex; use regex::Regex;

View file

@ -4,11 +4,10 @@ use clap::Parser;
use color_eyre::Result; use color_eyre::Result;
use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; use crossterm::event::{KeyCode, KeyEvent, KeyModifiers};
use ratatui::backend::TestBackend; use ratatui::backend::TestBackend;
use skim::{ use skim::prelude::*;
Skim, SkimItemReceiver, use skim::tui::event::Action;
prelude::*, use skim::tui::{Event, Size, Tui};
tui::{Event, Size, Tui, event::Action}, use skim::{Skim, SkimItemReceiver};
};
/// A test harness for running skim TUI tests with insta snapshots. /// A test harness for running skim TUI tests with insta snapshots.
/// ///

View file

@ -1,12 +1,10 @@
use std::{ use std::fmt::{Display, Formatter};
fmt::{Display, Formatter}, use std::fs::File;
fs::File, use std::io::{BufReader, ErrorKind, Read, Result};
io::{BufReader, ErrorKind, Read, Result}, use std::path::Path;
path::Path, use std::process::Command;
process::Command, use std::thread::sleep;
thread::sleep, use std::time::Duration;
time::Duration,
};
use rand::RngExt as _; use rand::RngExt as _;
use rand::distr::Alphanumeric; use rand::distr::Alphanumeric;

View file

@ -6,9 +6,7 @@ mod common;
use common::tmux::Keys::*; use common::tmux::Keys::*;
use common::tmux::TmuxController; use common::tmux::TmuxController;
use std::fs::File; use std::fs::File;
use std::io::Read; use std::io::{Read, Result, Write};
use std::io::Result;
use std::io::Write;
use std::path::Path; use std::path::Path;
#[test] #[test]

View file

@ -7,11 +7,10 @@
mod common; mod common;
use common::tmux::Keys::*; use common::tmux::Keys::*;
use rand::{RngExt as _, distr::Alphabetic}; use rand::RngExt as _;
use std::{ use rand::distr::Alphabetic;
io::{Result, Write as _}, use std::io::{Result, Write as _};
process::{Child, Command, Stdio}, use std::process::{Child, Command, Stdio};
};
use common::tmux::TmuxController; use common::tmux::TmuxController;

View file

@ -5,11 +5,8 @@ mod common;
use common::tmux::Keys::*; use common::tmux::Keys::*;
use common::tmux::TmuxController; use common::tmux::TmuxController;
use std::fs::File; use std::fs::{File, Permissions};
use std::fs::Permissions; use std::io::{Read, Result, Write};
use std::io::Read;
use std::io::Result;
use std::io::Write;
use std::os::unix::fs::PermissionsExt; use std::os::unix::fs::PermissionsExt;
use std::path::Path; use std::path::Path;