style: reformat imports (#219)

Order imports by std, external, crate and group them by crate
This commit is contained in:
Josh McKinney 2023-06-11 22:07:15 -07:00 committed by GitHub
parent 492af7a92d
commit f7af8a3863
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
52 changed files with 247 additions and 191 deletions

View file

@ -1,3 +1,9 @@
use std::{
error::Error,
io,
time::{Duration, Instant},
};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode},
execute, execute,
@ -10,11 +16,6 @@ use ratatui::{
widgets::{BarChart, Block, Borders}, widgets::{BarChart, Block, Borders},
Frame, Terminal, Frame, Terminal,
}; };
use std::{
error::Error,
io,
time::{Duration, Instant},
};
struct App<'a> { struct App<'a> {
data: Vec<(&'a str, u64)>, data: Vec<(&'a str, u64)>,

View file

@ -1,3 +1,5 @@
use std::{error::Error, io};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode},
execute, execute,
@ -11,7 +13,6 @@ use ratatui::{
widgets::{Block, BorderType, Borders, Padding, Paragraph}, widgets::{Block, BorderType, Borders, Padding, Paragraph},
Frame, Terminal, Frame, Terminal,
}; };
use std::{error::Error, io};
fn main() -> Result<(), Box<dyn Error>> { fn main() -> Result<(), Box<dyn Error>> {
// setup terminal // setup terminal

View file

@ -5,18 +5,15 @@ use crossterm::{
execute, execute,
terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen},
}; };
use ratatui::{ use ratatui::{
backend::{Backend, CrosstermBackend}, backend::{Backend, CrosstermBackend},
layout::{Constraint, Direction, Layout, Rect}, layout::{Constraint, Direction, Layout, Rect},
style::{Color, Modifier, Style}, style::{Color, Modifier, Style},
widgets::calendar::{CalendarEventStore, DateStyler, Monthly},
Frame, Terminal, Frame, Terminal,
}; };
use time::{Date, Month, OffsetDateTime}; use time::{Date, Month, OffsetDateTime};
use ratatui::widgets::calendar::{CalendarEventStore, DateStyler, Monthly};
fn main() -> Result<(), Box<dyn Error>> { fn main() -> Result<(), Box<dyn Error>> {
enable_raw_mode()?; enable_raw_mode()?;
let mut stdout = io::stdout(); let mut stdout = io::stdout();

View file

@ -1,3 +1,9 @@
use std::{
error::Error,
io,
time::{Duration, Instant},
};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode},
execute, execute,
@ -15,11 +21,6 @@ use ratatui::{
}, },
Frame, Terminal, Frame, Terminal,
}; };
use std::{
error::Error,
io,
time::{Duration, Instant},
};
struct App { struct App {
x: f64, x: f64,

View file

@ -1,3 +1,9 @@
use std::{
error::Error,
io,
time::{Duration, Instant},
};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode},
execute, execute,
@ -12,11 +18,6 @@ use ratatui::{
widgets::{Axis, Block, Borders, Chart, Dataset, GraphType}, widgets::{Axis, Block, Borders, Chart, Dataset, GraphType},
Frame, Terminal, Frame, Terminal,
}; };
use std::{
error::Error,
io,
time::{Duration, Instant},
};
const DATA: [(f64, f64); 5] = [(0.0, 0.0), (1.0, 1.0), (2.0, 2.0), (3.0, 3.0), (4.0, 4.0)]; const DATA: [(f64, f64); 5] = [(0.0, 0.0), (1.0, 1.0), (2.0, 2.0), (3.0, 3.0), (4.0, 4.0)];
const DATA2: [(f64, f64); 7] = [ const DATA2: [(f64, f64); 7] = [

View file

@ -1,3 +1,5 @@
use std::{error::Error, io};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode},
execute, execute,
@ -11,7 +13,6 @@ use ratatui::{
widgets::Widget, widgets::Widget,
Frame, Terminal, Frame, Terminal,
}; };
use std::{error::Error, io};
#[derive(Default)] #[derive(Default)]
struct Label<'a> { struct Label<'a> {

View file

@ -1,4 +1,9 @@
use crate::{app::App, ui}; use std::{
error::Error,
io,
time::{Duration, Instant},
};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEventKind}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEventKind},
execute, execute,
@ -8,11 +13,8 @@ use ratatui::{
backend::{Backend, CrosstermBackend}, backend::{Backend, CrosstermBackend},
Terminal, Terminal,
}; };
use std::{
error::Error, use crate::{app::App, ui};
io,
time::{Duration, Instant},
};
pub fn run(tick_rate: Duration, enhanced_graphics: bool) -> Result<(), Box<dyn Error>> { pub fn run(tick_rate: Duration, enhanced_graphics: bool) -> Result<(), Box<dyn Error>> {
// setup terminal // setup terminal

View file

@ -8,6 +8,10 @@ mod termwiz;
mod ui; mod ui;
use std::{error::Error, time::Duration};
use argh::FromArgs;
#[cfg(feature = "crossterm")] #[cfg(feature = "crossterm")]
use crate::crossterm::run; use crate::crossterm::run;
#[cfg(feature = "termion")] #[cfg(feature = "termion")]
@ -15,9 +19,6 @@ use crate::termion::run;
#[cfg(feature = "termwiz")] #[cfg(feature = "termwiz")]
use crate::termwiz::run; use crate::termwiz::run;
use argh::FromArgs;
use std::{error::Error, time::Duration};
/// Demo /// Demo
#[derive(Debug, FromArgs)] #[derive(Debug, FromArgs)]
struct Cli { struct Cli {

View file

@ -1,9 +1,9 @@
use crate::{app::App, ui}; use std::{error::Error, io, sync::mpsc, thread, time::Duration};
use ratatui::{ use ratatui::{
backend::{Backend, TermionBackend}, backend::{Backend, TermionBackend},
Terminal, Terminal,
}; };
use std::{error::Error, io, sync::mpsc, thread, time::Duration};
use termion::{ use termion::{
event::Key, event::Key,
input::{MouseTerminal, TermRead}, input::{MouseTerminal, TermRead},
@ -11,6 +11,8 @@ use termion::{
screen::IntoAlternateScreen, screen::IntoAlternateScreen,
}; };
use crate::{app::App, ui};
pub fn run(tick_rate: Duration, enhanced_graphics: bool) -> Result<(), Box<dyn Error>> { pub fn run(tick_rate: Duration, enhanced_graphics: bool) -> Result<(), Box<dyn Error>> {
// setup terminal // setup terminal
let stdout = io::stdout() let stdout = io::stdout()

View file

@ -1,9 +1,10 @@
use ratatui::{backend::TermwizBackend, Terminal};
use std::{ use std::{
error::Error, error::Error,
io, io,
time::{Duration, Instant}, time::{Duration, Instant},
}; };
use ratatui::{backend::TermwizBackend, Terminal};
use termwiz::{input::*, terminal::Terminal as TermwizTerminal}; use termwiz::{input::*, terminal::Terminal as TermwizTerminal};
use crate::{app::App, ui}; use crate::{app::App, ui};

View file

@ -1,18 +1,19 @@
use crate::app::App;
use ratatui::{ use ratatui::{
backend::Backend, backend::Backend,
layout::{Constraint, Direction, Layout, Rect}, layout::{Constraint, Direction, Layout, Rect},
style::{Color, Modifier, Style}, style::{Color, Modifier, Style},
symbols, symbols,
text::{Line, Span}, text::{Line, Span},
widgets::canvas::{Canvas, Circle, Line as CanvasLine, Map, MapResolution, Rectangle},
widgets::{ widgets::{
canvas::{Canvas, Circle, Line as CanvasLine, Map, MapResolution, Rectangle},
Axis, BarChart, Block, Borders, Cell, Chart, Dataset, Gauge, LineGauge, List, ListItem, Axis, BarChart, Block, Borders, Cell, Chart, Dataset, Gauge, LineGauge, List, ListItem,
Paragraph, Row, Sparkline, Table, Tabs, Wrap, Paragraph, Row, Sparkline, Table, Tabs, Wrap,
}, },
Frame, Frame,
}; };
use crate::app::App;
pub fn draw<B: Backend>(f: &mut Frame<B>, app: &mut App) { pub fn draw<B: Backend>(f: &mut Frame<B>, app: &mut App) {
let chunks = Layout::default() let chunks = Layout::default()
.constraints([Constraint::Length(3), Constraint::Min(0)].as_ref()) .constraints([Constraint::Length(3), Constraint::Min(0)].as_ref())

View file

@ -1,3 +1,9 @@
use std::{
error::Error,
io,
time::{Duration, Instant},
};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode},
execute, execute,
@ -11,11 +17,6 @@ use ratatui::{
widgets::{Block, Borders, Gauge}, widgets::{Block, Borders, Gauge},
Frame, Terminal, Frame, Terminal,
}; };
use std::{
error::Error,
io,
time::{Duration, Instant},
};
struct App { struct App {
progress1: u16, progress1: u16,

View file

@ -1,3 +1,8 @@
use std::{
io::{self, Stdout},
time::Duration,
};
use anyhow::{Context, Result}; use anyhow::{Context, Result};
use crossterm::{ use crossterm::{
event::{self, Event, KeyCode}, event::{self, Event, KeyCode},
@ -5,10 +10,6 @@ use crossterm::{
terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen},
}; };
use ratatui::{backend::CrosstermBackend, widgets::Paragraph, Terminal}; use ratatui::{backend::CrosstermBackend, widgets::Paragraph, Terminal};
use std::{
io::{self, Stdout},
time::Duration,
};
/// This is a bare minimum example. There are many approaches to running an application loop, so /// This is a bare minimum example. There are many approaches to running an application loop, so
/// this is not meant to be prescriptive. It is only meant to demonstrate the basic setup and /// this is not meant to be prescriptive. It is only meant to demonstrate the basic setup and

View file

@ -1,3 +1,12 @@
use std::{
collections::{BTreeMap, VecDeque},
error::Error,
io,
sync::mpsc,
thread,
time::{Duration, Instant},
};
use rand::distributions::{Distribution, Uniform}; use rand::distributions::{Distribution, Uniform};
use ratatui::{ use ratatui::{
backend::{Backend, CrosstermBackend}, backend::{Backend, CrosstermBackend},
@ -8,14 +17,6 @@ use ratatui::{
widgets::{Block, Gauge, LineGauge, List, ListItem, Paragraph, Widget}, widgets::{Block, Gauge, LineGauge, List, ListItem, Paragraph, Widget},
Frame, Terminal, TerminalOptions, Viewport, Frame, Terminal, TerminalOptions, Viewport,
}; };
use std::{
collections::{BTreeMap, VecDeque},
error::Error,
io,
sync::mpsc,
thread,
time::{Duration, Instant},
};
const NUM_DOWNLOADS: usize = 10; const NUM_DOWNLOADS: usize = 10;

View file

@ -1,3 +1,5 @@
use std::{error::Error, io};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode},
execute, execute,
@ -9,7 +11,6 @@ use ratatui::{
widgets::{Block, Borders}, widgets::{Block, Borders},
Frame, Terminal, Frame, Terminal,
}; };
use std::{error::Error, io};
fn main() -> Result<(), Box<dyn Error>> { fn main() -> Result<(), Box<dyn Error>> {
// setup terminal // setup terminal

View file

@ -1,3 +1,9 @@
use std::{
error::Error,
io,
time::{Duration, Instant},
};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEventKind}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEventKind},
execute, execute,
@ -11,11 +17,6 @@ use ratatui::{
widgets::{Block, Borders, List, ListItem, ListState}, widgets::{Block, Borders, List, ListItem, ListState},
Frame, Terminal, Frame, Terminal,
}; };
use std::{
error::Error,
io,
time::{Duration, Instant},
};
struct StatefulList<T> { struct StatefulList<T> {
state: ListState, state: ListState,

View file

@ -17,18 +17,19 @@
#![deny(clippy::all)] #![deny(clippy::all)]
#![warn(clippy::pedantic, clippy::nursery)] #![warn(clippy::pedantic, clippy::nursery)]
use std::error::Error; use std::{error::Error, io};
use std::io;
use crossterm::event::{self, Event, KeyCode}; use crossterm::{
use crossterm::terminal::{disable_raw_mode, enable_raw_mode}; event::{self, Event, KeyCode},
use crossterm::terminal::{EnterAlternateScreen, LeaveAlternateScreen}; terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen},
};
use ratatui::backend::{Backend, CrosstermBackend}; use ratatui::{
use ratatui::layout::Alignment; backend::{Backend, CrosstermBackend},
use ratatui::text::Line; layout::Alignment,
use ratatui::widgets::{Block, Borders, Paragraph}; text::Line,
use ratatui::{Frame, Terminal}; widgets::{Block, Borders, Paragraph},
Frame, Terminal,
};
type Result<T> = std::result::Result<T, Box<dyn Error>>; type Result<T> = std::result::Result<T, Box<dyn Error>>;

View file

@ -1,3 +1,9 @@
use std::{
error::Error,
io,
time::{Duration, Instant},
};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode},
execute, execute,
@ -11,11 +17,6 @@ use ratatui::{
widgets::{Block, Borders, Paragraph, Wrap}, widgets::{Block, Borders, Paragraph, Wrap},
Frame, Terminal, Frame, Terminal,
}; };
use std::{
error::Error,
io,
time::{Duration, Instant},
};
struct App { struct App {
scroll: u16, scroll: u16,

View file

@ -1,3 +1,10 @@
use std::{error::Error, io};
use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEventKind},
execute,
terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen},
};
use ratatui::{ use ratatui::{
backend::{Backend, CrosstermBackend}, backend::{Backend, CrosstermBackend},
layout::{Alignment, Constraint, Direction, Layout, Rect}, layout::{Alignment, Constraint, Direction, Layout, Rect},
@ -6,13 +13,6 @@ use ratatui::{
widgets::{Block, Borders, Clear, Paragraph, Wrap}, widgets::{Block, Borders, Clear, Paragraph, Wrap},
Frame, Terminal, Frame, Terminal,
}; };
use std::{error::Error, io};
use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEventKind},
execute,
terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen},
};
struct App { struct App {
show_popup: bool, show_popup: bool,

View file

@ -1,3 +1,9 @@
use std::{
error::Error,
io,
time::{Duration, Instant},
};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode},
execute, execute,
@ -14,11 +20,6 @@ use ratatui::{
widgets::{Block, Borders, Sparkline}, widgets::{Block, Borders, Sparkline},
Frame, Terminal, Frame, Terminal,
}; };
use std::{
error::Error,
io,
time::{Duration, Instant},
};
#[derive(Clone)] #[derive(Clone)]
pub struct RandomSignal { pub struct RandomSignal {

View file

@ -1,3 +1,5 @@
use std::{error::Error, io};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEventKind}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEventKind},
execute, execute,
@ -10,7 +12,6 @@ use ratatui::{
widgets::{Block, Borders, Cell, Row, Table, TableState}, widgets::{Block, Borders, Cell, Row, Table, TableState},
Frame, Terminal, Frame, Terminal,
}; };
use std::{error::Error, io};
struct App<'a> { struct App<'a> {
state: TableState, state: TableState,

View file

@ -1,3 +1,5 @@
use std::{error::Error, io};
use crossterm::{ use crossterm::{
event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEventKind}, event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEventKind},
execute, execute,
@ -11,7 +13,6 @@ use ratatui::{
widgets::{Block, Borders, Tabs}, widgets::{Block, Borders, Tabs},
Frame, Terminal, Frame, Terminal,
}; };
use std::{error::Error, io};
struct App<'a> { struct App<'a> {
pub titles: Vec<&'a str>, pub titles: Vec<&'a str>,

View file

@ -1,3 +1,5 @@
use std::{error::Error, io};
/// A simple example demonstrating how to handle user input. This is /// A simple example demonstrating how to handle user input. This is
/// a bit out of the scope of the library as it does not provide any /// a bit out of the scope of the library as it does not provide any
/// input handling out of the box. However, it may helps some to get /// input handling out of the box. However, it may helps some to get
@ -22,7 +24,6 @@ use ratatui::{
widgets::{Block, Borders, List, ListItem, Paragraph}, widgets::{Block, Borders, List, ListItem, Paragraph},
Frame, Terminal, Frame, Terminal,
}; };
use std::{error::Error, io};
use unicode_width::UnicodeWidthStr; use unicode_width::UnicodeWidthStr;
enum InputMode { enum InputMode {

View file

@ -1,4 +1,5 @@
# configuration for https://rust-lang.github.io/rustfmt/ # configuration for https://rust-lang.github.io/rustfmt/
group_imports = "StdExternalCrate"
imports_granularity = "Crate"
wrap_comments = true wrap_comments = true
comment_width = 100 comment_width = 100

View file

@ -5,12 +5,8 @@
//! [`Backend`]: trait.Backend.html //! [`Backend`]: trait.Backend.html
//! [`CrosstermBackend`]: struct.CrosstermBackend.html //! [`CrosstermBackend`]: struct.CrosstermBackend.html
use crate::{ use std::io::{self, Write};
backend::{Backend, ClearType},
buffer::Cell,
layout::Rect,
style::{Color, Modifier},
};
use crossterm::{ use crossterm::{
cursor::{Hide, MoveTo, Show}, cursor::{Hide, MoveTo, Show},
execute, queue, execute, queue,
@ -20,7 +16,13 @@ use crossterm::{
}, },
terminal::{self, Clear}, terminal::{self, Clear},
}; };
use std::io::{self, Write};
use crate::{
backend::{Backend, ClearType},
buffer::Cell,
layout::Rect,
style::{Color, Modifier},
};
/// A backend implementation using the `crossterm` crate. /// A backend implementation using the `crossterm` crate.
/// ///

View file

@ -27,8 +27,7 @@
use std::io; use std::io;
use crate::buffer::Cell; use crate::{buffer::Cell, layout::Rect};
use crate::layout::Rect;
#[cfg(feature = "termion")] #[cfg(feature = "termion")]
mod termion; mod termion;

View file

@ -4,16 +4,17 @@
//! [`Backend`]: crate::backend::Backend //! [`Backend`]: crate::backend::Backend
//! [`TermionBackend`]: crate::backend::TermionBackend //! [`TermionBackend`]: crate::backend::TermionBackend
use std::{
fmt,
io::{self, Write},
};
use crate::{ use crate::{
backend::{Backend, ClearType}, backend::{Backend, ClearType},
buffer::Cell, buffer::Cell,
layout::Rect, layout::Rect,
style::{Color, Modifier}, style::{Color, Modifier},
}; };
use std::{
fmt,
io::{self, Write},
};
/// A backend that uses the Termion library to draw content, manipulate the cursor, /// A backend that uses the Termion library to draw content, manipulate the cursor,
/// and clear the terminal screen. /// and clear the terminal screen.

View file

@ -4,13 +4,8 @@
//! [`Backend`]: trait.Backend.html //! [`Backend`]: trait.Backend.html
//! [`TermwizBackend`]: crate::backend::TermionBackend //! [`TermwizBackend`]: crate::backend::TermionBackend
use crate::{
backend::Backend,
buffer::Cell,
layout::Rect,
style::{Color, Modifier},
};
use std::{error::Error, io}; use std::{error::Error, io};
use termwiz::{ use termwiz::{
caps::Capabilities, caps::Capabilities,
cell::{AttributeChange, Blink, Intensity, Underline}, cell::{AttributeChange, Blink, Intensity, Underline},
@ -19,6 +14,13 @@ use termwiz::{
terminal::{buffered::BufferedTerminal, SystemTerminal, Terminal}, terminal::{buffered::BufferedTerminal, SystemTerminal, Terminal},
}; };
use crate::{
backend::Backend,
buffer::Cell,
layout::Rect,
style::{Color, Modifier},
};
/// Termwiz backend implementation for the [`Backend`] trait. /// Termwiz backend implementation for the [`Backend`] trait.
/// # Example /// # Example
/// ///

View file

@ -1,16 +1,18 @@
//! This module provides the `TestBackend` implementation for the [`Backend`] trait. //! This module provides the `TestBackend` implementation for the [`Backend`] trait.
//! It is used in the integration tests to verify the correctness of the library. //! It is used in the integration tests to verify the correctness of the library.
use std::{
fmt::{Display, Write},
io,
};
use unicode_width::UnicodeWidthStr;
use crate::{ use crate::{
backend::Backend, backend::Backend,
buffer::{Buffer, Cell}, buffer::{Buffer, Cell},
layout::Rect, layout::Rect,
}; };
use std::{
fmt::{Display, Write},
io,
};
use unicode_width::UnicodeWidthStr;
/// A backend used for the integration tests. /// A backend used for the integration tests.
/// ///

View file

@ -1,15 +1,17 @@
use std::{
cmp::min,
fmt::{Debug, Formatter, Result},
};
use unicode_segmentation::UnicodeSegmentation;
use unicode_width::UnicodeWidthStr;
#[allow(deprecated)] #[allow(deprecated)]
use crate::{ use crate::{
layout::Rect, layout::Rect,
style::{Color, Modifier, Style}, style::{Color, Modifier, Style},
text::{Line, Span, Spans}, text::{Line, Span, Spans},
}; };
use std::{
cmp::min,
fmt::{Debug, Formatter, Result},
};
use unicode_segmentation::UnicodeSegmentation;
use unicode_width::UnicodeWidthStr;
/// A buffer cell /// A buffer cell
#[derive(Debug, Clone, PartialEq, Eq)] #[derive(Debug, Clone, PartialEq, Eq)]

View file

@ -1,11 +1,15 @@
use std::cell::RefCell; use std::{
use std::cmp::{max, min}; cell::RefCell,
use std::collections::HashMap; cmp::{max, min},
use std::rc::Rc; collections::HashMap,
rc::Rc,
};
use cassowary::strength::{MEDIUM, REQUIRED, WEAK}; use cassowary::{
use cassowary::WeightedRelation::{EQ, GE, LE}; strength::{MEDIUM, REQUIRED, WEAK},
use cassowary::{Constraint as CassowaryConstraint, Expression, Solver, Variable}; Constraint as CassowaryConstraint, Expression, Solver, Variable,
WeightedRelation::{EQ, GE, LE},
};
#[derive(Debug, Hash, Clone, Copy, PartialEq, Eq)] #[derive(Debug, Hash, Clone, Copy, PartialEq, Eq)]
pub enum Corner { pub enum Corner {

View file

@ -1,11 +1,12 @@
//! `style` contains the primitives used to control how your user interface will look. //! `style` contains the primitives used to control how your user interface will look.
use bitflags::bitflags;
use std::{ use std::{
fmt::{self, Debug}, fmt::{self, Debug},
str::FromStr, str::FromStr,
}; };
use bitflags::bitflags;
#[derive(Debug, Clone, Copy, PartialEq, Eq)] #[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum Color { pub enum Color {

View file

@ -1,10 +1,11 @@
use std::io;
use crate::{ use crate::{
backend::{Backend, ClearType}, backend::{Backend, ClearType},
buffer::Buffer, buffer::Buffer,
layout::Rect, layout::Rect,
widgets::{StatefulWidget, Widget}, widgets::{StatefulWidget, Widget},
}; };
use std::io;
#[derive(Debug, Clone, PartialEq, Eq)] #[derive(Debug, Clone, PartialEq, Eq)]
pub enum Viewport { pub enum Viewport {

View file

@ -46,11 +46,13 @@
//! Span::raw(" title"), //! Span::raw(" title"),
//! ]); //! ]);
//! ``` //! ```
use crate::style::Style;
use std::{borrow::Cow, fmt::Debug}; use std::{borrow::Cow, fmt::Debug};
use unicode_segmentation::UnicodeSegmentation; use unicode_segmentation::UnicodeSegmentation;
use unicode_width::UnicodeWidthStr; use unicode_width::UnicodeWidthStr;
use crate::style::Style;
mod line; mod line;
mod masked; mod masked;
mod spans; mod spans;

View file

@ -143,9 +143,11 @@ impl<'a> From<Spans<'a>> for Line<'a> {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use crate::layout::Alignment; use crate::{
use crate::style::{Color, Modifier, Style}; layout::Alignment,
use crate::text::{Line, Span, Spans}; style::{Color, Modifier, Style},
text::{Line, Span, Spans},
};
#[test] #[test]
fn test_width() { fn test_width() {

View file

@ -86,9 +86,10 @@ impl<'a> From<Masked<'a>> for Text<'a> {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use std::borrow::Borrow;
use super::*; use super::*;
use crate::text::Line; use crate::text::Line;
use std::borrow::Borrow;
#[test] #[test]
fn test_masked_value() { fn test_masked_value() {

View file

@ -1,8 +1,7 @@
#![allow(deprecated)] #![allow(deprecated)]
use super::{Span, Style}; use super::{Span, Style};
use crate::layout::Alignment; use crate::{layout::Alignment, text::Line};
use crate::text::Line;
/// A string composed of clusters of graphemes, each with their own style. /// A string composed of clusters of graphemes, each with their own style.
/// ///
@ -137,8 +136,10 @@ impl<'a> From<Spans<'a>> for String {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use crate::style::{Color, Modifier, Style}; use crate::{
use crate::text::{Span, Spans}; style::{Color, Modifier, Style},
text::{Span, Spans},
};
#[test] #[test]
fn test_width() { fn test_width() {

View file

@ -1,3 +1,7 @@
use std::cmp::min;
use unicode_width::UnicodeWidthStr;
use crate::{ use crate::{
buffer::Buffer, buffer::Buffer,
layout::Rect, layout::Rect,
@ -5,8 +9,6 @@ use crate::{
symbols, symbols,
widgets::{Block, Widget}, widgets::{Block, Widget},
}; };
use std::cmp::min;
use unicode_width::UnicodeWidthStr;
/// Display multiple bars in a single widgets /// Display multiple bars in a single widgets
/// ///

View file

@ -10,6 +10,8 @@
//! [`Monthly`] has several controls for what should be displayed //! [`Monthly`] has several controls for what should be displayed
use std::collections::HashMap; use std::collections::HashMap;
use time::{Date, Duration, OffsetDateTime};
use crate::{ use crate::{
buffer::Buffer, buffer::Buffer,
layout::Rect, layout::Rect,
@ -18,8 +20,6 @@ use crate::{
widgets::{Block, Widget}, widgets::{Block, Widget},
}; };
use time::{Date, Duration, OffsetDateTime};
/// Display a month calendar for the month containing `display_date` /// Display a month calendar for the month containing `display_date`
pub struct Monthly<'a, S: DateStyler> { pub struct Monthly<'a, S: DateStyler> {
display_date: Date, display_date: Date,
@ -214,9 +214,10 @@ impl Default for CalendarEventStore {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use time::Month;
use super::*; use super::*;
use crate::style::Color; use crate::style::Color;
use time::Month;
#[test] #[test]
fn event_store() { fn event_store() {

View file

@ -27,12 +27,16 @@ impl Shape for Circle {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use crate::buffer::Buffer; use crate::{
use crate::layout::Rect; buffer::Buffer,
use crate::style::Color; layout::Rect,
use crate::symbols::Marker; style::Color,
use crate::widgets::canvas::{Canvas, Circle}; symbols::Marker,
use crate::widgets::Widget; widgets::{
canvas::{Canvas, Circle},
Widget,
},
};
#[test] #[test]
fn test_it_draws_a_circle() { fn test_it_draws_a_circle() {

View file

@ -5,12 +5,15 @@ mod points;
mod rectangle; mod rectangle;
mod world; mod world;
pub use self::circle::Circle; use std::fmt::Debug;
pub use self::line::Line;
pub use self::map::{Map, MapResolution};
pub use self::points::Points;
pub use self::rectangle::Rectangle;
pub use self::{
circle::Circle,
line::Line,
map::{Map, MapResolution},
points::Points,
rectangle::Rectangle,
};
use crate::{ use crate::{
buffer::Buffer, buffer::Buffer,
layout::Rect, layout::Rect,
@ -19,7 +22,6 @@ use crate::{
text::Line as TextLine, text::Line as TextLine,
widgets::{Block, Widget}, widgets::{Block, Widget},
}; };
use std::fmt::Debug;
/// Interface for all shapes that may be drawn on a Canvas widget. /// Interface for all shapes that may be drawn on a Canvas widget.
pub trait Shape { pub trait Shape {
@ -514,9 +516,10 @@ where
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use indoc::indoc;
use super::*; use super::*;
use crate::{buffer::Cell, symbols::Marker}; use crate::{buffer::Cell, symbols::Marker};
use indoc::indoc;
// helper to test the canvas checks that drawing a vertical and horizontal line // helper to test the canvas checks that drawing a vertical and horizontal line
// results in the expected output // results in the expected output

View file

@ -2,10 +2,9 @@ use std::{borrow::Cow, cmp::max};
use unicode_width::UnicodeWidthStr; use unicode_width::UnicodeWidthStr;
use crate::layout::Alignment;
use crate::{ use crate::{
buffer::Buffer, buffer::Buffer,
layout::{Constraint, Rect}, layout::{Alignment, Constraint, Rect},
style::{Color, Style}, style::{Color, Style},
symbols, symbols,
text::{Line as TextLine, Span}, text::{Line as TextLine, Span},

View file

@ -1,3 +1,5 @@
use unicode_width::UnicodeWidthStr;
use crate::{ use crate::{
buffer::Buffer, buffer::Buffer,
layout::{Corner, Rect}, layout::{Corner, Rect},
@ -5,7 +7,6 @@ use crate::{
text::Text, text::Text,
widgets::{Block, StatefulWidget, Widget}, widgets::{Block, StatefulWidget, Widget},
}; };
use unicode_width::UnicodeWidthStr;
#[derive(Debug, Clone, Default)] #[derive(Debug, Clone, Default)]
pub struct ListState { pub struct ListState {
@ -294,6 +295,7 @@ impl<'a> Widget for List<'a> {
mod tests { mod tests {
use std::borrow::Cow; use std::borrow::Cow;
use super::*;
use crate::{ use crate::{
assert_buffer_eq, assert_buffer_eq,
style::Color, style::Color,
@ -301,8 +303,6 @@ mod tests {
widgets::{Borders, StatefulWidget, Widget}, widgets::{Borders, StatefulWidget, Widget},
}; };
use super::*;
#[test] #[test]
fn test_list_state_selected() { fn test_list_state_selected() {
let mut state = ListState::default(); let mut state = ListState::default();

View file

@ -33,20 +33,22 @@ mod tabs;
use std::fmt::{self, Debug}; use std::fmt::{self, Debug};
pub use self::barchart::BarChart;
pub use self::block::{Block, BorderType, Padding};
pub use self::chart::{Axis, Chart, Dataset, GraphType};
pub use self::clear::Clear;
pub use self::gauge::{Gauge, LineGauge};
pub use self::list::{List, ListItem, ListState};
pub use self::paragraph::{Paragraph, Wrap};
pub use self::sparkline::{RenderDirection, Sparkline};
pub use self::table::{Cell, Row, Table, TableState};
pub use self::tabs::Tabs;
use crate::{buffer::Buffer, layout::Rect};
use bitflags::bitflags; use bitflags::bitflags;
pub use self::{
barchart::BarChart,
block::{Block, BorderType, Padding},
chart::{Axis, Chart, Dataset, GraphType},
clear::Clear,
gauge::{Gauge, LineGauge},
list::{List, ListItem, ListState},
paragraph::{Paragraph, Wrap},
sparkline::{RenderDirection, Sparkline},
table::{Cell, Row, Table, TableState},
tabs::Tabs,
};
use crate::{buffer::Buffer, layout::Rect};
bitflags! { bitflags! {
/// Bitflags that can be composed to set the visible borders essentially on the block widget. /// Bitflags that can be composed to set the visible borders essentially on the block widget.
#[derive(Clone, Copy, Default, PartialEq, Eq)] #[derive(Clone, Copy, Default, PartialEq, Eq)]

View file

@ -200,8 +200,8 @@ impl<'a> Widget for Paragraph<'a> {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use super::*; use super::*;
use crate::backend::TestBackend;
use crate::{ use crate::{
backend::TestBackend,
style::Color, style::Color,
text::{Line, Span}, text::{Line, Span},
widgets::Borders, widgets::Borders,

View file

@ -1,11 +1,9 @@
use std::collections::VecDeque; use std::{collections::VecDeque, vec::IntoIter};
use std::vec::IntoIter;
use unicode_segmentation::UnicodeSegmentation; use unicode_segmentation::UnicodeSegmentation;
use unicode_width::UnicodeWidthStr; use unicode_width::UnicodeWidthStr;
use crate::layout::Alignment; use crate::{layout::Alignment, text::StyledGrapheme};
use crate::text::StyledGrapheme;
const NBSP: &str = "\u{00a0}"; const NBSP: &str = "\u{00a0}";
@ -323,11 +321,14 @@ fn trim_offset(src: &str, mut offset: usize) -> &str {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use super::*;
use crate::style::Style;
use crate::text::{Line, Text};
use unicode_segmentation::UnicodeSegmentation; use unicode_segmentation::UnicodeSegmentation;
use super::*;
use crate::{
style::Style,
text::{Line, Text},
};
enum Composer { enum Composer {
WordWrapper { trim: bool }, WordWrapper { trim: bool },
LineTruncator, LineTruncator,

View file

@ -1,3 +1,5 @@
use std::cmp::min;
use crate::{ use crate::{
buffer::Buffer, buffer::Buffer,
layout::Rect, layout::Rect,
@ -5,7 +7,6 @@ use crate::{
symbols, symbols,
widgets::{Block, Widget}, widgets::{Block, Widget},
}; };
use std::cmp::min;
/// Widget to render a sparkline over one or more lines. /// Widget to render a sparkline over one or more lines.
/// ///

View file

@ -1,3 +1,5 @@
use unicode_width::UnicodeWidthStr;
use crate::{ use crate::{
buffer::Buffer, buffer::Buffer,
layout::{Constraint, Direction, Layout, Rect}, layout::{Constraint, Direction, Layout, Rect},
@ -5,7 +7,6 @@ use crate::{
text::Text, text::Text,
widgets::{Block, StatefulWidget, Widget}, widgets::{Block, StatefulWidget, Widget},
}; };
use unicode_width::UnicodeWidthStr;
/// A [`Cell`] contains the [`Text`] to be displayed in a [`Row`] of a [`Table`]. /// A [`Cell`] contains the [`Text`] to be displayed in a [`Row`] of a [`Table`].
/// ///

View file

@ -1,10 +1,11 @@
use std::error::Error;
use ratatui::{ use ratatui::{
backend::{Backend, TestBackend}, backend::{Backend, TestBackend},
layout::Rect, layout::Rect,
widgets::Paragraph, widgets::Paragraph,
Terminal, Terminal,
}; };
use std::error::Error;
#[test] #[test]
fn terminal_buffer_size_should_be_limited() { fn terminal_buffer_size_should_be_limited() {

View file

@ -1,7 +1,9 @@
use ratatui::backend::TestBackend; use ratatui::{
use ratatui::buffer::Buffer; backend::TestBackend,
use ratatui::widgets::{BarChart, Block, Borders}; buffer::Buffer,
use ratatui::Terminal; widgets::{BarChart, Block, Borders},
Terminal,
};
#[test] #[test]
fn widgets_barchart_not_full_below_max_value() { fn widgets_barchart_not_full_below_max_value() {

View file

@ -9,7 +9,6 @@ use ratatui::{
}, },
Terminal, Terminal,
}; };
use time::{Date, Month}; use time::{Date, Month};
fn test_render<W: Widget>(widget: W, expected: Buffer, size: (u16, u16)) { fn test_render<W: Widget>(widget: W, expected: Buffer, size: (u16, u16)) {

View file

@ -1,8 +1,7 @@
use ratatui::layout::Alignment;
use ratatui::{ use ratatui::{
backend::TestBackend, backend::TestBackend,
buffer::Buffer, buffer::Buffer,
layout::Rect, layout::{Alignment, Rect},
style::{Color, Style}, style::{Color, Style},
symbols, symbols,
text::Span, text::Span,