chore: upgrade to Rust Edition 2024 (#1863)
https://doc.rust-lang.org/edition-guide/rust-2024/index.html Fixes #1727
This commit is contained in:
58
Cargo.lock
generated
58
Cargo.lock
generated
@@ -1,6 +1,6 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "addr2line"
|
||||
@@ -224,9 +224,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "2.9.0"
|
||||
version = "2.9.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd"
|
||||
checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
@@ -333,9 +333,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.2.22"
|
||||
version = "1.2.23"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1"
|
||||
checksum = "5f4ac86a9e5bc1e2b3449ab9d7d3a6a405e3d1bb28d7b9be8614f55846ae3766"
|
||||
dependencies = [
|
||||
"shlex",
|
||||
]
|
||||
@@ -674,7 +674,7 @@ version = "0.29.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
"crossterm_winapi",
|
||||
"derive_more",
|
||||
"document-features",
|
||||
@@ -900,9 +900,9 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
||||
|
||||
[[package]]
|
||||
name = "errno"
|
||||
version = "0.3.11"
|
||||
version = "0.3.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e"
|
||||
checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"windows-sys 0.59.0",
|
||||
@@ -1662,18 +1662,18 @@ version = "0.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
"libc",
|
||||
"redox_syscall",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "line-clipping"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ce9d1fb615cfbfabb113034d9fcd9e717f8f7ccbf5dde59af2bc2dd223f9d26"
|
||||
checksum = "51a1679740111eb63b7b4cb3c97b1d5d9f82e142292a25edcfdb4120a48b3880"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1830,7 +1830,7 @@ version = "0.29.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
"cfg-if",
|
||||
"cfg_aliases",
|
||||
"libc",
|
||||
@@ -2012,9 +2012,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
|
||||
|
||||
[[package]]
|
||||
name = "owo-colors"
|
||||
version = "4.2.0"
|
||||
version = "4.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564"
|
||||
checksum = "26995317201fa17f3656c36716aed4a7c81743a9634ac4c99c0eeda495db0cec"
|
||||
|
||||
[[package]]
|
||||
name = "palette"
|
||||
@@ -2531,7 +2531,7 @@ name = "ratatui-core"
|
||||
version = "0.1.0-alpha.4"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
"compact_str",
|
||||
"document-features",
|
||||
"hashbrown",
|
||||
@@ -2598,7 +2598,7 @@ dependencies = [
|
||||
name = "ratatui-widgets"
|
||||
version = "0.3.0-alpha.3"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
"color-eyre",
|
||||
"crossterm",
|
||||
"document-features",
|
||||
@@ -2653,7 +2653,7 @@ version = "0.5.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2777,7 +2777,7 @@ version = "1.0.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
"errno",
|
||||
"libc",
|
||||
"linux-raw-sys",
|
||||
@@ -2891,7 +2891,7 @@ version = "3.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
"core-foundation",
|
||||
"core-foundation-sys",
|
||||
"libc",
|
||||
@@ -3279,7 +3279,7 @@ checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
"fancy-regex",
|
||||
"filedescriptor",
|
||||
"finl_unicode",
|
||||
@@ -3550,7 +3550,7 @@ version = "0.6.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0fdb0c213ca27a9f57ab69ddb290fd80d970922355b83ae380b395d3986b8a2e"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
"bytes",
|
||||
"futures-util",
|
||||
"http",
|
||||
@@ -4053,9 +4053,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||
|
||||
[[package]]
|
||||
name = "windows-core"
|
||||
version = "0.61.0"
|
||||
version = "0.61.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980"
|
||||
checksum = "46ec44dc15085cea82cf9c78f85a9114c463a369786585ad2882d1ff0b0acf40"
|
||||
dependencies = [
|
||||
"windows-implement",
|
||||
"windows-interface",
|
||||
@@ -4094,18 +4094,18 @@ checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
|
||||
|
||||
[[package]]
|
||||
name = "windows-result"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252"
|
||||
checksum = "4b895b5356fc36103d0f64dd1e94dfa7ac5633f1c9dd6e80fe9ec4adef69e09d"
|
||||
dependencies = [
|
||||
"windows-link",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-strings"
|
||||
version = "0.4.0"
|
||||
version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97"
|
||||
checksum = "2a7ab927b2637c19b3dbe0965e75d8f2d30bdd697a1516191cad2ec4df8fb28a"
|
||||
dependencies = [
|
||||
"windows-link",
|
||||
]
|
||||
@@ -4207,7 +4207,7 @@ version = "0.39.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
|
||||
dependencies = [
|
||||
"bitflags 2.9.0",
|
||||
"bitflags 2.9.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -23,7 +23,7 @@ categories = ["command-line-interface"]
|
||||
readme = "README.md"
|
||||
license = "MIT"
|
||||
exclude = ["assets/*", ".github", "Makefile.toml", "CONTRIBUTING.md", "*.log", "tags"]
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
rust-version = "1.85.0"
|
||||
|
||||
[workspace.dependencies]
|
||||
|
||||
@@ -13,11 +13,11 @@ use std::time::{Duration, Instant};
|
||||
|
||||
use color_eyre::Result;
|
||||
use crossterm::event;
|
||||
use ratatui::DefaultTerminal;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::{Constraint, Layout, Position, Rect, Size};
|
||||
use ratatui::style::{Color, Style};
|
||||
use ratatui::widgets::{Widget, WidgetRef};
|
||||
use ratatui::DefaultTerminal;
|
||||
|
||||
fn main() -> Result<()> {
|
||||
color_eyre::install()?;
|
||||
|
||||
@@ -32,9 +32,9 @@ use std::time::Duration;
|
||||
|
||||
use color_eyre::Result;
|
||||
use crossterm::event::{Event, EventStream, KeyCode};
|
||||
use octocrab::params::pulls::Sort;
|
||||
use octocrab::params::Direction;
|
||||
use octocrab::Page;
|
||||
use octocrab::params::Direction;
|
||||
use octocrab::params::pulls::Sort;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::{Constraint, Layout, Rect};
|
||||
use ratatui::style::{Style, Stylize};
|
||||
|
||||
@@ -14,10 +14,10 @@ use std::{
|
||||
};
|
||||
|
||||
use color_eyre::Result;
|
||||
use crossterm::ExecutableCommand;
|
||||
use crossterm::event::{
|
||||
self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEvent, MouseEventKind,
|
||||
};
|
||||
use crossterm::ExecutableCommand;
|
||||
use itertools::Itertools;
|
||||
use ratatui::layout::{Constraint, Layout, Position, Rect};
|
||||
use ratatui::style::{Color, Stylize};
|
||||
|
||||
@@ -208,12 +208,14 @@ fn render_barchart(frame: &mut Frame, bar_chart: Rect) {
|
||||
}
|
||||
|
||||
fn render_line_chart(frame: &mut Frame, area: Rect) {
|
||||
let datasets = vec![Dataset::default()
|
||||
.name("Line from only 2 points".italic())
|
||||
.marker(symbols::Marker::Braille)
|
||||
.style(Style::default().fg(Color::Yellow))
|
||||
.graph_type(GraphType::Line)
|
||||
.data(&[(1., 1.), (4., 4.)])];
|
||||
let datasets = vec![
|
||||
Dataset::default()
|
||||
.name("Line from only 2 points".italic())
|
||||
.marker(symbols::Marker::Braille)
|
||||
.style(Style::default().fg(Color::Yellow))
|
||||
.graph_type(GraphType::Line)
|
||||
.data(&[(1., 1.), (4., 4.)]),
|
||||
];
|
||||
|
||||
let chart = Chart::new(datasets)
|
||||
.block(Block::bordered().title(Line::from("Line chart").cyan().bold().centered()))
|
||||
|
||||
@@ -22,12 +22,12 @@ use color_eyre::Result;
|
||||
use crossterm::event;
|
||||
use palette::convert::FromColorUnclamped;
|
||||
use palette::{Okhsv, Srgb};
|
||||
use ratatui::DefaultTerminal;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::{Constraint, Layout, Position, Rect};
|
||||
use ratatui::style::Color;
|
||||
use ratatui::text::Text;
|
||||
use ratatui::widgets::Widget;
|
||||
use ratatui::DefaultTerminal;
|
||||
|
||||
fn main() -> Result<()> {
|
||||
color_eyre::install()?;
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
use color_eyre::Result;
|
||||
use crossterm::event::{self, KeyCode};
|
||||
use itertools::Itertools;
|
||||
use ratatui::DefaultTerminal;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::Constraint::{self, Fill, Length, Max, Min, Percentage, Ratio};
|
||||
use ratatui::layout::{Flex, Layout, Rect};
|
||||
@@ -19,7 +20,6 @@ use ratatui::style::{Color, Style, Stylize};
|
||||
use ratatui::symbols::{self, line};
|
||||
use ratatui::text::{Line, Span, Text};
|
||||
use ratatui::widgets::{Block, Paragraph, Widget, Wrap};
|
||||
use ratatui::DefaultTerminal;
|
||||
use strum::{Display, EnumIter, FromRepr};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
@@ -239,15 +239,20 @@ impl From<Constraint> for ConstraintName {
|
||||
|
||||
impl Widget for &App {
|
||||
fn render(self, area: Rect, buf: &mut Buffer) {
|
||||
let [header_area, instructions_area, swap_legend_area, _, blocks_area] =
|
||||
Layout::vertical([
|
||||
Length(2), // header
|
||||
Length(2), // instructions
|
||||
Length(1), // swap key legend
|
||||
Length(1), // gap
|
||||
Fill(1), // blocks
|
||||
])
|
||||
.areas(area);
|
||||
let [
|
||||
header_area,
|
||||
instructions_area,
|
||||
swap_legend_area,
|
||||
_,
|
||||
blocks_area,
|
||||
] = Layout::vertical([
|
||||
Length(2), // header
|
||||
Length(2), // instructions
|
||||
Length(1), // swap key legend
|
||||
Length(1), // gap
|
||||
Fill(1), // blocks
|
||||
])
|
||||
.areas(area);
|
||||
|
||||
App::header().render(header_area, buf);
|
||||
App::instructions().render(instructions_area, buf);
|
||||
|
||||
@@ -17,7 +17,7 @@ use ratatui::widgets::{
|
||||
Block, Padding, Paragraph, Scrollbar, ScrollbarOrientation, ScrollbarState, StatefulWidget,
|
||||
Tabs, Widget,
|
||||
};
|
||||
use ratatui::{symbols, DefaultTerminal};
|
||||
use ratatui::{DefaultTerminal, symbols};
|
||||
use strum::{Display, EnumIter, FromRepr, IntoEnumIterator};
|
||||
|
||||
const SPACER_HEIGHT: u16 = 0;
|
||||
|
||||
@@ -5,10 +5,10 @@ use std::time::{Duration, Instant};
|
||||
use crossterm::event::{self, DisableMouseCapture, EnableMouseCapture, KeyCode};
|
||||
use crossterm::execute;
|
||||
use crossterm::terminal::{
|
||||
disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen,
|
||||
EnterAlternateScreen, LeaveAlternateScreen, disable_raw_mode, enable_raw_mode,
|
||||
};
|
||||
use ratatui::backend::{Backend, CrosstermBackend};
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::{Backend, CrosstermBackend};
|
||||
|
||||
use crate::app::App;
|
||||
use crate::ui;
|
||||
|
||||
@@ -4,8 +4,8 @@ use std::sync::mpsc;
|
||||
use std::time::Duration;
|
||||
use std::{io, thread};
|
||||
|
||||
use ratatui::backend::{Backend, TermionBackend};
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::{Backend, TermionBackend};
|
||||
use termion::event::Key;
|
||||
use termion::input::{MouseTerminal, TermRead};
|
||||
use termion::raw::IntoRawMode;
|
||||
@@ -78,12 +78,14 @@ fn events(tick_rate: Duration) -> mpsc::Receiver<Event> {
|
||||
}
|
||||
}
|
||||
});
|
||||
thread::spawn(move || loop {
|
||||
if let Err(err) = tx.send(Event::Tick) {
|
||||
eprintln!("{err}");
|
||||
break;
|
||||
thread::spawn(move || {
|
||||
loop {
|
||||
if let Err(err) = tx.send(Event::Tick) {
|
||||
eprintln!("{err}");
|
||||
break;
|
||||
}
|
||||
thread::sleep(tick_rate);
|
||||
}
|
||||
thread::sleep(tick_rate);
|
||||
});
|
||||
rx
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
use std::error::Error;
|
||||
use std::time::{Duration, Instant};
|
||||
|
||||
use ratatui::backend::TermwizBackend;
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::TermwizBackend;
|
||||
use termwiz::input::{InputEvent, KeyCode};
|
||||
use termwiz::terminal::Terminal as TermwizTerminal;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ use ratatui::widgets::{
|
||||
Axis, BarChart, Block, Cell, Chart, Dataset, Gauge, LineGauge, List, ListItem, Paragraph, Row,
|
||||
Sparkline, Table, Tabs, Wrap,
|
||||
};
|
||||
use ratatui::{symbols, Frame};
|
||||
use ratatui::{Frame, symbols};
|
||||
|
||||
use crate::app::App;
|
||||
|
||||
@@ -235,7 +235,9 @@ fn draw_charts(frame: &mut Frame, app: &mut App, area: Rect) {
|
||||
|
||||
fn draw_text(frame: &mut Frame, area: Rect) {
|
||||
let text = vec![
|
||||
text::Line::from("This is a paragraph with several lines. You can change style your text the way you want"),
|
||||
text::Line::from(
|
||||
"This is a paragraph with several lines. You can change style your text the way you want",
|
||||
),
|
||||
text::Line::from(""),
|
||||
text::Line::from(vec![
|
||||
Span::from("For example: "),
|
||||
@@ -250,16 +252,17 @@ fn draw_text(frame: &mut Frame, area: Rect) {
|
||||
Span::raw("Oh and if you didn't "),
|
||||
Span::styled("notice", Style::default().add_modifier(Modifier::ITALIC)),
|
||||
Span::raw(" you can "),
|
||||
Span::styled("automatically", Style::default().add_modifier(Modifier::BOLD)),
|
||||
Span::styled(
|
||||
"automatically",
|
||||
Style::default().add_modifier(Modifier::BOLD),
|
||||
),
|
||||
Span::raw(" "),
|
||||
Span::styled("wrap", Style::default().add_modifier(Modifier::REVERSED)),
|
||||
Span::raw(" your "),
|
||||
Span::styled("text", Style::default().add_modifier(Modifier::UNDERLINED)),
|
||||
Span::raw(".")
|
||||
Span::raw("."),
|
||||
]),
|
||||
text::Line::from(
|
||||
"One more thing is that it should display unicode characters: 10€"
|
||||
),
|
||||
text::Line::from("One more thing is that it should display unicode characters: 10€"),
|
||||
];
|
||||
let block = Block::bordered().title(Span::styled(
|
||||
"Footer",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use std::time::Duration;
|
||||
|
||||
use color_eyre::eyre::Context;
|
||||
use color_eyre::Result;
|
||||
use color_eyre::eyre::Context;
|
||||
use crossterm::event::{self, KeyCode};
|
||||
use itertools::Itertools;
|
||||
use ratatui::buffer::Buffer;
|
||||
@@ -13,7 +13,7 @@ use ratatui::{DefaultTerminal, Frame};
|
||||
use strum::{Display, EnumIter, FromRepr, IntoEnumIterator};
|
||||
|
||||
use crate::tabs::{AboutTab, EmailTab, RecipeTab, TracerouteTab, WeatherTab};
|
||||
use crate::{destroy, THEME};
|
||||
use crate::{THEME, destroy};
|
||||
|
||||
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
|
||||
pub struct App {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
use rand::Rng;
|
||||
use rand_chacha::rand_core::SeedableRng;
|
||||
use ratatui::Frame;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::{Flex, Layout, Rect};
|
||||
use ratatui::style::{Color, Style};
|
||||
use ratatui::text::Text;
|
||||
use ratatui::widgets::Widget;
|
||||
use ratatui::Frame;
|
||||
|
||||
/// delay the start of the animation so it doesn't start immediately
|
||||
const DELAY: usize = 120;
|
||||
|
||||
@@ -34,7 +34,7 @@ use crossterm::terminal::{EnterAlternateScreen, LeaveAlternateScreen};
|
||||
use ratatui::layout::Rect;
|
||||
use ratatui::{TerminalOptions, Viewport};
|
||||
|
||||
pub use self::colors::{color_from_oklab, RgbSwatch};
|
||||
pub use self::colors::{RgbSwatch, color_from_oklab};
|
||||
pub use self::theme::THEME;
|
||||
|
||||
fn main() -> Result<()> {
|
||||
|
||||
@@ -8,7 +8,7 @@ use ratatui::widgets::calendar::{CalendarEventStore, Monthly};
|
||||
use ratatui::widgets::{Bar, BarChart, BarGroup, Block, Clear, LineGauge, Padding, Widget};
|
||||
use time::OffsetDateTime;
|
||||
|
||||
use crate::{color_from_oklab, RgbSwatch, THEME};
|
||||
use crate::{RgbSwatch, THEME, color_from_oklab};
|
||||
|
||||
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
|
||||
pub struct WeatherTab {
|
||||
|
||||
@@ -12,6 +12,7 @@ use std::num::NonZeroUsize;
|
||||
|
||||
use color_eyre::Result;
|
||||
use crossterm::event::{self, KeyCode};
|
||||
use ratatui::DefaultTerminal;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::Constraint::{self, Fill, Length, Max, Min, Percentage, Ratio};
|
||||
use ratatui::layout::{Alignment, Flex, Layout, Rect};
|
||||
@@ -22,7 +23,6 @@ use ratatui::text::{Line, Text};
|
||||
use ratatui::widgets::{
|
||||
Block, Paragraph, Scrollbar, ScrollbarOrientation, ScrollbarState, StatefulWidget, Tabs, Widget,
|
||||
};
|
||||
use ratatui::DefaultTerminal;
|
||||
use strum::{Display, EnumIter, FromRepr, IntoEnumIterator};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
@@ -36,7 +36,7 @@ fn main() -> Result<()> {
|
||||
const EXAMPLE_DATA: &[(&str, &[Constraint])] = &[
|
||||
(
|
||||
"Min(u16) takes any excess space always",
|
||||
&[Length(10), Min(10), Max(10), Percentage(10), Ratio(1,10)],
|
||||
&[Length(10), Min(10), Max(10), Percentage(10), Ratio(1, 10)],
|
||||
),
|
||||
(
|
||||
"Fill(u16) takes any excess space always",
|
||||
@@ -44,20 +44,18 @@ const EXAMPLE_DATA: &[(&str, &[Constraint])] = &[
|
||||
),
|
||||
(
|
||||
"Here's all constraints in one line",
|
||||
&[Length(10), Min(10), Max(10), Percentage(10), Ratio(1,10), Fill(1)],
|
||||
),
|
||||
(
|
||||
"",
|
||||
&[Max(50), Min(50)],
|
||||
),
|
||||
(
|
||||
"",
|
||||
&[Max(20), Length(10)],
|
||||
),
|
||||
(
|
||||
"",
|
||||
&[Max(20), Length(10)],
|
||||
&[
|
||||
Length(10),
|
||||
Min(10),
|
||||
Max(10),
|
||||
Percentage(10),
|
||||
Ratio(1, 10),
|
||||
Fill(1),
|
||||
],
|
||||
),
|
||||
("", &[Max(50), Min(50)]),
|
||||
("", &[Max(20), Length(10)]),
|
||||
("", &[Max(20), Length(10)]),
|
||||
(
|
||||
"Min grows always but also allows Fill to grow",
|
||||
&[Percentage(50), Fill(1), Fill(2), Min(50)],
|
||||
@@ -67,44 +65,58 @@ const EXAMPLE_DATA: &[(&str, &[Constraint])] = &[
|
||||
&[Length(20), Length(20), Percentage(20)],
|
||||
),
|
||||
("", &[Length(20), Percentage(20), Length(20)]),
|
||||
("A lowest priority constraint will be broken before a high priority constraint", &[Ratio(1,4), Percentage(20)]),
|
||||
("`Length` is higher priority than `Percentage`", &[Percentage(20), Length(10)]),
|
||||
("`Min/Max` is higher priority than `Length`", &[Length(10), Max(20)]),
|
||||
(
|
||||
"A lowest priority constraint will be broken before a high priority constraint",
|
||||
&[Ratio(1, 4), Percentage(20)],
|
||||
),
|
||||
(
|
||||
"`Length` is higher priority than `Percentage`",
|
||||
&[Percentage(20), Length(10)],
|
||||
),
|
||||
(
|
||||
"`Min/Max` is higher priority than `Length`",
|
||||
&[Length(10), Max(20)],
|
||||
),
|
||||
("", &[Length(100), Min(20)]),
|
||||
("`Length` is higher priority than `Min/Max`", &[Max(20), Length(10)]),
|
||||
(
|
||||
"`Length` is higher priority than `Min/Max`",
|
||||
&[Max(20), Length(10)],
|
||||
),
|
||||
("", &[Min(20), Length(90)]),
|
||||
("Fill is the lowest priority and will fill any excess space", &[Fill(1), Ratio(1, 4)]),
|
||||
("Fill can be used to scale proportionally with other Fill blocks", &[Fill(1), Percentage(20), Fill(2)]),
|
||||
(
|
||||
"Fill is the lowest priority and will fill any excess space",
|
||||
&[Fill(1), Ratio(1, 4)],
|
||||
),
|
||||
(
|
||||
"Fill can be used to scale proportionally with other Fill blocks",
|
||||
&[Fill(1), Percentage(20), Fill(2)],
|
||||
),
|
||||
("", &[Ratio(1, 3), Percentage(20), Ratio(2, 3)]),
|
||||
("Legacy will stretch the last lowest priority constraint\nStretch will only stretch equal weighted constraints", &[Length(20), Length(15)]),
|
||||
(
|
||||
"Legacy will stretch the last lowest priority constraint\nStretch will only stretch equal weighted constraints",
|
||||
&[Length(20), Length(15)],
|
||||
),
|
||||
("", &[Percentage(20), Length(15)]),
|
||||
("`Fill(u16)` fills up excess space, but is lower priority to spacers.\ni.e. Fill will only have widths in Flex::Stretch and Flex::Legacy", &[Fill(1), Fill(1)]),
|
||||
(
|
||||
"`Fill(u16)` fills up excess space, but is lower priority to spacers.\ni.e. Fill will only have widths in Flex::Stretch and Flex::Legacy",
|
||||
&[Fill(1), Fill(1)],
|
||||
),
|
||||
("", &[Length(20), Length(20)]),
|
||||
(
|
||||
"When not using `Flex::Stretch` or `Flex::Legacy`,\n`Min(u16)` and `Max(u16)` collapse to their lowest values",
|
||||
&[Min(20), Max(20)],
|
||||
),
|
||||
(
|
||||
"",
|
||||
&[Max(20)],
|
||||
),
|
||||
("", &[Max(20)]),
|
||||
("", &[Min(20), Max(20), Length(20), Length(20)]),
|
||||
("", &[Fill(0), Fill(0)]),
|
||||
(
|
||||
"`Fill(1)` can be to scale with respect to other `Fill(2)`",
|
||||
&[Fill(1), Fill(2)],
|
||||
),
|
||||
(
|
||||
"",
|
||||
&[Fill(1), Min(10), Max(10), Fill(2)],
|
||||
),
|
||||
("", &[Fill(1), Min(10), Max(10), Fill(2)]),
|
||||
(
|
||||
"`Fill(0)` collapses if there are other non-zero `Fill(_)`\nconstraints. e.g. `[Fill(0), Fill(0), Fill(1)]`:",
|
||||
&[
|
||||
Fill(0),
|
||||
Fill(0),
|
||||
Fill(1),
|
||||
],
|
||||
&[Fill(0), Fill(0), Fill(1)],
|
||||
),
|
||||
];
|
||||
|
||||
|
||||
@@ -9,13 +9,13 @@ use std::time::Duration;
|
||||
|
||||
use color_eyre::Result;
|
||||
use crossterm::event::{self, KeyCode};
|
||||
use ratatui::DefaultTerminal;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::{Alignment, Constraint, Layout, Rect};
|
||||
use ratatui::style::palette::tailwind;
|
||||
use ratatui::style::{Color, Style, Stylize};
|
||||
use ratatui::text::{Line, Span};
|
||||
use ratatui::widgets::{Block, Borders, Gauge, Padding, Paragraph, Widget};
|
||||
use ratatui::DefaultTerminal;
|
||||
|
||||
const GAUGE1_COLOR: Color = tailwind::RED.c800;
|
||||
const GAUGE2_COLOR: Color = tailwind::GREEN.c800;
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
|
||||
use std::time::Duration;
|
||||
|
||||
use color_eyre::eyre::Context;
|
||||
use color_eyre::Result;
|
||||
use color_eyre::eyre::Context;
|
||||
use crossterm::event::{self, KeyCode};
|
||||
use ratatui::widgets::Paragraph;
|
||||
use ratatui::{DefaultTerminal, Frame};
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
use color_eyre::Result;
|
||||
use crossterm::event::{self, KeyCode};
|
||||
use itertools::Itertools;
|
||||
use ratatui::DefaultTerminal;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::Rect;
|
||||
use ratatui::style::Stylize;
|
||||
use ratatui::text::{Line, Text};
|
||||
use ratatui::widgets::Widget;
|
||||
use ratatui::DefaultTerminal;
|
||||
|
||||
fn main() -> Result<()> {
|
||||
color_eyre::install()?;
|
||||
|
||||
@@ -22,7 +22,7 @@ use ratatui::layout::{Constraint, Layout, Rect};
|
||||
use ratatui::style::{Color, Modifier, Style};
|
||||
use ratatui::text::{Line, Span};
|
||||
use ratatui::widgets::{Block, Gauge, LineGauge, List, ListItem, Paragraph, Widget};
|
||||
use ratatui::{symbols, Frame, Terminal, TerminalOptions, Viewport};
|
||||
use ratatui::{Frame, Terminal, TerminalOptions, Viewport, symbols};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
color_eyre::install()?;
|
||||
|
||||
@@ -17,7 +17,7 @@ use crossterm::execute;
|
||||
use ratatui::layout::{Position, Rect, Size};
|
||||
use ratatui::style::{Color, Stylize};
|
||||
use ratatui::text::Line;
|
||||
use ratatui::{symbols, DefaultTerminal, Frame};
|
||||
use ratatui::{DefaultTerminal, Frame, symbols};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
color_eyre::install()?;
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
///
|
||||
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
|
||||
/// [Color Eyre recipe]: https://ratatui.rs/recipes/apps/color-eyre
|
||||
use color_eyre::{eyre::bail, Result};
|
||||
use color_eyre::{Result, eyre::bail};
|
||||
use crossterm::event::{self, KeyCode};
|
||||
use ratatui::text::Line;
|
||||
use ratatui::widgets::{Block, Paragraph};
|
||||
|
||||
@@ -16,7 +16,7 @@ use ratatui::widgets::{
|
||||
Block, Borders, HighlightSpacing, List, ListItem, ListState, Padding, Paragraph,
|
||||
StatefulWidget, Widget, Wrap,
|
||||
};
|
||||
use ratatui::{symbols, DefaultTerminal};
|
||||
use ratatui::{DefaultTerminal, symbols};
|
||||
|
||||
const TODO_HEADER_STYLE: Style = Style::new().fg(SLATE.c100).bg(BLUE.c800);
|
||||
const NORMAL_ROW_BG: Color = SLATE.c950;
|
||||
@@ -67,12 +67,36 @@ impl Default for App {
|
||||
Self {
|
||||
should_exit: false,
|
||||
todo_list: TodoList::from_iter([
|
||||
(Status::Todo, "Rewrite everything with Rust!", "I can't hold my inner voice. He tells me to rewrite the complete universe with Rust"),
|
||||
(Status::Completed, "Rewrite all of your tui apps with Ratatui", "Yes, you heard that right. Go and replace your tui with Ratatui."),
|
||||
(Status::Todo, "Pet your cat", "Minnak loves to be pet by you! Don't forget to pet and give some treats!"),
|
||||
(Status::Todo, "Walk with your dog", "Max is bored, go walk with him!"),
|
||||
(Status::Completed, "Pay the bills", "Pay the train subscription!!!"),
|
||||
(Status::Completed, "Refactor list example", "If you see this info that means I completed this task!"),
|
||||
(
|
||||
Status::Todo,
|
||||
"Rewrite everything with Rust!",
|
||||
"I can't hold my inner voice. He tells me to rewrite the complete universe with Rust",
|
||||
),
|
||||
(
|
||||
Status::Completed,
|
||||
"Rewrite all of your tui apps with Ratatui",
|
||||
"Yes, you heard that right. Go and replace your tui with Ratatui.",
|
||||
),
|
||||
(
|
||||
Status::Todo,
|
||||
"Pet your cat",
|
||||
"Minnak loves to be pet by you! Don't forget to pet and give some treats!",
|
||||
),
|
||||
(
|
||||
Status::Todo,
|
||||
"Walk with your dog",
|
||||
"Max is bored, go walk with him!",
|
||||
),
|
||||
(
|
||||
Status::Completed,
|
||||
"Pay the bills",
|
||||
"Pay the train subscription!!!",
|
||||
),
|
||||
(
|
||||
Status::Completed,
|
||||
"Refactor list example",
|
||||
"If you see this info that means I completed this task!",
|
||||
),
|
||||
]),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
/// [`latest`]: https://github.com/ratatui/ratatui/tree/latest
|
||||
use std::{fs::File, time::Duration};
|
||||
|
||||
use color_eyre::eyre::Context;
|
||||
use color_eyre::Result;
|
||||
use color_eyre::eyre::Context;
|
||||
use crossterm::event::{self, Event, KeyCode};
|
||||
use ratatui::widgets::{Block, Paragraph};
|
||||
use ratatui::Frame;
|
||||
use tracing::{debug, info, instrument, trace, Level};
|
||||
use ratatui::widgets::{Block, Paragraph};
|
||||
use tracing::{Level, debug, info, instrument, trace};
|
||||
use tracing_appender::non_blocking;
|
||||
use tracing_appender::non_blocking::WorkerGuard;
|
||||
use tracing_subscriber::EnvFilter;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
use color_eyre::Result;
|
||||
use crossterm::event::{self, KeyCode};
|
||||
use rand::{rng, Rng};
|
||||
use rand::{Rng, rng};
|
||||
use ratatui::layout::{Constraint, Layout};
|
||||
use ratatui::style::{Color, Style, Stylize};
|
||||
use ratatui::text::Line;
|
||||
|
||||
@@ -1255,19 +1255,23 @@ mod tests {
|
||||
|
||||
dbg!(input);
|
||||
dbg!(input.len());
|
||||
dbg!(input
|
||||
.graphemes(true)
|
||||
.map(|symbol| (symbol, symbol.escape_unicode().to_string(), symbol.width()))
|
||||
.collect::<Vec<_>>());
|
||||
dbg!(input
|
||||
.chars()
|
||||
.map(|char| (
|
||||
char,
|
||||
char.escape_unicode().to_string(),
|
||||
char.width(),
|
||||
char.is_control()
|
||||
))
|
||||
.collect::<Vec<_>>());
|
||||
dbg!(
|
||||
input
|
||||
.graphemes(true)
|
||||
.map(|symbol| (symbol, symbol.escape_unicode().to_string(), symbol.width()))
|
||||
.collect::<Vec<_>>()
|
||||
);
|
||||
dbg!(
|
||||
input
|
||||
.chars()
|
||||
.map(|char| (
|
||||
char,
|
||||
char.escape_unicode().to_string(),
|
||||
char.width(),
|
||||
char.is_control()
|
||||
))
|
||||
.collect::<Vec<_>>()
|
||||
);
|
||||
|
||||
let mut buffer = Buffer::filled(Rect::new(0, 0, 7, 1), Cell::new("x"));
|
||||
buffer.set_string(0, 0, input, Style::new());
|
||||
|
||||
@@ -13,7 +13,7 @@ use lru::LruCache;
|
||||
|
||||
use self::strengths::{
|
||||
ALL_SEGMENT_GROW, FILL_GROW, GROW, LENGTH_SIZE_EQ, MAX_SIZE_EQ, MAX_SIZE_LE, MIN_SIZE_EQ,
|
||||
MIN_SIZE_GE, PERCENTAGE_SIZE_EQ, RATIO_SIZE_EQ, SPACER_SIZE_EQ, SPACE_GROW,
|
||||
MIN_SIZE_GE, PERCENTAGE_SIZE_EQ, RATIO_SIZE_EQ, SPACE_GROW, SPACER_SIZE_EQ,
|
||||
};
|
||||
use crate::layout::{Constraint, Direction, Flex, Margin, Rect};
|
||||
|
||||
|
||||
@@ -736,7 +736,10 @@ mod tests {
|
||||
#[case(Modifier::HIDDEN, "HIDDEN")]
|
||||
#[case(Modifier::CROSSED_OUT, "CROSSED_OUT")]
|
||||
#[case(Modifier::BOLD | Modifier::DIM, "BOLD | DIM")]
|
||||
#[case(Modifier::all(), "BOLD | DIM | ITALIC | UNDERLINED | SLOW_BLINK | RAPID_BLINK | REVERSED | HIDDEN | CROSSED_OUT")]
|
||||
#[case(
|
||||
Modifier::all(),
|
||||
"BOLD | DIM | ITALIC | UNDERLINED | SLOW_BLINK | RAPID_BLINK | REVERSED | HIDDEN | CROSSED_OUT"
|
||||
)]
|
||||
fn modifier_debug(#[case] modifier: Modifier, #[case] expected: &str) {
|
||||
assert_eq!(format!("{modifier:?}"), expected);
|
||||
}
|
||||
|
||||
@@ -403,8 +403,8 @@
|
||||
//! # Example
|
||||
//!
|
||||
//! ```rust
|
||||
//! use ratatui_core::style::palette::material::{BLUE, RED};
|
||||
//! use ratatui_core::style::Color;
|
||||
//! use ratatui_core::style::palette::material::{BLUE, RED};
|
||||
//!
|
||||
//! assert_eq!(RED.c500, Color::Rgb(244, 67, 54));
|
||||
//! assert_eq!(BLUE.c500, Color::Rgb(33, 150, 243));
|
||||
|
||||
@@ -268,8 +268,8 @@
|
||||
//! # Example
|
||||
//!
|
||||
//! ```rust
|
||||
//! use ratatui_core::style::palette::tailwind::{BLUE, RED};
|
||||
//! use ratatui_core::style::Color;
|
||||
//! use ratatui_core::style::palette::tailwind::{BLUE, RED};
|
||||
//!
|
||||
//! assert_eq!(RED.c500, Color::Rgb(239, 68, 68));
|
||||
//! assert_eq!(BLUE.c500, Color::Rgb(59, 130, 246));
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
//! Conversions from colors in the `palette` crate to [`Color`].
|
||||
|
||||
use ::palette::LinSrgb;
|
||||
use ::palette::bool_mask::LazySelect;
|
||||
use ::palette::num::{Arithmetics, MulSub, PartialCmp, Powf, Real};
|
||||
use ::palette::LinSrgb;
|
||||
use palette::stimulus::IntoStimulus;
|
||||
use palette::Srgb;
|
||||
use palette::stimulus::IntoStimulus;
|
||||
|
||||
use crate::style::Color;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//! Symbols and markers for drawing various widgets.
|
||||
|
||||
pub use marker::{Marker, DOT};
|
||||
pub use marker::{DOT, Marker};
|
||||
|
||||
pub mod bar;
|
||||
pub mod block;
|
||||
|
||||
@@ -1308,13 +1308,16 @@ mod tests {
|
||||
#[test]
|
||||
fn regression_1032() {
|
||||
let line = Line::from(
|
||||
"🦀 RFC8628 OAuth 2.0 Device Authorization GrantでCLIからGithubのaccess tokenを取得する"
|
||||
"🦀 RFC8628 OAuth 2.0 Device Authorization GrantでCLIからGithubのaccess tokenを取得する",
|
||||
);
|
||||
let mut buf = Buffer::empty(Rect::new(0, 0, 83, 1));
|
||||
line.render(buf.area, &mut buf);
|
||||
assert_eq!(buf, Buffer::with_lines([
|
||||
"🦀 RFC8628 OAuth 2.0 Device Authorization GrantでCLIからGithubのaccess tokenを取得 "
|
||||
]));
|
||||
assert_eq!(
|
||||
buf,
|
||||
Buffer::with_lines([
|
||||
"🦀 RFC8628 OAuth 2.0 Device Authorization GrantでCLIからGithubのaccess tokenを取得 "
|
||||
])
|
||||
);
|
||||
}
|
||||
|
||||
/// Documentary test to highlight the crab emoji width / length discrepancy
|
||||
|
||||
@@ -52,12 +52,12 @@ use ratatui_core::style::{Color, Modifier, Style};
|
||||
/// ```rust,no_run
|
||||
/// use std::io::{stderr, stdout};
|
||||
///
|
||||
/// use crossterm::terminal::{
|
||||
/// disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen,
|
||||
/// };
|
||||
/// use crossterm::ExecutableCommand;
|
||||
/// use ratatui::backend::CrosstermBackend;
|
||||
/// use crossterm::terminal::{
|
||||
/// EnterAlternateScreen, LeaveAlternateScreen, disable_raw_mode, enable_raw_mode,
|
||||
/// };
|
||||
/// use ratatui::Terminal;
|
||||
/// use ratatui::backend::CrosstermBackend;
|
||||
///
|
||||
/// let mut backend = CrosstermBackend::new(stdout());
|
||||
/// // or
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "ratatui-macros"
|
||||
version = "0.7.0-alpha.2"
|
||||
edition = "2021"
|
||||
edition.workspace = true
|
||||
authors = ["The Ratatui Developers"]
|
||||
description = "Macros for Ratatui"
|
||||
license = "MIT"
|
||||
|
||||
@@ -47,10 +47,10 @@ use termion::{color as tcolor, style as tstyle};
|
||||
/// ```rust,no_run
|
||||
/// use std::io::{stderr, stdout};
|
||||
///
|
||||
/// use ratatui::Terminal;
|
||||
/// use ratatui::backend::TermionBackend;
|
||||
/// use ratatui::termion::raw::IntoRawMode;
|
||||
/// use ratatui::termion::screen::IntoAlternateScreen;
|
||||
/// use ratatui::Terminal;
|
||||
///
|
||||
/// let writer = stdout().into_raw_mode()?.into_alternate_screen()?;
|
||||
/// let mut backend = TermionBackend::new(writer);
|
||||
@@ -402,13 +402,13 @@ impl FromTermion<tcolor::AnsiValue> for Color {
|
||||
|
||||
impl FromTermion<tcolor::Bg<tcolor::AnsiValue>> for Style {
|
||||
fn from_termion(value: tcolor::Bg<tcolor::AnsiValue>) -> Self {
|
||||
Self::default().bg(Color::Indexed(value.0 .0))
|
||||
Self::default().bg(Color::Indexed(value.0.0))
|
||||
}
|
||||
}
|
||||
|
||||
impl FromTermion<tcolor::Fg<tcolor::AnsiValue>> for Style {
|
||||
fn from_termion(value: tcolor::Fg<tcolor::AnsiValue>) -> Self {
|
||||
Self::default().fg(Color::Indexed(value.0 .0))
|
||||
Self::default().fg(Color::Indexed(value.0.0))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -420,13 +420,13 @@ impl FromTermion<tcolor::Rgb> for Color {
|
||||
|
||||
impl FromTermion<tcolor::Bg<tcolor::Rgb>> for Style {
|
||||
fn from_termion(value: tcolor::Bg<tcolor::Rgb>) -> Self {
|
||||
Self::default().bg(Color::Rgb(value.0 .0, value.0 .1, value.0 .2))
|
||||
Self::default().bg(Color::Rgb(value.0.0, value.0.1, value.0.2))
|
||||
}
|
||||
}
|
||||
|
||||
impl FromTermion<tcolor::Fg<tcolor::Rgb>> for Style {
|
||||
fn from_termion(value: tcolor::Fg<tcolor::Rgb>) -> Self {
|
||||
Self::default().fg(Color::Rgb(value.0 .0, value.0 .1, value.0 .2))
|
||||
Self::default().fg(Color::Rgb(value.0.0, value.0.1, value.0.2))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -46,8 +46,8 @@ use termwiz::terminal::{ScreenSize, SystemTerminal, Terminal};
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust,no_run
|
||||
/// use ratatui::backend::TermwizBackend;
|
||||
/// use ratatui::Terminal;
|
||||
/// use ratatui::backend::TermwizBackend;
|
||||
///
|
||||
/// let backend = TermwizBackend::new()?;
|
||||
/// let mut terminal = Terminal::new(backend)?;
|
||||
|
||||
@@ -20,7 +20,7 @@ use ratatui::layout::{Constraint, Layout, Rect};
|
||||
use ratatui::style::{Modifier, Style, Stylize};
|
||||
use ratatui::text::{Line, Span};
|
||||
use ratatui::widgets::{Gauge, LineGauge};
|
||||
use ratatui::{symbols, DefaultTerminal, Frame};
|
||||
use ratatui::{DefaultTerminal, Frame, symbols};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
color_eyre::install()?;
|
||||
|
||||
@@ -18,13 +18,13 @@ use core::time::Duration;
|
||||
|
||||
use color_eyre::Result;
|
||||
use crossterm::event::{self, KeyCode};
|
||||
use ratatui::DefaultTerminal;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::Constraint::{Length, Min};
|
||||
use ratatui::layout::{Layout, Rect};
|
||||
use ratatui::style::palette::tailwind;
|
||||
use ratatui::style::{Style, Stylize};
|
||||
use ratatui::widgets::{LineGauge, Paragraph, Widget};
|
||||
use ratatui::DefaultTerminal;
|
||||
|
||||
fn main() -> Result<()> {
|
||||
color_eyre::install()?;
|
||||
|
||||
@@ -22,7 +22,7 @@ use ratatui::layout::{Constraint, Layout, Rect};
|
||||
use ratatui::style::{Color, Style, Stylize};
|
||||
use ratatui::text::{Line, Span};
|
||||
use ratatui::widgets::{RenderDirection, Sparkline};
|
||||
use ratatui::{symbols, DefaultTerminal, Frame};
|
||||
use ratatui::{DefaultTerminal, Frame, symbols};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
color_eyre::install()?;
|
||||
|
||||
@@ -20,7 +20,7 @@ use ratatui::layout::{Alignment, Constraint, Layout, Offset, Rect};
|
||||
use ratatui::style::{Color, Style, Stylize};
|
||||
use ratatui::text::{Line, Span};
|
||||
use ratatui::widgets::{Block, Paragraph, Tabs};
|
||||
use ratatui::{symbols, DefaultTerminal, Frame};
|
||||
use ratatui::{DefaultTerminal, Frame, symbols};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
color_eyre::install()?;
|
||||
|
||||
@@ -87,8 +87,8 @@ pub mod title;
|
||||
///
|
||||
/// You may also use multiple titles like in the following:
|
||||
/// ```
|
||||
/// use ratatui::widgets::block::{Position, Title};
|
||||
/// use ratatui::widgets::Block;
|
||||
/// use ratatui::widgets::block::{Position, Title};
|
||||
///
|
||||
/// Block::new()
|
||||
/// .title("Title 1")
|
||||
@@ -348,8 +348,8 @@ impl<'a> Block<'a> {
|
||||
/// This example positions all titles on the bottom except the "top" title which explicitly sets
|
||||
/// [`Position::Top`].
|
||||
/// ```
|
||||
/// use ratatui::widgets::block::Position;
|
||||
/// use ratatui::widgets::Block;
|
||||
/// use ratatui::widgets::block::Position;
|
||||
///
|
||||
/// Block::new()
|
||||
/// .title_position(Position::Bottom)
|
||||
@@ -536,8 +536,8 @@ impl<'a> Block<'a> {
|
||||
///
|
||||
/// Draw a block nested within another block
|
||||
/// ```
|
||||
/// use ratatui::widgets::Block;
|
||||
/// use ratatui::Frame;
|
||||
/// use ratatui::widgets::Block;
|
||||
///
|
||||
/// # fn render_nested_block(frame: &mut Frame) {
|
||||
/// let outer_block = Block::bordered().title("Outer");
|
||||
|
||||
@@ -49,8 +49,8 @@ use strum::{Display, EnumString};
|
||||
/// Complete example
|
||||
/// ```
|
||||
/// use ratatui::layout::Alignment;
|
||||
/// use ratatui::widgets::block::{Position, Title};
|
||||
/// use ratatui::widgets::Block;
|
||||
/// use ratatui::widgets::block::{Position, Title};
|
||||
///
|
||||
/// Title::from("Title")
|
||||
/// .position(Position::Top)
|
||||
@@ -84,8 +84,8 @@ pub struct Title<'a> {
|
||||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// use ratatui::widgets::block::{Position, Title};
|
||||
/// use ratatui::widgets::Block;
|
||||
/// use ratatui::widgets::block::{Position, Title};
|
||||
///
|
||||
/// Block::new().title(Title::from("title").position(Position::Bottom));
|
||||
/// ```
|
||||
|
||||
@@ -596,8 +596,8 @@ impl<'a> Context<'a> {
|
||||
///
|
||||
/// ```
|
||||
/// use ratatui::style::Color;
|
||||
/// use ratatui::widgets::canvas::{Canvas, Line, Map, MapResolution, Rectangle};
|
||||
/// use ratatui::widgets::Block;
|
||||
/// use ratatui::widgets::canvas::{Canvas, Line, Map, MapResolution, Rectangle};
|
||||
///
|
||||
/// Canvas::default()
|
||||
/// .block(Block::bordered().title("Canvas"))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use line_clipping::{cohen_sutherland, LineSegment, Point, Window};
|
||||
use line_clipping::{LineSegment, Point, Window, cohen_sutherland};
|
||||
use ratatui_core::style::Color;
|
||||
|
||||
use crate::canvas::{Painter, Shape};
|
||||
|
||||
@@ -1521,10 +1521,12 @@ mod tests {
|
||||
(8.0, 9.0),
|
||||
(10.0, 10.0),
|
||||
];
|
||||
let chart = Chart::new(vec![Dataset::default()
|
||||
.data(&data)
|
||||
.marker(symbols::Marker::Dot)
|
||||
.graph_type(GraphType::Bar)])
|
||||
let chart = Chart::new(vec![
|
||||
Dataset::default()
|
||||
.data(&data)
|
||||
.marker(symbols::Marker::Dot)
|
||||
.graph_type(GraphType::Bar),
|
||||
])
|
||||
.x_axis(Axis::default().bounds([0.0, 10.0]))
|
||||
.y_axis(Axis::default().bounds([0.0, 10.0]));
|
||||
let area = Rect::new(0, 0, 11, 11);
|
||||
|
||||
@@ -11,9 +11,9 @@ use ratatui_core::widgets::Widget;
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// use ratatui::Frame;
|
||||
/// use ratatui::layout::Rect;
|
||||
/// use ratatui::widgets::{Block, Clear};
|
||||
/// use ratatui::Frame;
|
||||
///
|
||||
/// fn draw_on_clear(f: &mut Frame, area: Rect) {
|
||||
/// let block = Block::bordered().title("Block");
|
||||
|
||||
@@ -47,10 +47,10 @@ mod state;
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// use ratatui::Frame;
|
||||
/// use ratatui::layout::Rect;
|
||||
/// use ratatui::style::{Style, Stylize};
|
||||
/// use ratatui::widgets::{Block, List, ListDirection, ListItem};
|
||||
/// use ratatui::Frame;
|
||||
///
|
||||
/// # fn ui(frame: &mut Frame) {
|
||||
/// # let area = Rect::default();
|
||||
@@ -70,10 +70,10 @@ mod state;
|
||||
/// # Stateful example
|
||||
///
|
||||
/// ```rust
|
||||
/// use ratatui::Frame;
|
||||
/// use ratatui::layout::Rect;
|
||||
/// use ratatui::style::{Style, Stylize};
|
||||
/// use ratatui::widgets::{Block, List, ListState};
|
||||
/// use ratatui::Frame;
|
||||
///
|
||||
/// # fn ui(frame: &mut Frame) {
|
||||
/// # let area = Rect::default();
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use ratatui::Frame;
|
||||
/// use ratatui::layout::Rect;
|
||||
/// use ratatui::widgets::{List, ListState};
|
||||
/// use ratatui::Frame;
|
||||
///
|
||||
/// # fn ui(frame: &mut Frame) {
|
||||
/// # let area = Rect::default();
|
||||
|
||||
@@ -462,8 +462,7 @@ mod tests {
|
||||
let width = 20;
|
||||
let text =
|
||||
"abcd efghij klmnopabcd efgh ijklmnopabcdefg hijkl mnopab c d e f g h i j k l m n o";
|
||||
let text_multi_space =
|
||||
"abcd efghij klmnopabcd efgh ijklmnopabcdefg hijkl mnopab c d e f g h i j k l \
|
||||
let text_multi_space = "abcd efghij klmnopabcd efgh ijklmnopabcdefg hijkl mnopab c d e f g h i j k l \
|
||||
m n o";
|
||||
let (word_wrapper_single_space, _, _) =
|
||||
run_composer(Composer::WordWrapper { trim: true }, text, width as u16);
|
||||
@@ -516,8 +515,7 @@ mod tests {
|
||||
#[test]
|
||||
fn line_composer_max_line_width_of_1_double_width_characters() {
|
||||
let width = 1;
|
||||
let text =
|
||||
"コンピュータ上で文字を扱う場合、典型的には文字\naaa\naによる通信を行う場合にその\
|
||||
let text = "コンピュータ上で文字を扱う場合、典型的には文字\naaa\naによる通信を行う場合にその\
|
||||
両端点では、";
|
||||
let (word_wrapper, _, _) = run_composer(Composer::WordWrapper { trim: true }, text, width);
|
||||
let (line_truncator, _, _) = run_composer(Composer::LineTruncator, text, width);
|
||||
|
||||
@@ -12,7 +12,7 @@ use core::iter;
|
||||
use ratatui_core::buffer::Buffer;
|
||||
use ratatui_core::layout::Rect;
|
||||
use ratatui_core::style::Style;
|
||||
use ratatui_core::symbols::scrollbar::{Set, DOUBLE_HORIZONTAL, DOUBLE_VERTICAL};
|
||||
use ratatui_core::symbols::scrollbar::{DOUBLE_HORIZONTAL, DOUBLE_VERTICAL, Set};
|
||||
use ratatui_core::widgets::StatefulWidget;
|
||||
use strum::{Display, EnumString};
|
||||
use unicode_width::UnicodeWidthStr;
|
||||
@@ -43,12 +43,12 @@ use crate::polyfills::F64Polyfills;
|
||||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// use ratatui::Frame;
|
||||
/// use ratatui::layout::{Margin, Rect};
|
||||
/// use ratatui::text::Line;
|
||||
/// use ratatui::widgets::{
|
||||
/// Block, Borders, Paragraph, Scrollbar, ScrollbarOrientation, ScrollbarState, StatefulWidget,
|
||||
/// };
|
||||
/// use ratatui::Frame;
|
||||
///
|
||||
/// # fn render_paragraph_with_scrollbar(frame: &mut Frame, area: Rect) {
|
||||
/// let vertical_scroll = 0; // from app state
|
||||
|
||||
@@ -166,9 +166,9 @@ impl<'a> Sparkline<'a> {
|
||||
/// Create a `Sparkline` from a slice of `u64`:
|
||||
///
|
||||
/// ```
|
||||
/// use ratatui::Frame;
|
||||
/// use ratatui::layout::Rect;
|
||||
/// use ratatui::widgets::Sparkline;
|
||||
/// use ratatui::Frame;
|
||||
///
|
||||
/// # fn ui(frame: &mut Frame) {
|
||||
/// # let area = Rect::default();
|
||||
|
||||
@@ -199,10 +199,10 @@ mod state;
|
||||
/// user to scroll through the rows and select one of them.
|
||||
///
|
||||
/// ```rust
|
||||
/// use ratatui::Frame;
|
||||
/// use ratatui::layout::{Constraint, Rect};
|
||||
/// use ratatui::style::{Style, Stylize};
|
||||
/// use ratatui::widgets::{Block, Row, Table, TableState};
|
||||
/// use ratatui::Frame;
|
||||
///
|
||||
/// # fn ui(frame: &mut Frame) {
|
||||
/// # let area = Rect::default();
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// use ratatui::Frame;
|
||||
/// use ratatui::layout::{Constraint, Rect};
|
||||
/// use ratatui::widgets::{Row, Table, TableState};
|
||||
/// use ratatui::Frame;
|
||||
///
|
||||
/// # fn ui(frame: &mut Frame) {
|
||||
/// # let area = Rect::default();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use criterion::{criterion_group, Bencher, BenchmarkId, Criterion};
|
||||
use criterion::{Bencher, BenchmarkId, Criterion, criterion_group};
|
||||
use rand::Rng;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::{Direction, Rect};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use criterion::{criterion_group, BatchSize, Bencher, Criterion};
|
||||
use criterion::{BatchSize, Bencher, Criterion, criterion_group};
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::{Alignment, Rect};
|
||||
use ratatui::text::Line;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use criterion::{black_box, BenchmarkId, Criterion};
|
||||
use criterion::{BenchmarkId, Criterion, black_box};
|
||||
use ratatui::buffer::{Buffer, Cell};
|
||||
use ratatui::layout::Rect;
|
||||
use ratatui::text::Line;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use std::hint::black_box;
|
||||
|
||||
use criterion::{criterion_group, Criterion};
|
||||
use criterion::{Criterion, criterion_group};
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::{Alignment, Rect};
|
||||
use ratatui::style::Stylize;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use criterion::{criterion_group, BatchSize, Bencher, BenchmarkId, Criterion};
|
||||
use criterion::{BatchSize, Bencher, BenchmarkId, Criterion, criterion_group};
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::Rect;
|
||||
use ratatui::widgets::{List, ListItem, ListState, StatefulWidget, Widget};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use criterion::{black_box, criterion_group, BatchSize, Bencher, BenchmarkId, Criterion};
|
||||
use criterion::{BatchSize, Bencher, BenchmarkId, Criterion, black_box, criterion_group};
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::Rect;
|
||||
use ratatui::widgets::{Paragraph, Widget, Wrap};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use criterion::{black_box, criterion_group, BatchSize, Bencher, BenchmarkId, Criterion};
|
||||
use criterion::{BatchSize, Bencher, BenchmarkId, Criterion, black_box, criterion_group};
|
||||
use ratatui::layout::Rect;
|
||||
|
||||
fn rect_iters_benchmark(c: &mut Criterion) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use criterion::{criterion_group, Bencher, BenchmarkId, Criterion};
|
||||
use criterion::{Bencher, BenchmarkId, Criterion, criterion_group};
|
||||
use rand::Rng;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::Rect;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use criterion::{criterion_group, BatchSize, Bencher, BenchmarkId, Criterion};
|
||||
use criterion::{BatchSize, Bencher, BenchmarkId, Criterion, criterion_group};
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::{Constraint, Rect};
|
||||
use ratatui::widgets::{Row, StatefulWidget, Table, TableState, Widget};
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
use std::io::{self, stdout, Stdout};
|
||||
use std::io::{self, Stdout, stdout};
|
||||
|
||||
use ratatui_core::terminal::{Terminal, TerminalOptions};
|
||||
use ratatui_crossterm::CrosstermBackend;
|
||||
use ratatui_crossterm::crossterm::execute;
|
||||
use ratatui_crossterm::crossterm::terminal::{
|
||||
disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen,
|
||||
EnterAlternateScreen, LeaveAlternateScreen, disable_raw_mode, enable_raw_mode,
|
||||
};
|
||||
use ratatui_crossterm::CrosstermBackend;
|
||||
|
||||
/// A type alias for the default terminal type.
|
||||
///
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
//!
|
||||
//! ```rust,no_run
|
||||
//! use crossterm::event::{self, Event};
|
||||
//! use ratatui::text::Text;
|
||||
//! use ratatui::Frame;
|
||||
//! use ratatui::text::Text;
|
||||
//!
|
||||
//! fn main() {
|
||||
//! let mut terminal = ratatui::init();
|
||||
@@ -136,8 +136,8 @@
|
||||
//! The closure passed to the [`Terminal::draw`] method should handle the rendering of a full frame.
|
||||
//!
|
||||
//! ```rust,no_run
|
||||
//! use ratatui::widgets::Paragraph;
|
||||
//! use ratatui::Frame;
|
||||
//! use ratatui::widgets::Paragraph;
|
||||
//!
|
||||
//! fn run(terminal: &mut ratatui::DefaultTerminal) -> std::io::Result<()> {
|
||||
//! loop {
|
||||
@@ -187,9 +187,9 @@
|
||||
//! section of the [Ratatui Website] for more info.
|
||||
//!
|
||||
//! ```rust,no_run
|
||||
//! use ratatui::Frame;
|
||||
//! use ratatui::layout::{Constraint, Layout};
|
||||
//! use ratatui::widgets::Block;
|
||||
//! use ratatui::Frame;
|
||||
//!
|
||||
//! fn draw(frame: &mut Frame) {
|
||||
//! use Constraint::{Fill, Length, Min};
|
||||
@@ -229,11 +229,11 @@
|
||||
//! [Ratatui Website] for more info.
|
||||
//!
|
||||
//! ```rust,no_run
|
||||
//! use ratatui::Frame;
|
||||
//! use ratatui::layout::{Constraint, Layout};
|
||||
//! use ratatui::style::{Color, Modifier, Style, Stylize};
|
||||
//! use ratatui::text::{Line, Span};
|
||||
//! use ratatui::widgets::{Block, Paragraph};
|
||||
//! use ratatui::Frame;
|
||||
//!
|
||||
//! fn draw(frame: &mut Frame) {
|
||||
//! let areas = Layout::vertical([Constraint::Length(1); 4]).split(frame.area());
|
||||
@@ -351,7 +351,7 @@ pub use ratatui_termwiz::termwiz;
|
||||
|
||||
#[cfg(feature = "crossterm")]
|
||||
pub use crate::init::{
|
||||
init, init_with_options, restore, try_init, try_init_with_options, try_restore, DefaultTerminal,
|
||||
DefaultTerminal, init, init_with_options, restore, try_init, try_init_with_options, try_restore,
|
||||
};
|
||||
|
||||
/// Re-exports for the backend implementations.
|
||||
|
||||
@@ -45,4 +45,4 @@ pub use crate::style::{self, Color, Modifier, Style, Stylize};
|
||||
pub use crate::text::{self, Line, Masked, Span, Text};
|
||||
pub use crate::widgets::block::BlockExt;
|
||||
pub use crate::widgets::{StatefulWidget, Widget};
|
||||
pub use crate::{symbols, Frame, Terminal};
|
||||
pub use crate::{Frame, Terminal, symbols};
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
// not too happy about the redundancy in these tests,
|
||||
// but if that helps readability then it's ok i guess /shrug
|
||||
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::TestBackend;
|
||||
use ratatui::layout::{Constraint, Direction, Layout};
|
||||
use ratatui::text::Line;
|
||||
@@ -21,7 +22,6 @@ use ratatui::widgets::{
|
||||
Block, Borders, List, ListState, Row, Scrollbar, ScrollbarOrientation, ScrollbarState, Table,
|
||||
TableState,
|
||||
};
|
||||
use ratatui::Terminal;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||
struct AppState {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#![cfg(feature = "unstable-widget-ref")]
|
||||
|
||||
use std::any::{type_name, Any};
|
||||
use std::any::{Any, type_name};
|
||||
use std::cell::RefCell;
|
||||
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::TestBackend;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::Rect;
|
||||
use ratatui::style::{Color, Style, Stylize};
|
||||
use ratatui::widgets::{BarChart, Block, Paragraph};
|
||||
use ratatui::Terminal;
|
||||
|
||||
#[test]
|
||||
fn barchart_can_be_stylized() {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::TestBackend;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::style::{Color, Style};
|
||||
use ratatui::widgets::{Bar, BarChart, BarGroup, Block};
|
||||
use ratatui::Terminal;
|
||||
|
||||
// check that bars fill up correctly up to max value
|
||||
#[test]
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::TestBackend;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::{Alignment, Rect};
|
||||
use ratatui::style::{Color, Style};
|
||||
use ratatui::text::{Line, Span};
|
||||
use ratatui::widgets::{Block, Borders};
|
||||
use ratatui::Terminal;
|
||||
use rstest::rstest;
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#![cfg(feature = "widget-calendar")]
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::TestBackend;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::style::Style;
|
||||
use ratatui::widgets::calendar::{CalendarEventStore, Monthly};
|
||||
use ratatui::widgets::Widget;
|
||||
use ratatui::Terminal;
|
||||
use ratatui::widgets::calendar::{CalendarEventStore, Monthly};
|
||||
use time::{Date, Month};
|
||||
|
||||
#[track_caller]
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::TestBackend;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::style::{Color, Style};
|
||||
use ratatui::text::Span;
|
||||
use ratatui::widgets::canvas::Canvas;
|
||||
use ratatui::Terminal;
|
||||
|
||||
#[test]
|
||||
fn widgets_canvas_draw_labels() {
|
||||
|
||||
@@ -5,7 +5,7 @@ use ratatui::style::{Color, Style};
|
||||
use ratatui::text::{self, Span};
|
||||
use ratatui::widgets::GraphType::Line;
|
||||
use ratatui::widgets::{Axis, Block, Chart, Dataset};
|
||||
use ratatui::{symbols, Terminal};
|
||||
use ratatui::{Terminal, symbols};
|
||||
use rstest::rstest;
|
||||
|
||||
fn create_labels<'a>(labels: &'a [&'a str]) -> Vec<Span<'a>> {
|
||||
@@ -45,10 +45,12 @@ fn widgets_chart_can_render_on_small_areas(#[case] width: u16, #[case] height: u
|
||||
let mut terminal = Terminal::new(backend).unwrap();
|
||||
terminal
|
||||
.draw(|f| {
|
||||
let datasets = vec![Dataset::default()
|
||||
.marker(symbols::Marker::Braille)
|
||||
.style(Style::default().fg(Color::Magenta))
|
||||
.data(&[(0.0, 0.0)])];
|
||||
let datasets = vec![
|
||||
Dataset::default()
|
||||
.marker(symbols::Marker::Braille)
|
||||
.style(Style::default().fg(Color::Magenta))
|
||||
.data(&[(0.0, 0.0)]),
|
||||
];
|
||||
let chart = Chart::new(datasets)
|
||||
.block(Block::bordered().title("Plot"))
|
||||
.x_axis(
|
||||
@@ -261,10 +263,12 @@ fn widgets_chart_can_have_axis_with_zero_length_bounds() {
|
||||
|
||||
terminal
|
||||
.draw(|f| {
|
||||
let datasets = vec![Dataset::default()
|
||||
.marker(symbols::Marker::Braille)
|
||||
.style(Style::default().fg(Color::Magenta))
|
||||
.data(&[(0.0, 0.0)])];
|
||||
let datasets = vec![
|
||||
Dataset::default()
|
||||
.marker(symbols::Marker::Braille)
|
||||
.style(Style::default().fg(Color::Magenta))
|
||||
.data(&[(0.0, 0.0)]),
|
||||
];
|
||||
let chart = Chart::new(datasets)
|
||||
.block(Block::bordered().title("Plot"))
|
||||
.x_axis(
|
||||
@@ -297,14 +301,16 @@ fn widgets_chart_handles_overflows() {
|
||||
|
||||
terminal
|
||||
.draw(|f| {
|
||||
let datasets = vec![Dataset::default()
|
||||
.marker(symbols::Marker::Braille)
|
||||
.style(Style::default().fg(Color::Magenta))
|
||||
.data(&[
|
||||
(1_588_298_471.0, 1.0),
|
||||
(1_588_298_473.0, 0.0),
|
||||
(1_588_298_496.0, 1.0),
|
||||
])];
|
||||
let datasets = vec![
|
||||
Dataset::default()
|
||||
.marker(symbols::Marker::Braille)
|
||||
.style(Style::default().fg(Color::Magenta))
|
||||
.data(&[
|
||||
(1_588_298_471.0, 1.0),
|
||||
(1_588_298_473.0, 0.0),
|
||||
(1_588_298_496.0, 1.0),
|
||||
]),
|
||||
];
|
||||
let chart = Chart::new(datasets)
|
||||
.block(Block::bordered().title("Plot"))
|
||||
.x_axis(
|
||||
@@ -374,10 +380,12 @@ fn widgets_chart_top_line_styling_is_correct() {
|
||||
terminal
|
||||
.draw(|f| {
|
||||
let data: [(f64, f64); 2] = [(0.0, 1.0), (1.0, 1.0)];
|
||||
let widget = Chart::new(vec![Dataset::default()
|
||||
.data(&data)
|
||||
.graph_type(ratatui::widgets::GraphType::Line)
|
||||
.style(data_style)])
|
||||
let widget = Chart::new(vec![
|
||||
Dataset::default()
|
||||
.data(&data)
|
||||
.graph_type(ratatui::widgets::GraphType::Line)
|
||||
.style(data_style),
|
||||
])
|
||||
.y_axis(
|
||||
Axis::default()
|
||||
.title(Span::styled("abc", title_style))
|
||||
|
||||
@@ -4,7 +4,7 @@ use ratatui::layout::{Constraint, Direction, Layout, Rect};
|
||||
use ratatui::style::{Color, Modifier, Style};
|
||||
use ratatui::text::Span;
|
||||
use ratatui::widgets::{Block, Gauge, LineGauge};
|
||||
use ratatui::{symbols, Terminal};
|
||||
use ratatui::{Terminal, symbols};
|
||||
|
||||
#[test]
|
||||
fn widgets_gauge_renders() {
|
||||
|
||||
@@ -4,7 +4,7 @@ use ratatui::layout::Rect;
|
||||
use ratatui::style::{Color, Style};
|
||||
use ratatui::text::Line;
|
||||
use ratatui::widgets::{Block, Borders, HighlightSpacing, List, ListItem, ListState};
|
||||
use ratatui::{symbols, Terminal};
|
||||
use ratatui::{Terminal, symbols};
|
||||
use rstest::rstest;
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::TestBackend;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::Alignment;
|
||||
use ratatui::text::{Line, Span, Text};
|
||||
use ratatui::widgets::{Block, Padding, Paragraph, Wrap};
|
||||
use ratatui::Terminal;
|
||||
|
||||
/// Tests the [`Paragraph`] widget against the expected [`Buffer`] by rendering it onto an equal
|
||||
/// area and comparing the rendered and expected content.
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#![allow(deprecated)]
|
||||
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::TestBackend;
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::Constraint;
|
||||
use ratatui::style::{Color, Modifier, Style};
|
||||
use ratatui::text::{Line, Span};
|
||||
use ratatui::widgets::{Block, Borders, Cell, HighlightSpacing, Row, Table, TableState};
|
||||
use ratatui::Terminal;
|
||||
use rstest::rstest;
|
||||
|
||||
#[rstest]
|
||||
|
||||
@@ -3,7 +3,7 @@ use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::Rect;
|
||||
use ratatui::style::Style;
|
||||
use ratatui::widgets::Tabs;
|
||||
use ratatui::{symbols, Terminal};
|
||||
use ratatui::{Terminal, symbols};
|
||||
|
||||
#[test]
|
||||
fn widgets_tabs_should_not_panic_on_narrow_areas() {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "xtask"
|
||||
edition = "2021"
|
||||
edition.workspace = true
|
||||
publish = false
|
||||
license.workspace = true
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ use self::clippy::Clippy;
|
||||
use self::docs::Docs;
|
||||
use self::format::Format;
|
||||
use self::typos::Typos;
|
||||
use crate::{run_cargo, ExpressionExt, Run};
|
||||
use crate::{ExpressionExt, Run, run_cargo};
|
||||
|
||||
mod backend;
|
||||
mod check;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use clap::ValueEnum;
|
||||
use color_eyre::Result;
|
||||
|
||||
use crate::{run_cargo, Run};
|
||||
use crate::{Run, run_cargo};
|
||||
|
||||
/// Check backend
|
||||
#[derive(Clone, Debug, clap::Args)]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use color_eyre::Result;
|
||||
|
||||
use crate::{run_cargo, Run};
|
||||
use crate::{Run, run_cargo};
|
||||
|
||||
/// Run cargo check
|
||||
#[derive(Clone, Debug, clap::Args)]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use color_eyre::Result;
|
||||
|
||||
use crate::{run_cargo, Run};
|
||||
use crate::{Run, run_cargo};
|
||||
|
||||
/// Run clippy on the project
|
||||
#[derive(Clone, Debug, clap::Args)]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use color_eyre::Result;
|
||||
|
||||
use crate::{run_cargo, Run};
|
||||
use crate::{Run, run_cargo};
|
||||
|
||||
/// Generate code coverage report
|
||||
#[derive(Clone, Debug, clap::Args)]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use color_eyre::Result;
|
||||
use itertools::{Itertools, Position};
|
||||
|
||||
use crate::{run_cargo_nightly, workspace_libs, Run};
|
||||
use crate::{Run, run_cargo_nightly, workspace_libs};
|
||||
|
||||
/// Check documentation for errors and warnings
|
||||
#[derive(Clone, Debug, clap::Args)]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use color_eyre::Result;
|
||||
use duct::cmd;
|
||||
|
||||
use crate::{run_cargo_nightly, ExpressionExt, Run};
|
||||
use crate::{ExpressionExt, Run, run_cargo_nightly};
|
||||
|
||||
/// Check for formatting issues in the project
|
||||
#[derive(Clone, Debug, clap::Args)]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use color_eyre::Result;
|
||||
|
||||
use crate::{run_cargo, workspace_libs, Run};
|
||||
use crate::{Run, run_cargo, workspace_libs};
|
||||
|
||||
/// Check if README.md is up-to-date (using cargo-rdme)
|
||||
#[derive(Clone, Debug, clap::Args)]
|
||||
|
||||
@@ -10,8 +10,8 @@ use std::process::Output;
|
||||
use cargo_metadata::{MetadataCommand, TargetKind};
|
||||
use clap::Parser;
|
||||
use clap_verbosity_flag::{InfoLevel, Verbosity};
|
||||
use color_eyre::eyre::Context;
|
||||
use color_eyre::Result;
|
||||
use color_eyre::eyre::Context;
|
||||
use commands::Command;
|
||||
use duct::cmd;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user