mirror of
https://github.com/ClementTsang/bottom
synced 2024-11-28 07:00:20 +00:00
deps: bump to ratatui 0.28 (#1618)
* deps: bump ratatui to 0.28, and crossterm to 0.28 * fix warnings
This commit is contained in:
parent
dc378ebd42
commit
16a2fd6a41
19 changed files with 77 additions and 60 deletions
50
Cargo.lock
generated
50
Cargo.lock
generated
|
@ -331,13 +331,14 @@ checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "compact_str"
|
name = "compact_str"
|
||||||
version = "0.7.1"
|
version = "0.8.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f"
|
checksum = "6050c3a16ddab2e412160b31f2c871015704239bca62f72f6e5f0be631d3f644"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"castaway",
|
"castaway",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"itoa",
|
"itoa",
|
||||||
|
"rustversion",
|
||||||
"ryu",
|
"ryu",
|
||||||
"static_assertions",
|
"static_assertions",
|
||||||
]
|
]
|
||||||
|
@ -391,15 +392,15 @@ checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crossterm"
|
name = "crossterm"
|
||||||
version = "0.27.0"
|
version = "0.28.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
|
checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.6.0",
|
"bitflags 2.6.0",
|
||||||
"crossterm_winapi",
|
"crossterm_winapi",
|
||||||
"libc",
|
|
||||||
"mio",
|
"mio",
|
||||||
"parking_lot",
|
"parking_lot",
|
||||||
|
"rustix",
|
||||||
"signal-hook",
|
"signal-hook",
|
||||||
"signal-hook-mio",
|
"signal-hook-mio",
|
||||||
"winapi",
|
"winapi",
|
||||||
|
@ -628,6 +629,12 @@ version = "0.5.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hermit-abi"
|
||||||
|
version = "0.3.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "humantime"
|
name = "humantime"
|
||||||
version = "2.1.0"
|
version = "2.1.0"
|
||||||
|
@ -656,6 +663,16 @@ version = "2.0.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
|
checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "instability"
|
||||||
|
version = "0.3.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b23a0c8dfe501baac4adf6ebbfa6eddf8f0c07f56b058cc1288017e32397846c"
|
||||||
|
dependencies = [
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ioctl-rs"
|
name = "ioctl-rs"
|
||||||
version = "0.1.6"
|
version = "0.1.6"
|
||||||
|
@ -790,14 +807,15 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mio"
|
name = "mio"
|
||||||
version = "0.8.11"
|
version = "1.0.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
|
checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"hermit-abi",
|
||||||
"libc",
|
"libc",
|
||||||
"log",
|
"log",
|
||||||
"wasi",
|
"wasi",
|
||||||
"windows-sys 0.48.0",
|
"windows-sys 0.52.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1043,18 +1061,18 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ratatui"
|
name = "ratatui"
|
||||||
version = "0.27.0"
|
version = "0.28.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d16546c5b5962abf8ce6e2881e722b4e0ae3b6f1a08a26ae3573c55853ca68d3"
|
checksum = "fdef7f9be5c0122f890d58bdf4d964349ba6a6161f705907526d891efabba57d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.6.0",
|
"bitflags 2.6.0",
|
||||||
"cassowary",
|
"cassowary",
|
||||||
"compact_str",
|
"compact_str",
|
||||||
"crossterm",
|
"crossterm",
|
||||||
|
"instability",
|
||||||
"itertools",
|
"itertools",
|
||||||
"lru",
|
"lru",
|
||||||
"paste",
|
"paste",
|
||||||
"stability",
|
|
||||||
"strum",
|
"strum",
|
||||||
"strum_macros",
|
"strum_macros",
|
||||||
"unicode-segmentation",
|
"unicode-segmentation",
|
||||||
|
@ -1353,16 +1371,6 @@ version = "1.13.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "stability"
|
|
||||||
version = "0.2.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac"
|
|
||||||
dependencies = [
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "starship-battery"
|
name = "starship-battery"
|
||||||
version = "0.10.0"
|
version = "0.10.0"
|
||||||
|
|
|
@ -82,7 +82,7 @@ backtrace = "0.3.74"
|
||||||
cfg-if = "1.0.0"
|
cfg-if = "1.0.0"
|
||||||
clap = { version = "4.5.20", features = ["default", "cargo", "wrap_help", "derive"] }
|
clap = { version = "4.5.20", features = ["default", "cargo", "wrap_help", "derive"] }
|
||||||
concat-string = "1.0.1"
|
concat-string = "1.0.1"
|
||||||
crossterm = "0.27.0"
|
crossterm = "0.28.1"
|
||||||
ctrlc = { version = "3.4.5", features = ["termination"] }
|
ctrlc = { version = "3.4.5", features = ["termination"] }
|
||||||
dirs = "5.0.1"
|
dirs = "5.0.1"
|
||||||
# Maybe consider https://github.com/rust-lang/rustc-hash for some cases too?
|
# Maybe consider https://github.com/rust-lang/rustc-hash for some cases too?
|
||||||
|
@ -97,7 +97,7 @@ serde = { version = "1.0.214", features = ["derive"] }
|
||||||
starship-battery = { version = "0.10.0", optional = true }
|
starship-battery = { version = "0.10.0", optional = true }
|
||||||
sysinfo = "=0.30.13"
|
sysinfo = "=0.30.13"
|
||||||
toml_edit = { version = "0.22.22", features = ["serde"] }
|
toml_edit = { version = "0.22.22", features = ["serde"] }
|
||||||
tui = { version = "0.27.0", package = "ratatui" }
|
tui = { version = "0.28.1", package = "ratatui" }
|
||||||
unicode-ellipsis = "0.2.0"
|
unicode-ellipsis = "0.2.0"
|
||||||
unicode-segmentation = "1.12.0"
|
unicode-segmentation = "1.12.0"
|
||||||
unicode-width = "0.2.0"
|
unicode-width = "0.2.0"
|
||||||
|
|
|
@ -178,10 +178,10 @@ impl Painter {
|
||||||
// TODO: Remove built-in cache?
|
// TODO: Remove built-in cache?
|
||||||
let split_loc = Layout::default()
|
let split_loc = Layout::default()
|
||||||
.constraints([Constraint::Min(0), Constraint::Length(1)])
|
.constraints([Constraint::Min(0), Constraint::Length(1)])
|
||||||
.split(f.size());
|
.split(f.area());
|
||||||
(split_loc[0], Some(split_loc[1]))
|
(split_loc[0], Some(split_loc[1]))
|
||||||
} else {
|
} else {
|
||||||
(f.size(), None)
|
(f.area(), None)
|
||||||
};
|
};
|
||||||
let terminal_height = terminal_size.height;
|
let terminal_height = terminal_size.height;
|
||||||
let terminal_width = terminal_size.width;
|
let terminal_width = terminal_size.width;
|
||||||
|
|
|
@ -203,13 +203,15 @@ impl<'a> Widget for PipeGauge<'a> {
|
||||||
let pipe_end =
|
let pipe_end =
|
||||||
start + (f64::from(end.saturating_sub(start)) * self.ratio).floor() as u16;
|
start + (f64::from(end.saturating_sub(start)) * self.ratio).floor() as u16;
|
||||||
for col in start..pipe_end {
|
for col in start..pipe_end {
|
||||||
buf.get_mut(col, row).set_symbol("|").set_style(Style {
|
if let Some(cell) = buf.cell_mut((col, row)) {
|
||||||
fg: self.gauge_style.fg,
|
cell.set_symbol("|").set_style(Style {
|
||||||
bg: None,
|
fg: self.gauge_style.fg,
|
||||||
add_modifier: self.gauge_style.add_modifier,
|
bg: None,
|
||||||
sub_modifier: self.gauge_style.sub_modifier,
|
add_modifier: self.gauge_style.add_modifier,
|
||||||
underline_color: None,
|
sub_modifier: self.gauge_style.sub_modifier,
|
||||||
});
|
underline_color: None,
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (end_label.width() as u16) < end.saturating_sub(start) {
|
if (end_label.width() as u16) < end.saturating_sub(start) {
|
||||||
|
|
|
@ -723,7 +723,10 @@ impl Widget for TimeChart<'_> {
|
||||||
// Sample the style of the entire widget. This sample will be used to reset the
|
// Sample the style of the entire widget. This sample will be used to reset the
|
||||||
// style of the cells that are part of the components put on top of the
|
// style of the cells that are part of the components put on top of the
|
||||||
// grah area (i.e legend and axis names).
|
// grah area (i.e legend and axis names).
|
||||||
let original_style = buf.get(area.left(), area.top()).style();
|
let Some(original_style) = buf.cell((area.left(), area.top())).map(|cell| cell.style())
|
||||||
|
else {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
let layout = self.layout(chart_area);
|
let layout = self.layout(chart_area);
|
||||||
let graph_area = layout.graph_area;
|
let graph_area = layout.graph_area;
|
||||||
|
@ -736,25 +739,28 @@ impl Widget for TimeChart<'_> {
|
||||||
|
|
||||||
if let Some(y) = layout.axis_x {
|
if let Some(y) = layout.axis_x {
|
||||||
for x in graph_area.left()..graph_area.right() {
|
for x in graph_area.left()..graph_area.right() {
|
||||||
buf.get_mut(x, y)
|
if let Some(cell) = buf.cell_mut((x, y)) {
|
||||||
.set_symbol(symbols::line::HORIZONTAL)
|
cell.set_symbol(symbols::line::HORIZONTAL)
|
||||||
.set_style(self.x_axis.style);
|
.set_style(self.x_axis.style);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(x) = layout.axis_y {
|
if let Some(x) = layout.axis_y {
|
||||||
for y in graph_area.top()..graph_area.bottom() {
|
for y in graph_area.top()..graph_area.bottom() {
|
||||||
buf.get_mut(x, y)
|
if let Some(cell) = buf.cell_mut((x, y)) {
|
||||||
.set_symbol(symbols::line::VERTICAL)
|
cell.set_symbol(symbols::line::VERTICAL)
|
||||||
.set_style(self.y_axis.style);
|
.set_style(self.y_axis.style);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(y) = layout.axis_x {
|
if let Some(y) = layout.axis_x {
|
||||||
if let Some(x) = layout.axis_y {
|
if let Some(x) = layout.axis_y {
|
||||||
buf.get_mut(x, y)
|
if let Some(cell) = buf.cell_mut((x, y)) {
|
||||||
.set_symbol(symbols::line::BOTTOM_LEFT)
|
cell.set_symbol(symbols::line::BOTTOM_LEFT)
|
||||||
.set_style(self.x_axis.style);
|
.set_style(self.x_axis.style);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -892,7 +898,7 @@ mod tests {
|
||||||
.iter()
|
.iter()
|
||||||
.enumerate()
|
.enumerate()
|
||||||
.map(|(i, (x, y, cell))| {
|
.map(|(i, (x, y, cell))| {
|
||||||
let expected_cell = expected.get(*x, *y);
|
let expected_cell = expected.cell((*x, *y)).unwrap();
|
||||||
indoc::formatdoc! {"
|
indoc::formatdoc! {"
|
||||||
{i}: at ({x}, {y})
|
{i}: at ({x}, {y})
|
||||||
expected: {expected_cell:?}
|
expected: {expected_cell:?}
|
||||||
|
|
|
@ -639,10 +639,11 @@ where
|
||||||
{
|
{
|
||||||
if ch != ' ' && ch != '\u{2800}' {
|
if ch != ' ' && ch != '\u{2800}' {
|
||||||
let (x, y) = (i % width, i / width);
|
let (x, y) = (i % width, i / width);
|
||||||
buf.get_mut(x as u16 + canvas_area.left(), y as u16 + canvas_area.top())
|
if let Some(cell) =
|
||||||
.set_char(ch)
|
buf.cell_mut((x as u16 + canvas_area.left(), y as u16 + canvas_area.top()))
|
||||||
.set_fg(fg)
|
{
|
||||||
.set_bg(bg);
|
cell.set_char(ch).set_fg(fg).set_bg(bg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
use tui::{
|
use tui::{
|
||||||
layout::{Alignment, Constraint, Direction, Layout, Rect},
|
layout::{Alignment, Constraint, Direction, Layout, Rect},
|
||||||
terminal::Frame,
|
|
||||||
text::{Line, Span},
|
text::{Line, Span},
|
||||||
widgets::{Block, Paragraph},
|
widgets::{Block, Paragraph},
|
||||||
|
Frame,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|
|
@ -3,9 +3,9 @@ use std::cmp::min;
|
||||||
|
|
||||||
use tui::{
|
use tui::{
|
||||||
layout::{Alignment, Constraint, Direction, Layout, Rect},
|
layout::{Alignment, Constraint, Direction, Layout, Rect},
|
||||||
terminal::Frame,
|
|
||||||
text::{Line, Span, Text},
|
text::{Line, Span, Text},
|
||||||
widgets::{Block, Borders, Paragraph, Wrap},
|
widgets::{Block, Borders, Paragraph, Wrap},
|
||||||
|
Frame,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|
|
@ -2,9 +2,9 @@ use std::cmp::{max, min};
|
||||||
|
|
||||||
use tui::{
|
use tui::{
|
||||||
layout::{Alignment, Rect},
|
layout::{Alignment, Rect},
|
||||||
terminal::Frame,
|
|
||||||
text::{Line, Span},
|
text::{Line, Span},
|
||||||
widgets::{Block, Borders, Paragraph, Wrap},
|
widgets::{Block, Borders, Paragraph, Wrap},
|
||||||
|
Frame,
|
||||||
};
|
};
|
||||||
use unicode_width::UnicodeWidthStr;
|
use unicode_width::UnicodeWidthStr;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
use tui::{
|
use tui::{
|
||||||
layout::{Constraint, Direction, Layout, Rect},
|
layout::{Constraint, Direction, Layout, Rect},
|
||||||
terminal::Frame,
|
|
||||||
text::{Line, Span},
|
text::{Line, Span},
|
||||||
widgets::{Block, Borders, Cell, Paragraph, Row, Table, Tabs},
|
widgets::{Block, Borders, Cell, Paragraph, Row, Table, Tabs},
|
||||||
|
Frame,
|
||||||
};
|
};
|
||||||
use unicode_segmentation::UnicodeSegmentation;
|
use unicode_segmentation::UnicodeSegmentation;
|
||||||
use unicode_width::UnicodeWidthStr;
|
use unicode_width::UnicodeWidthStr;
|
||||||
|
|
|
@ -2,8 +2,8 @@ use std::cmp::min;
|
||||||
|
|
||||||
use tui::{
|
use tui::{
|
||||||
layout::{Constraint, Direction, Layout, Rect},
|
layout::{Constraint, Direction, Layout, Rect},
|
||||||
terminal::Frame,
|
|
||||||
widgets::Block,
|
widgets::Block,
|
||||||
|
Frame,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|
|
@ -3,7 +3,7 @@ use std::borrow::Cow;
|
||||||
use tui::{
|
use tui::{
|
||||||
layout::{Constraint, Direction, Layout, Rect},
|
layout::{Constraint, Direction, Layout, Rect},
|
||||||
symbols::Marker,
|
symbols::Marker,
|
||||||
terminal::Frame,
|
Frame,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use tui::{layout::Rect, terminal::Frame};
|
use tui::{layout::Rect, Frame};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
app,
|
app,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use tui::{
|
use tui::{
|
||||||
layout::{Constraint, Direction, Layout, Rect},
|
layout::{Constraint, Direction, Layout, Rect},
|
||||||
terminal::Frame,
|
|
||||||
widgets::Block,
|
widgets::Block,
|
||||||
|
Frame,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|
|
@ -3,7 +3,7 @@ use std::borrow::Cow;
|
||||||
use tui::{
|
use tui::{
|
||||||
layout::{Constraint, Rect},
|
layout::{Constraint, Rect},
|
||||||
symbols::Marker,
|
symbols::Marker,
|
||||||
terminal::Frame,
|
Frame,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
use tui::{
|
use tui::{
|
||||||
layout::{Constraint, Direction, Layout, Rect},
|
layout::{Constraint, Direction, Layout, Rect},
|
||||||
terminal::Frame,
|
|
||||||
text::{Line, Span},
|
text::{Line, Span},
|
||||||
widgets::{Block, Paragraph},
|
widgets::{Block, Paragraph},
|
||||||
|
Frame,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{app::App, canvas::Painter, constants::*};
|
use crate::{app::App, canvas::Painter, constants::*};
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use tui::{
|
use tui::{
|
||||||
layout::{Constraint, Direction, Layout, Rect},
|
layout::{Constraint, Direction, Layout, Rect},
|
||||||
symbols::Marker,
|
symbols::Marker,
|
||||||
terminal::Frame,
|
|
||||||
text::Text,
|
text::Text,
|
||||||
widgets::{Block, Borders, Row, Table},
|
widgets::{Block, Borders, Row, Table},
|
||||||
|
Frame,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use tui::{
|
use tui::{
|
||||||
layout::{Alignment, Constraint, Direction, Layout, Rect},
|
layout::{Alignment, Constraint, Direction, Layout, Rect},
|
||||||
style::Style,
|
style::Style,
|
||||||
terminal::Frame,
|
|
||||||
text::{Line, Span},
|
text::{Line, Span},
|
||||||
widgets::{Block, Borders, Paragraph},
|
widgets::{Block, Borders, Paragraph},
|
||||||
|
Frame,
|
||||||
};
|
};
|
||||||
use unicode_segmentation::UnicodeSegmentation;
|
use unicode_segmentation::UnicodeSegmentation;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use tui::{layout::Rect, terminal::Frame};
|
use tui::{layout::Rect, Frame};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
app,
|
app,
|
||||||
|
|
Loading…
Reference in a new issue