mirror of
https://github.com/ratatui-org/ratatui
synced 2024-11-21 20:23:11 +00:00
chore: rename ratatui-org to ratatui (#1334)
All urls updated to point at https://github.com/ratatui To update your repository remotes, you can run the following commands: ```shell git remote set-url origin https://github.com/ratatui/ratatui ```
This commit is contained in:
parent
6d1bd99544
commit
23516bce76
75 changed files with 1663 additions and 1657 deletions
9
.github/CODEOWNERS
vendored
9
.github/CODEOWNERS
vendored
|
@ -1,8 +1,11 @@
|
||||||
# See https://help.github.com/articles/about-codeowners/
|
# See <https://help.github.com/articles/about-codeowners/>
|
||||||
|
|
||||||
# for more info about CODEOWNERS file
|
# for more info about CODEOWNERS file
|
||||||
|
|
||||||
# It uses the same pattern rule for gitignore file
|
# It uses the same pattern rule for gitignore file
|
||||||
# https://git-scm.com/docs/gitignore#_pattern_format
|
|
||||||
|
# <https://git-scm.com/docs/gitignore#_pattern_format>
|
||||||
|
|
||||||
# Maintainers
|
# Maintainers
|
||||||
* @ratatui-org/maintainers
|
|
||||||
|
* @ratatui/maintainers
|
||||||
|
|
|
@ -4,7 +4,7 @@ This document contains a list of breaking changes in each version and some notes
|
||||||
between versions. It is compiled manually from the commit history and changelog. We also tag PRs on
|
between versions. It is compiled manually from the commit history and changelog. We also tag PRs on
|
||||||
GitHub with a [breaking change] label.
|
GitHub with a [breaking change] label.
|
||||||
|
|
||||||
[breaking change]: (https://github.com/ratatui-org/ratatui/issues?q=label%3A%22breaking+change%22)
|
[breaking change]: (https://github.com/ratatui/ratatui/issues?q=label%3A%22breaking+change%22)
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
|
|
||||||
|
@ -69,14 +69,14 @@ This is a quick summary of the sections below:
|
||||||
|
|
||||||
### `Backend::size` returns `Size` instead of `Rect` ([#1254])
|
### `Backend::size` returns `Size` instead of `Rect` ([#1254])
|
||||||
|
|
||||||
[#1254]: https://github.com/ratatui-org/ratatui/pull/1254
|
[#1254]: https://github.com/ratatui/ratatui/pull/1254
|
||||||
|
|
||||||
The `Backend::size` method returns a `Size` instead of a `Rect`.
|
The `Backend::size` method returns a `Size` instead of a `Rect`.
|
||||||
There is no need for the position here as it was always 0,0.
|
There is no need for the position here as it was always 0,0.
|
||||||
|
|
||||||
### `Backend` trait migrates to `get/set_cursor_position` ([#1284])
|
### `Backend` trait migrates to `get/set_cursor_position` ([#1284])
|
||||||
|
|
||||||
[#1284]: https://github.com/ratatui-org/ratatui/pull/1284
|
[#1284]: https://github.com/ratatui/ratatui/pull/1284
|
||||||
|
|
||||||
If you just use the types implementing the `Backend` trait, you will see deprecation hints but
|
If you just use the types implementing the `Backend` trait, you will see deprecation hints but
|
||||||
nothing is a breaking change for you.
|
nothing is a breaking change for you.
|
||||||
|
@ -87,7 +87,7 @@ and a default implementation for them exists.
|
||||||
|
|
||||||
### Ratatui now requires Crossterm 0.28.0 ([#1278])
|
### Ratatui now requires Crossterm 0.28.0 ([#1278])
|
||||||
|
|
||||||
[#1278]: https://github.com/ratatui-org/ratatui/pull/1278
|
[#1278]: https://github.com/ratatui/ratatui/pull/1278
|
||||||
|
|
||||||
Crossterm is updated to version 0.28.0, which is a semver incompatible version with the previous
|
Crossterm is updated to version 0.28.0, which is a semver incompatible version with the previous
|
||||||
version (0.27.0). Ratatui re-exports the version of crossterm that it is compatible with under
|
version (0.27.0). Ratatui re-exports the version of crossterm that it is compatible with under
|
||||||
|
@ -95,8 +95,8 @@ version (0.27.0). Ratatui re-exports the version of crossterm that it is compati
|
||||||
|
|
||||||
### `Axis::labels()` now accepts `IntoIterator<Into<Line>>` ([#1273] and [#1283])
|
### `Axis::labels()` now accepts `IntoIterator<Into<Line>>` ([#1273] and [#1283])
|
||||||
|
|
||||||
[#1273]: https://github.com/ratatui-org/ratatui/pull/1173
|
[#1273]: https://github.com/ratatui/ratatui/pull/1173
|
||||||
[#1283]: https://github.com/ratatui-org/ratatui/pull/1283
|
[#1283]: https://github.com/ratatui/ratatui/pull/1283
|
||||||
|
|
||||||
Previously Axis::labels accepted `Vec<Span>`. Any code that uses conversion methods that infer the
|
Previously Axis::labels accepted `Vec<Span>`. Any code that uses conversion methods that infer the
|
||||||
type will need to be rewritten as the compiler cannot infer the correct type.
|
type will need to be rewritten as the compiler cannot infer the correct type.
|
||||||
|
@ -108,7 +108,7 @@ type will need to be rewritten as the compiler cannot infer the correct type.
|
||||||
|
|
||||||
### `Layout::init_cache` no longer returns bool and takes a `NonZeroUsize` instead of `usize` ([#1245])
|
### `Layout::init_cache` no longer returns bool and takes a `NonZeroUsize` instead of `usize` ([#1245])
|
||||||
|
|
||||||
[#1245]: https://github.com/ratatui-org/ratatui/pull/1245
|
[#1245]: https://github.com/ratatui/ratatui/pull/1245
|
||||||
|
|
||||||
```diff
|
```diff
|
||||||
- let is_initialized = Layout::init_cache(100);
|
- let is_initialized = Layout::init_cache(100);
|
||||||
|
@ -117,7 +117,7 @@ type will need to be rewritten as the compiler cannot infer the correct type.
|
||||||
|
|
||||||
### `ratatui::terminal` module is now private ([#1160])
|
### `ratatui::terminal` module is now private ([#1160])
|
||||||
|
|
||||||
[#1160]: https://github.com/ratatui-org/ratatui/pull/1160
|
[#1160]: https://github.com/ratatui/ratatui/pull/1160
|
||||||
|
|
||||||
The `terminal` module is now private and can not be used directly. The types under this module are
|
The `terminal` module is now private and can not be used directly. The types under this module are
|
||||||
exported from the root of the crate. This reduces clashes with other modules in the backends that
|
exported from the root of the crate. This reduces clashes with other modules in the backends that
|
||||||
|
@ -130,21 +130,21 @@ are also named terminal, and confusion about module exports for newer Rust users
|
||||||
|
|
||||||
### `ToText` no longer has a lifetime ([#1234])
|
### `ToText` no longer has a lifetime ([#1234])
|
||||||
|
|
||||||
[#1234]: https://github.com/ratatui-org/ratatui/pull/1234
|
[#1234]: https://github.com/ratatui/ratatui/pull/1234
|
||||||
|
|
||||||
This change simplifies the trait and makes it easier to implement.
|
This change simplifies the trait and makes it easier to implement.
|
||||||
|
|
||||||
### `Frame::size` is deprecated and renamed to `Frame::area`
|
### `Frame::size` is deprecated and renamed to `Frame::area`
|
||||||
|
|
||||||
[#1293]: https://github.com/ratatui-org/ratatui/pull/1293
|
[#1293]: https://github.com/ratatui/ratatui/pull/1293
|
||||||
|
|
||||||
`Frame::size` is renamed to `Frame::area` as it's the more correct name.
|
`Frame::size` is renamed to `Frame::area` as it's the more correct name.
|
||||||
|
|
||||||
## [v0.27.0](https://github.com/ratatui-org/ratatui/releases/tag/v0.27.0)
|
## [v0.27.0](https://github.com/ratatui/ratatui/releases/tag/v0.27.0)
|
||||||
|
|
||||||
### List no clamps the selected index to list ([#1159])
|
### List no clamps the selected index to list ([#1159])
|
||||||
|
|
||||||
[#1149]: https://github.com/ratatui-org/ratatui/pull/1149
|
[#1149]: https://github.com/ratatui/ratatui/pull/1149
|
||||||
|
|
||||||
The `List` widget now clamps the selected index to the bounds of the list when navigating with
|
The `List` widget now clamps the selected index to the bounds of the list when navigating with
|
||||||
`first`, `last`, `previous`, and `next`, as well as when setting the index directly with `select`.
|
`first`, `last`, `previous`, and `next`, as well as when setting the index directly with `select`.
|
||||||
|
@ -205,11 +205,11 @@ A change is only necessary if you were matching on all variants of the `MouseEve
|
||||||
wildcard. In this case, you need to either handle the two new variants, `MouseLeft` and
|
wildcard. In this case, you need to either handle the two new variants, `MouseLeft` and
|
||||||
`MouseRight`, or add a wildcard.
|
`MouseRight`, or add a wildcard.
|
||||||
|
|
||||||
[#1106]: https://github.com/ratatui-org/ratatui/pull/1106
|
[#1106]: https://github.com/ratatui/ratatui/pull/1106
|
||||||
|
|
||||||
### `Rect::inner` takes `Margin` directly instead of reference ([#1008])
|
### `Rect::inner` takes `Margin` directly instead of reference ([#1008])
|
||||||
|
|
||||||
[#1008]: https://github.com/ratatui-org/ratatui/pull/1008
|
[#1008]: https://github.com/ratatui/ratatui/pull/1008
|
||||||
|
|
||||||
`Margin` needs to be passed without reference now.
|
`Margin` needs to be passed without reference now.
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ wildcard. In this case, you need to either handle the two new variants, `MouseLe
|
||||||
|
|
||||||
### `Buffer::filled` takes `Cell` directly instead of reference ([#1148])
|
### `Buffer::filled` takes `Cell` directly instead of reference ([#1148])
|
||||||
|
|
||||||
[#1148]: https://github.com/ratatui-org/ratatui/pull/1148
|
[#1148]: https://github.com/ratatui/ratatui/pull/1148
|
||||||
|
|
||||||
`Buffer::filled` moves the `Cell` instead of taking a reference.
|
`Buffer::filled` moves the `Cell` instead of taking a reference.
|
||||||
|
|
||||||
|
@ -234,14 +234,14 @@ wildcard. In this case, you need to either handle the two new variants, `MouseLe
|
||||||
|
|
||||||
### `Stylize::bg()` now accepts `Into<Color>` ([#1103])
|
### `Stylize::bg()` now accepts `Into<Color>` ([#1103])
|
||||||
|
|
||||||
[#1103]: https://github.com/ratatui-org/ratatui/pull/1103
|
[#1103]: https://github.com/ratatui/ratatui/pull/1103
|
||||||
|
|
||||||
Previously, `Stylize::bg()` accepted `Color` but now accepts `Into<Color>`. This allows more
|
Previously, `Stylize::bg()` accepted `Color` but now accepts `Into<Color>`. This allows more
|
||||||
flexible types from calling scopes, though it can break some type inference in the calling scope.
|
flexible types from calling scopes, though it can break some type inference in the calling scope.
|
||||||
|
|
||||||
### Remove deprecated `List::start_corner` and `layout::Corner` ([#759])
|
### Remove deprecated `List::start_corner` and `layout::Corner` ([#759])
|
||||||
|
|
||||||
[#759]: https://github.com/ratatui-org/ratatui/pull/759
|
[#759]: https://github.com/ratatui/ratatui/pull/759
|
||||||
|
|
||||||
`List::start_corner` was deprecated in v0.25. Use `List::direction` and `ListDirection` instead.
|
`List::start_corner` was deprecated in v0.25. Use `List::direction` and `ListDirection` instead.
|
||||||
|
|
||||||
|
@ -264,7 +264,7 @@ flexible types from calling scopes, though it can break some type inference in t
|
||||||
|
|
||||||
### `LineGauge::gauge_style` is deprecated ([#565])
|
### `LineGauge::gauge_style` is deprecated ([#565])
|
||||||
|
|
||||||
[#565]: https://github.com/ratatui-org/ratatui/pull/1148
|
[#565]: https://github.com/ratatui/ratatui/pull/1148
|
||||||
|
|
||||||
`LineGauge::gauge_style` is deprecated and replaced with `LineGauge::filled_style` and `LineGauge::unfilled_style`:
|
`LineGauge::gauge_style` is deprecated and replaced with `LineGauge::filled_style` and `LineGauge::unfilled_style`:
|
||||||
|
|
||||||
|
@ -275,11 +275,11 @@ let gauge = LineGauge::default()
|
||||||
+ .unfilled_style(Style::default().fg(Color::White));
|
+ .unfilled_style(Style::default().fg(Color::White));
|
||||||
```
|
```
|
||||||
|
|
||||||
## [v0.26.0](https://github.com/ratatui-org/ratatui/releases/tag/v0.26.0)
|
## [v0.26.0](https://github.com/ratatui/ratatui/releases/tag/v0.26.0)
|
||||||
|
|
||||||
### `Flex::Start` is the new default flex mode for `Layout` ([#881])
|
### `Flex::Start` is the new default flex mode for `Layout` ([#881])
|
||||||
|
|
||||||
[#881]: https://github.com/ratatui-org/ratatui/pull/881
|
[#881]: https://github.com/ratatui/ratatui/pull/881
|
||||||
|
|
||||||
Previously, constraints would stretch to fill all available space, violating constraints if
|
Previously, constraints would stretch to fill all available space, violating constraints if
|
||||||
necessary.
|
necessary.
|
||||||
|
@ -300,7 +300,7 @@ existing layouts with `Flex::Start`. However, to get old behavior, use `Flex::Le
|
||||||
|
|
||||||
### `Table::new()` now accepts `IntoIterator<Item: Into<Row<'a>>>` ([#774])
|
### `Table::new()` now accepts `IntoIterator<Item: Into<Row<'a>>>` ([#774])
|
||||||
|
|
||||||
[#774]: https://github.com/ratatui-org/ratatui/pull/774
|
[#774]: https://github.com/ratatui/ratatui/pull/774
|
||||||
|
|
||||||
Previously, `Table::new()` accepted `IntoIterator<Item=Row<'a>>`. The argument change to
|
Previously, `Table::new()` accepted `IntoIterator<Item=Row<'a>>`. The argument change to
|
||||||
`IntoIterator<Item: Into<Row<'a>>>`, This allows more flexible types from calling scopes, though it
|
`IntoIterator<Item: Into<Row<'a>>>`, This allows more flexible types from calling scopes, though it
|
||||||
|
@ -317,7 +317,7 @@ This can be resolved either by providing an explicit type (e.g. `Vec::<Row>::new
|
||||||
|
|
||||||
### `Tabs::new()` now accepts `IntoIterator<Item: Into<Line<'a>>>` ([#776])
|
### `Tabs::new()` now accepts `IntoIterator<Item: Into<Line<'a>>>` ([#776])
|
||||||
|
|
||||||
[#776]: https://github.com/ratatui-org/ratatui/pull/776
|
[#776]: https://github.com/ratatui/ratatui/pull/776
|
||||||
|
|
||||||
Previously, `Tabs::new()` accepted `Vec<T>` where `T: Into<Line<'a>>`. This allows more flexible
|
Previously, `Tabs::new()` accepted `Vec<T>` where `T: Into<Line<'a>>`. This allows more flexible
|
||||||
types from calling scopes, though it can break some type inference in the calling scope.
|
types from calling scopes, though it can break some type inference in the calling scope.
|
||||||
|
@ -333,7 +333,7 @@ by removing the call to `.collect()`.
|
||||||
|
|
||||||
### Table::default() now sets segment_size to None and column_spacing to ([#751])
|
### Table::default() now sets segment_size to None and column_spacing to ([#751])
|
||||||
|
|
||||||
[#751]: https://github.com/ratatui-org/ratatui/pull/751
|
[#751]: https://github.com/ratatui/ratatui/pull/751
|
||||||
|
|
||||||
The default() implementation of Table now sets the column_spacing field to 1 and the segment_size
|
The default() implementation of Table now sets the column_spacing field to 1 and the segment_size
|
||||||
field to `SegmentSize::None`. This will affect the rendering of a small amount of apps.
|
field to `SegmentSize::None`. This will affect the rendering of a small amount of apps.
|
||||||
|
@ -343,7 +343,7 @@ To use the previous default values, call `table.segment_size(Default::default())
|
||||||
|
|
||||||
### `patch_style` & `reset_style` now consumes and returns `Self` ([#754])
|
### `patch_style` & `reset_style` now consumes and returns `Self` ([#754])
|
||||||
|
|
||||||
[#754]: https://github.com/ratatui-org/ratatui/pull/754
|
[#754]: https://github.com/ratatui/ratatui/pull/754
|
||||||
|
|
||||||
Previously, `patch_style` and `reset_style` in `Text`, `Line` and `Span` were using a mutable
|
Previously, `patch_style` and `reset_style` in `Text`, `Line` and `Span` were using a mutable
|
||||||
reference to `Self`. To be more consistent with the rest of `ratatui`, which is using fluent
|
reference to `Self`. To be more consistent with the rest of `ratatui`, which is using fluent
|
||||||
|
@ -369,7 +369,7 @@ The following example shows how to migrate for `Line`, but the same applies for
|
||||||
|
|
||||||
### `Block` style methods cannot be used in a const context ([#720])
|
### `Block` style methods cannot be used in a const context ([#720])
|
||||||
|
|
||||||
[#720]: https://github.com/ratatui-org/ratatui/pull/720
|
[#720]: https://github.com/ratatui/ratatui/pull/720
|
||||||
|
|
||||||
Previously the `style()`, `border_style()` and `title_style()` methods could be used to create a
|
Previously the `style()`, `border_style()` and `title_style()` methods could be used to create a
|
||||||
`Block` in a constant context. These now accept `Into<Style>` instead of `Style`. These methods no
|
`Block` in a constant context. These now accept `Into<Style>` instead of `Style`. These methods no
|
||||||
|
@ -377,7 +377,7 @@ longer can be called from a constant context.
|
||||||
|
|
||||||
### `Line` now has a `style` field that applies to the entire line ([#708])
|
### `Line` now has a `style` field that applies to the entire line ([#708])
|
||||||
|
|
||||||
[#708]: https://github.com/ratatui-org/ratatui/pull/708
|
[#708]: https://github.com/ratatui/ratatui/pull/708
|
||||||
|
|
||||||
Previously the style of a `Line` was stored in the `Span`s that make up the line. Now the `Line`
|
Previously the style of a `Line` was stored in the `Span`s that make up the line. Now the `Line`
|
||||||
itself has a `style` field, which can be set with the `Line::styled` method. Any code that creates
|
itself has a `style` field, which can be set with the `Line::styled` method. Any code that creates
|
||||||
|
@ -401,11 +401,11 @@ the `Span::style` field.
|
||||||
.alignment(Alignment::Left);
|
.alignment(Alignment::Left);
|
||||||
```
|
```
|
||||||
|
|
||||||
## [v0.25.0](https://github.com/ratatui-org/ratatui/releases/tag/v0.25.0)
|
## [v0.25.0](https://github.com/ratatui/ratatui/releases/tag/v0.25.0)
|
||||||
|
|
||||||
### Removed `Axis::title_style` and `Buffer::set_background` ([#691])
|
### Removed `Axis::title_style` and `Buffer::set_background` ([#691])
|
||||||
|
|
||||||
[#691]: https://github.com/ratatui-org/ratatui/pull/691
|
[#691]: https://github.com/ratatui/ratatui/pull/691
|
||||||
|
|
||||||
These items were deprecated since 0.10.
|
These items were deprecated since 0.10.
|
||||||
|
|
||||||
|
@ -419,7 +419,7 @@ These items were deprecated since 0.10.
|
||||||
|
|
||||||
### `List::new()` now accepts `IntoIterator<Item = Into<ListItem<'a>>>` ([#672])
|
### `List::new()` now accepts `IntoIterator<Item = Into<ListItem<'a>>>` ([#672])
|
||||||
|
|
||||||
[#672]: https://github.com/ratatui-org/ratatui/pull/672
|
[#672]: https://github.com/ratatui/ratatui/pull/672
|
||||||
|
|
||||||
Previously `List::new()` took `Into<Vec<ListItem<'a>>>`. This change will throw a compilation
|
Previously `List::new()` took `Into<Vec<ListItem<'a>>>`. This change will throw a compilation
|
||||||
error for `IntoIterator`s with an indeterminate item (e.g. empty vecs).
|
error for `IntoIterator`s with an indeterminate item (e.g. empty vecs).
|
||||||
|
@ -434,7 +434,7 @@ E.g.
|
||||||
|
|
||||||
### The default `Tabs::highlight_style` is now `Style::new().reversed()` ([#635])
|
### The default `Tabs::highlight_style` is now `Style::new().reversed()` ([#635])
|
||||||
|
|
||||||
[#635]: https://github.com/ratatui-org/ratatui/pull/635
|
[#635]: https://github.com/ratatui/ratatui/pull/635
|
||||||
|
|
||||||
Previously the default highlight style for tabs was `Style::default()`, which meant that a `Tabs`
|
Previously the default highlight style for tabs was `Style::default()`, which meant that a `Tabs`
|
||||||
widget in the default configuration would not show any indication of the selected tab.
|
widget in the default configuration would not show any indication of the selected tab.
|
||||||
|
@ -446,7 +446,7 @@ widget in the default configuration would not show any indication of the selecte
|
||||||
|
|
||||||
### `Table::new()` now requires specifying the widths of the columns ([#664])
|
### `Table::new()` now requires specifying the widths of the columns ([#664])
|
||||||
|
|
||||||
[#664]: https://github.com/ratatui-org/ratatui/pull/664
|
[#664]: https://github.com/ratatui/ratatui/pull/664
|
||||||
|
|
||||||
Previously `Table`s could be constructed without `widths`. In almost all cases this is an error.
|
Previously `Table`s could be constructed without `widths`. In almost all cases this is an error.
|
||||||
A new `widths` parameter is now mandatory on `Table::new()`. Existing code of the form:
|
A new `widths` parameter is now mandatory on `Table::new()`. Existing code of the form:
|
||||||
|
@ -472,7 +472,7 @@ or complex, it may be convenient to replace `Table::new` with `Table::default().
|
||||||
|
|
||||||
### `Table::widths()` now accepts `IntoIterator<Item = AsRef<Constraint>>` ([#663])
|
### `Table::widths()` now accepts `IntoIterator<Item = AsRef<Constraint>>` ([#663])
|
||||||
|
|
||||||
[#663]: https://github.com/ratatui-org/ratatui/pull/663
|
[#663]: https://github.com/ratatui/ratatui/pull/663
|
||||||
|
|
||||||
Previously `Table::widths()` took a slice (`&'a [Constraint]`). This change will introduce clippy
|
Previously `Table::widths()` took a slice (`&'a [Constraint]`). This change will introduce clippy
|
||||||
`needless_borrow` warnings for places where slices are passed to this method. To fix these, remove
|
`needless_borrow` warnings for places where slices are passed to this method. To fix these, remove
|
||||||
|
@ -488,7 +488,7 @@ E.g.
|
||||||
|
|
||||||
### Layout::new() now accepts direction and constraint parameters ([#557])
|
### Layout::new() now accepts direction and constraint parameters ([#557])
|
||||||
|
|
||||||
[#557]: https://github.com/ratatui-org/ratatui/pull/557
|
[#557]: https://github.com/ratatui/ratatui/pull/557
|
||||||
|
|
||||||
Previously layout new took no parameters. Existing code should either use `Layout::default()` or
|
Previously layout new took no parameters. Existing code should either use `Layout::default()` or
|
||||||
the new constructor.
|
the new constructor.
|
||||||
|
@ -505,18 +505,18 @@ let layout = layout::default()
|
||||||
let layout = layout::new(Direction::Vertical, [Constraint::Min(1), Constraint::Max(2)]);
|
let layout = layout::new(Direction::Vertical, [Constraint::Min(1), Constraint::Max(2)]);
|
||||||
```
|
```
|
||||||
|
|
||||||
## [v0.24.0](https://github.com/ratatui-org/ratatui/releases/tag/v0.24.0)
|
## [v0.24.0](https://github.com/ratatui/ratatui/releases/tag/v0.24.0)
|
||||||
|
|
||||||
### `ScrollbarState` field type changed from `u16` to `usize` ([#456])
|
### `ScrollbarState` field type changed from `u16` to `usize` ([#456])
|
||||||
|
|
||||||
[#456]: https://github.com/ratatui-org/ratatui/pull/456
|
[#456]: https://github.com/ratatui/ratatui/pull/456
|
||||||
|
|
||||||
In order to support larger content lengths, the `position`, `content_length` and
|
In order to support larger content lengths, the `position`, `content_length` and
|
||||||
`viewport_content_length` methods on `ScrollbarState` now take `usize` instead of `u16`
|
`viewport_content_length` methods on `ScrollbarState` now take `usize` instead of `u16`
|
||||||
|
|
||||||
### `BorderType::line_symbols` renamed to `border_symbols` ([#529])
|
### `BorderType::line_symbols` renamed to `border_symbols` ([#529])
|
||||||
|
|
||||||
[#529]: https://github.com/ratatui-org/ratatui/issues/529
|
[#529]: https://github.com/ratatui/ratatui/issues/529
|
||||||
|
|
||||||
Applications can now set custom borders on a `Block` by calling `border_set()`. The
|
Applications can now set custom borders on a `Block` by calling `border_set()`. The
|
||||||
`BorderType::line_symbols()` is renamed to `border_symbols()` and now returns a new struct
|
`BorderType::line_symbols()` is renamed to `border_symbols()` and now returns a new struct
|
||||||
|
@ -530,7 +530,7 @@ Applications can now set custom borders on a `Block` by calling `border_set()`.
|
||||||
|
|
||||||
### Generic `Backend` parameter removed from `Frame` ([#530])
|
### Generic `Backend` parameter removed from `Frame` ([#530])
|
||||||
|
|
||||||
[#530]: https://github.com/ratatui-org/ratatui/issues/530
|
[#530]: https://github.com/ratatui/ratatui/issues/530
|
||||||
|
|
||||||
`Frame` is no longer generic over Backend. Code that accepted `Frame<Backend>` will now need to
|
`Frame` is no longer generic over Backend. Code that accepted `Frame<Backend>` will now need to
|
||||||
accept `Frame`. To migrate existing code, remove any generic parameters from code that uses an
|
accept `Frame`. To migrate existing code, remove any generic parameters from code that uses an
|
||||||
|
@ -544,7 +544,7 @@ instance of a Frame. E.g.:
|
||||||
|
|
||||||
### `Stylize` shorthands now consume rather than borrow `String` ([#466])
|
### `Stylize` shorthands now consume rather than borrow `String` ([#466])
|
||||||
|
|
||||||
[#466]: https://github.com/ratatui-org/ratatui/issues/466
|
[#466]: https://github.com/ratatui/ratatui/issues/466
|
||||||
|
|
||||||
In order to support using `Stylize` shorthands (e.g. `"foo".red()`) on temporary `String` values, a
|
In order to support using `Stylize` shorthands (e.g. `"foo".red()`) on temporary `String` values, a
|
||||||
new implementation of `Stylize` was added that returns a `Span<'static>`. This causes the value to
|
new implementation of `Stylize` was added that returns a `Span<'static>`. This causes the value to
|
||||||
|
@ -562,7 +562,7 @@ longer compile. E.g.
|
||||||
|
|
||||||
### Deprecated `Spans` type removed (replaced with `Line`) ([#426])
|
### Deprecated `Spans` type removed (replaced with `Line`) ([#426])
|
||||||
|
|
||||||
[#426]: https://github.com/ratatui-org/ratatui/issues/426
|
[#426]: https://github.com/ratatui/ratatui/issues/426
|
||||||
|
|
||||||
`Spans` was replaced with `Line` in 0.21.0. `Buffer::set_spans` was replaced with
|
`Spans` was replaced with `Line` in 0.21.0. `Buffer::set_spans` was replaced with
|
||||||
`Buffer::set_line`.
|
`Buffer::set_line`.
|
||||||
|
@ -575,11 +575,11 @@ longer compile. E.g.
|
||||||
+ buffer.set_line(0, 0, line, 10);
|
+ buffer.set_line(0, 0, line, 10);
|
||||||
```
|
```
|
||||||
|
|
||||||
## [v0.23.0](https://github.com/ratatui-org/ratatui/releases/tag/v0.23.0)
|
## [v0.23.0](https://github.com/ratatui/ratatui/releases/tag/v0.23.0)
|
||||||
|
|
||||||
### `Scrollbar::track_symbol()` now takes an `Option<&str>` instead of `&str` ([#360])
|
### `Scrollbar::track_symbol()` now takes an `Option<&str>` instead of `&str` ([#360])
|
||||||
|
|
||||||
[#360]: https://github.com/ratatui-org/ratatui/issues/360
|
[#360]: https://github.com/ratatui/ratatui/issues/360
|
||||||
|
|
||||||
The track symbol of `Scrollbar` is now optional, this method now takes an optional value.
|
The track symbol of `Scrollbar` is now optional, this method now takes an optional value.
|
||||||
|
|
||||||
|
@ -591,7 +591,7 @@ The track symbol of `Scrollbar` is now optional, this method now takes an option
|
||||||
|
|
||||||
### `Scrollbar` symbols moved to `symbols::scrollbar` and `widgets::scrollbar` module is private ([#330])
|
### `Scrollbar` symbols moved to `symbols::scrollbar` and `widgets::scrollbar` module is private ([#330])
|
||||||
|
|
||||||
[#330]: https://github.com/ratatui-org/ratatui/issues/330
|
[#330]: https://github.com/ratatui/ratatui/issues/330
|
||||||
|
|
||||||
The symbols for defining scrollbars have been moved to the `symbols` module from the
|
The symbols for defining scrollbars have been moved to the `symbols` module from the
|
||||||
`widgets::scrollbar` module which is no longer public. To update your code update any imports to the
|
`widgets::scrollbar` module which is no longer public. To update your code update any imports to the
|
||||||
|
@ -605,31 +605,31 @@ new module locations. E.g.:
|
||||||
|
|
||||||
### MSRV updated to 1.67 ([#361])
|
### MSRV updated to 1.67 ([#361])
|
||||||
|
|
||||||
[#361]: https://github.com/ratatui-org/ratatui/issues/361
|
[#361]: https://github.com/ratatui/ratatui/issues/361
|
||||||
|
|
||||||
The MSRV of ratatui is now 1.67 due to an MSRV update in a dependency (`time`).
|
The MSRV of ratatui is now 1.67 due to an MSRV update in a dependency (`time`).
|
||||||
|
|
||||||
## [v0.22.0](https://github.com/ratatui-org/ratatui/releases/tag/v0.22.0)
|
## [v0.22.0](https://github.com/ratatui/ratatui/releases/tag/v0.22.0)
|
||||||
|
|
||||||
### `bitflags` updated to 2.3 ([#205])
|
### `bitflags` updated to 2.3 ([#205])
|
||||||
|
|
||||||
[#205]: https://github.com/ratatui-org/ratatui/issues/205
|
[#205]: https://github.com/ratatui/ratatui/issues/205
|
||||||
|
|
||||||
The `serde` representation of `bitflags` has changed. Any existing serialized types that have
|
The `serde` representation of `bitflags` has changed. Any existing serialized types that have
|
||||||
Borders or Modifiers will need to be re-serialized. This is documented in the [`bitflags`
|
Borders or Modifiers will need to be re-serialized. This is documented in the [`bitflags`
|
||||||
changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md#200-rc2)..
|
changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md#200-rc2)..
|
||||||
|
|
||||||
## [v0.21.0](https://github.com/ratatui-org/ratatui/releases/tag/v0.21.0)
|
## [v0.21.0](https://github.com/ratatui/ratatui/releases/tag/v0.21.0)
|
||||||
|
|
||||||
### MSRV is 1.65.0 ([#171])
|
### MSRV is 1.65.0 ([#171])
|
||||||
|
|
||||||
[#171]: https://github.com/ratatui-org/ratatui/issues/171
|
[#171]: https://github.com/ratatui/ratatui/issues/171
|
||||||
|
|
||||||
The minimum supported rust version is now 1.65.0.
|
The minimum supported rust version is now 1.65.0.
|
||||||
|
|
||||||
### `Terminal::with_options()` stabilized to allow configuring the viewport ([#114])
|
### `Terminal::with_options()` stabilized to allow configuring the viewport ([#114])
|
||||||
|
|
||||||
[#114]: https://github.com/ratatui-org/ratatui/issues/114
|
[#114]: https://github.com/ratatui/ratatui/issues/114
|
||||||
|
|
||||||
In order to support inline viewports, the unstable method `Terminal::with_options()` was stabilized
|
In order to support inline viewports, the unstable method `Terminal::with_options()` was stabilized
|
||||||
and `ViewPort` was changed from a struct to an enum.
|
and `ViewPort` was changed from a struct to an enum.
|
||||||
|
@ -646,7 +646,7 @@ let terminal = Terminal::with_options(backend, TerminalOptions {
|
||||||
|
|
||||||
### Code that binds `Into<Text<'a>>` now requires type annotations ([#168])
|
### Code that binds `Into<Text<'a>>` now requires type annotations ([#168])
|
||||||
|
|
||||||
[#168]: https://github.com/ratatui-org/ratatui/issues/168
|
[#168]: https://github.com/ratatui/ratatui/issues/168
|
||||||
|
|
||||||
A new type `Masked` was introduced that implements `From<Text<'a>>`. This causes any code that
|
A new type `Masked` was introduced that implements `From<Text<'a>>`. This causes any code that
|
||||||
previously did not need to use type annotations to fail to compile. To fix this, annotate or call
|
previously did not need to use type annotations to fail to compile. To fix this, annotate or call
|
||||||
|
@ -660,7 +660,7 @@ previously did not need to use type annotations to fail to compile. To fix this,
|
||||||
|
|
||||||
### `Marker::Block` now renders as a block rather than a bar character ([#133])
|
### `Marker::Block` now renders as a block rather than a bar character ([#133])
|
||||||
|
|
||||||
[#133]: https://github.com/ratatui-org/ratatui/issues/133
|
[#133]: https://github.com/ratatui/ratatui/issues/133
|
||||||
|
|
||||||
Code using the `Block` marker that previously rendered using a half block character (`'▀'``) now
|
Code using the `Block` marker that previously rendered using a half block character (`'▀'``) now
|
||||||
renders using the full block character (`'█'`). A new marker variant`Bar` is introduced to replace
|
renders using the full block character (`'█'`). A new marker variant`Bar` is introduced to replace
|
||||||
|
@ -672,20 +672,20 @@ the existing code.
|
||||||
+ let canvas = Canvas::default().marker(Marker::Bar);
|
+ let canvas = Canvas::default().marker(Marker::Bar);
|
||||||
```
|
```
|
||||||
|
|
||||||
## [v0.20.0](https://github.com/ratatui-org/ratatui/releases/tag/v0.20.0)
|
## [v0.20.0](https://github.com/ratatui/ratatui/releases/tag/v0.20.0)
|
||||||
|
|
||||||
v0.20.0 was the first release of Ratatui - versions prior to this were release as tui-rs. See the
|
v0.20.0 was the first release of Ratatui - versions prior to this were release as tui-rs. See the
|
||||||
[Changelog](./CHANGELOG.md) for more details.
|
[Changelog](./CHANGELOG.md) for more details.
|
||||||
|
|
||||||
### MSRV is update to 1.63.0 ([#80])
|
### MSRV is update to 1.63.0 ([#80])
|
||||||
|
|
||||||
[#80]: https://github.com/ratatui-org/ratatui/issues/80
|
[#80]: https://github.com/ratatui/ratatui/issues/80
|
||||||
|
|
||||||
The minimum supported rust version is 1.63.0
|
The minimum supported rust version is 1.63.0
|
||||||
|
|
||||||
### List no longer ignores empty string in items ([#42])
|
### List no longer ignores empty string in items ([#42])
|
||||||
|
|
||||||
[#42]: https://github.com/ratatui-org/ratatui/issues/42
|
[#42]: https://github.com/ratatui/ratatui/issues/42
|
||||||
|
|
||||||
The following code now renders 3 items instead of 2. Code which relies on the previous behavior will
|
The following code now renders 3 items instead of 2. Code which relies on the previous behavior will
|
||||||
need to manually filter empty items prior to display.
|
need to manually filter empty items prior to display.
|
||||||
|
|
2695
CHANGELOG.md
2695
CHANGELOG.md
File diff suppressed because it is too large
Load diff
|
@ -8,7 +8,7 @@ creating a new issue before making the change, or starting a discussion on
|
||||||
|
|
||||||
## Reporting issues
|
## Reporting issues
|
||||||
|
|
||||||
Before reporting an issue on the [issue tracker](https://github.com/ratatui-org/ratatui/issues),
|
Before reporting an issue on the [issue tracker](https://github.com/ratatui/ratatui/issues),
|
||||||
please check that it has not already been reported by searching for some related keywords. Please
|
please check that it has not already been reported by searching for some related keywords. Please
|
||||||
also check [`tui-rs` issues](https://github.com/fdehau/tui-rs/issues/) and link any related issues
|
also check [`tui-rs` issues](https://github.com/fdehau/tui-rs/issues/) and link any related issues
|
||||||
found.
|
found.
|
||||||
|
@ -79,14 +79,14 @@ defaults depending on your platform of choice. Building the project should be as
|
||||||
`cargo make build`.
|
`cargo make build`.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
git clone https://github.com/ratatui-org/ratatui.git
|
git clone https://github.com/ratatui/ratatui.git
|
||||||
cd ratatui
|
cd ratatui
|
||||||
cargo make build
|
cargo make build
|
||||||
```
|
```
|
||||||
|
|
||||||
### Tests
|
### Tests
|
||||||
|
|
||||||
The [test coverage](https://app.codecov.io/gh/ratatui-org/ratatui) of the crate is reasonably
|
The [test coverage](https://app.codecov.io/gh/ratatui/ratatui) of the crate is reasonably
|
||||||
good, but this can always be improved. Focus on keeping the tests simple and obvious and write unit
|
good, but this can always be improved. Focus on keeping the tests simple and obvious and write unit
|
||||||
tests for all new or modified code. Beside the usual doc and unit tests, one of the most valuable
|
tests for all new or modified code. Beside the usual doc and unit tests, one of the most valuable
|
||||||
test you can write for Ratatui is a test against the `TestBackend`. It allows you to assert the
|
test you can write for Ratatui is a test against the `TestBackend`. It allows you to assert the
|
||||||
|
@ -171,7 +171,7 @@ time to update. However, if a deprecation is blocking for us to implement a new
|
||||||
|
|
||||||
We don't currently use any unsafe code in Ratatui, and would like to keep it that way. However, there
|
We don't currently use any unsafe code in Ratatui, and would like to keep it that way. However, there
|
||||||
may be specific cases that this becomes necessary in order to avoid slowness. Please see [this
|
may be specific cases that this becomes necessary in order to avoid slowness. Please see [this
|
||||||
discussion](https://github.com/ratatui-org/ratatui/discussions/66) for more about the decision.
|
discussion](https://github.com/ratatui/ratatui/discussions/66) for more about the decision.
|
||||||
|
|
||||||
## Continuous Integration
|
## Continuous Integration
|
||||||
|
|
||||||
|
@ -196,7 +196,7 @@ it is useful to refer to when contributing code, documentation, or issues with R
|
||||||
|
|
||||||
We imported all the PRs from the original repository, implemented many of the smaller ones, and
|
We imported all the PRs from the original repository, implemented many of the smaller ones, and
|
||||||
made notes on the leftovers. These are marked as draft PRs and labelled as [imported from
|
made notes on the leftovers. These are marked as draft PRs and labelled as [imported from
|
||||||
tui](https://github.com/ratatui-org/ratatui/pulls?q=is%3Apr+is%3Aopen+label%3A%22imported+from+tui%22).
|
tui](https://github.com/ratatui/ratatui/pulls?q=is%3Apr+is%3Aopen+label%3A%22imported+from+tui%22).
|
||||||
We have documented the current state of those PRs, and anyone is welcome to pick them up and
|
We have documented the current state of those PRs, and anyone is welcome to pick them up and
|
||||||
continue the work on them.
|
continue the work on them.
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.28.0" # crate version
|
||||||
authors = ["Florian Dehau <work@fdehau.com>", "The Ratatui Developers"]
|
authors = ["Florian Dehau <work@fdehau.com>", "The Ratatui Developers"]
|
||||||
description = "A library that's all about cooking up terminal user interfaces"
|
description = "A library that's all about cooking up terminal user interfaces"
|
||||||
documentation = "https://docs.rs/ratatui/latest/ratatui/"
|
documentation = "https://docs.rs/ratatui/latest/ratatui/"
|
||||||
repository = "https://github.com/ratatui-org/ratatui"
|
repository = "https://github.com/ratatui/ratatui"
|
||||||
homepage = "https://ratatui.rs"
|
homepage = "https://ratatui.rs"
|
||||||
keywords = ["tui", "terminal", "dashboard"]
|
keywords = ["tui", "terminal", "dashboard"]
|
||||||
categories = ["command-line-interface"]
|
categories = ["command-line-interface"]
|
||||||
|
@ -162,7 +162,7 @@ unstable = ["unstable-rendered-line-info", "unstable-widget-ref"]
|
||||||
## Enables the [`Paragraph::line_count`](widgets::Paragraph::line_count)
|
## Enables the [`Paragraph::line_count`](widgets::Paragraph::line_count)
|
||||||
## [`Paragraph::line_width`](widgets::Paragraph::line_width) methods
|
## [`Paragraph::line_width`](widgets::Paragraph::line_width) methods
|
||||||
## which are experimental and may change in the future.
|
## which are experimental and may change in the future.
|
||||||
## See [Issue 293](https://github.com/ratatui-org/ratatui/issues/293) for more details.
|
## See [Issue 293](https://github.com/ratatui/ratatui/issues/293) for more details.
|
||||||
unstable-rendered-line-info = []
|
unstable-rendered-line-info = []
|
||||||
|
|
||||||
## Enables the [`WidgetRef`](widgets::WidgetRef) and [`StatefulWidgetRef`](widgets::StatefulWidgetRef) traits which are experimental and may change in
|
## Enables the [`WidgetRef`](widgets::WidgetRef) and [`StatefulWidgetRef`](widgets::StatefulWidgetRef) traits which are experimental and may change in
|
||||||
|
|
46
README.md
46
README.md
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
<!-- cargo-rdme start -->
|
<!-- cargo-rdme start -->
|
||||||
|
|
||||||
![Demo](https://github.com/ratatui-org/ratatui/blob/87ae72dbc756067c97f6400d3e2a58eeb383776e/examples/demo2-destroy.gif?raw=true)
|
![Demo](https://github.com/ratatui/ratatui/blob/87ae72dbc756067c97f6400d3e2a58eeb383776e/examples/demo2-destroy.gif?raw=true)
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
|
@ -280,21 +280,21 @@ Running this example produces the following output:
|
||||||
[Handling Events]: https://ratatui.rs/concepts/event-handling/
|
[Handling Events]: https://ratatui.rs/concepts/event-handling/
|
||||||
[Layout]: https://ratatui.rs/how-to/layout/
|
[Layout]: https://ratatui.rs/how-to/layout/
|
||||||
[Styling Text]: https://ratatui.rs/how-to/render/style-text/
|
[Styling Text]: https://ratatui.rs/how-to/render/style-text/
|
||||||
[templates]: https://github.com/ratatui-org/templates/
|
[templates]: https://github.com/ratatui/templates/
|
||||||
[Examples]: https://github.com/ratatui-org/ratatui/tree/main/examples/README.md
|
[Examples]: https://github.com/ratatui/ratatui/tree/main/examples/README.md
|
||||||
[Report a bug]: https://github.com/ratatui-org/ratatui/issues/new?labels=bug&projects=&template=bug_report.md
|
[Report a bug]: https://github.com/ratatui/ratatui/issues/new?labels=bug&projects=&template=bug_report.md
|
||||||
[Request a Feature]: https://github.com/ratatui-org/ratatui/issues/new?labels=enhancement&projects=&template=feature_request.md
|
[Request a Feature]: https://github.com/ratatui/ratatui/issues/new?labels=enhancement&projects=&template=feature_request.md
|
||||||
[Create a Pull Request]: https://github.com/ratatui-org/ratatui/compare
|
[Create a Pull Request]: https://github.com/ratatui/ratatui/compare
|
||||||
[git-cliff]: https://git-cliff.org
|
[git-cliff]: https://git-cliff.org
|
||||||
[Conventional Commits]: https://www.conventionalcommits.org
|
[Conventional Commits]: https://www.conventionalcommits.org
|
||||||
[API Docs]: https://docs.rs/ratatui
|
[API Docs]: https://docs.rs/ratatui
|
||||||
[Changelog]: https://github.com/ratatui-org/ratatui/blob/main/CHANGELOG.md
|
[Changelog]: https://github.com/ratatui/ratatui/blob/main/CHANGELOG.md
|
||||||
[Contributing]: https://github.com/ratatui-org/ratatui/blob/main/CONTRIBUTING.md
|
[Contributing]: https://github.com/ratatui/ratatui/blob/main/CONTRIBUTING.md
|
||||||
[Breaking Changes]: https://github.com/ratatui-org/ratatui/blob/main/BREAKING-CHANGES.md
|
[Breaking Changes]: https://github.com/ratatui/ratatui/blob/main/BREAKING-CHANGES.md
|
||||||
[FOSDEM 2024 talk]: https://www.youtube.com/watch?v=NU0q6NOLJ20
|
[FOSDEM 2024 talk]: https://www.youtube.com/watch?v=NU0q6NOLJ20
|
||||||
[docsrs-hello]: https://github.com/ratatui-org/ratatui/blob/c3c3c289b1eb8d562afb1931adb4dc719cd48490/examples/docsrs-hello.png?raw=true
|
[docsrs-hello]: https://github.com/ratatui/ratatui/blob/c3c3c289b1eb8d562afb1931adb4dc719cd48490/examples/docsrs-hello.png?raw=true
|
||||||
[docsrs-layout]: https://github.com/ratatui-org/ratatui/blob/c3c3c289b1eb8d562afb1931adb4dc719cd48490/examples/docsrs-layout.png?raw=true
|
[docsrs-layout]: https://github.com/ratatui/ratatui/blob/c3c3c289b1eb8d562afb1931adb4dc719cd48490/examples/docsrs-layout.png?raw=true
|
||||||
[docsrs-styling]: https://github.com/ratatui-org/ratatui/blob/c3c3c289b1eb8d562afb1931adb4dc719cd48490/examples/docsrs-styling.png?raw=true
|
[docsrs-styling]: https://github.com/ratatui/ratatui/blob/c3c3c289b1eb8d562afb1931adb4dc719cd48490/examples/docsrs-styling.png?raw=true
|
||||||
[`Frame`]: terminal::Frame
|
[`Frame`]: terminal::Frame
|
||||||
[`render_widget`]: terminal::Frame::render_widget
|
[`render_widget`]: terminal::Frame::render_widget
|
||||||
[`Widget`]: widgets::Widget
|
[`Widget`]: widgets::Widget
|
||||||
|
@ -313,15 +313,15 @@ Running this example produces the following output:
|
||||||
[Termion]: https://crates.io/crates/termion
|
[Termion]: https://crates.io/crates/termion
|
||||||
[Termwiz]: https://crates.io/crates/termwiz
|
[Termwiz]: https://crates.io/crates/termwiz
|
||||||
[tui-rs]: https://crates.io/crates/tui
|
[tui-rs]: https://crates.io/crates/tui
|
||||||
[GitHub Sponsors]: https://github.com/sponsors/ratatui-org
|
[GitHub Sponsors]: https://github.com/sponsors/ratatui
|
||||||
[Crate Badge]: https://img.shields.io/crates/v/ratatui?logo=rust&style=flat-square&logoColor=E05D44&color=E05D44
|
[Crate Badge]: https://img.shields.io/crates/v/ratatui?logo=rust&style=flat-square&logoColor=E05D44&color=E05D44
|
||||||
[License Badge]: https://img.shields.io/crates/l/ratatui?style=flat-square&color=1370D3
|
[License Badge]: https://img.shields.io/crates/l/ratatui?style=flat-square&color=1370D3
|
||||||
[CI Badge]: https://img.shields.io/github/actions/workflow/status/ratatui-org/ratatui/ci.yml?style=flat-square&logo=github
|
[CI Badge]: https://img.shields.io/github/actions/workflow/status/ratatui/ratatui/ci.yml?style=flat-square&logo=github
|
||||||
[CI Workflow]: https://github.com/ratatui-org/ratatui/actions/workflows/ci.yml
|
[CI Workflow]: https://github.com/ratatui/ratatui/actions/workflows/ci.yml
|
||||||
[Codecov Badge]: https://img.shields.io/codecov/c/github/ratatui-org/ratatui?logo=codecov&style=flat-square&token=BAQ8SOKEST&color=C43AC3&logoColor=C43AC3
|
[Codecov Badge]: https://img.shields.io/codecov/c/github/ratatui/ratatui?logo=codecov&style=flat-square&token=BAQ8SOKEST&color=C43AC3&logoColor=C43AC3
|
||||||
[Codecov]: https://app.codecov.io/gh/ratatui-org/ratatui
|
[Codecov]: https://app.codecov.io/gh/ratatui/ratatui
|
||||||
[Deps.rs Badge]: https://deps.rs/repo/github/ratatui-org/ratatui/status.svg?style=flat-square
|
[Deps.rs Badge]: https://deps.rs/repo/github/ratatui/ratatui/status.svg?style=flat-square
|
||||||
[Deps.rs]: https://deps.rs/repo/github/ratatui-org/ratatui
|
[Deps.rs]: https://deps.rs/repo/github/ratatui/ratatui
|
||||||
[Discord Badge]: https://img.shields.io/discord/1070692720437383208?label=discord&logo=discord&style=flat-square&color=1370D3&logoColor=1370D3
|
[Discord Badge]: https://img.shields.io/discord/1070692720437383208?label=discord&logo=discord&style=flat-square&color=1370D3&logoColor=1370D3
|
||||||
[Discord Server]: https://discord.gg/pMCEU9hNEj
|
[Discord Server]: https://discord.gg/pMCEU9hNEj
|
||||||
[Docs Badge]: https://img.shields.io/docsrs/ratatui?logo=rust&style=flat-square&logoColor=E05D44
|
[Docs Badge]: https://img.shields.io/docsrs/ratatui?logo=rust&style=flat-square&logoColor=E05D44
|
||||||
|
@ -329,7 +329,7 @@ Running this example produces the following output:
|
||||||
[Matrix]: https://matrix.to/#/#ratatui:matrix.org
|
[Matrix]: https://matrix.to/#/#ratatui:matrix.org
|
||||||
[Forum Badge]: https://img.shields.io/discourse/likes?server=https%3A%2F%2Fforum.ratatui.rs&style=flat-square&logo=discourse&label=forum&color=C43AC3
|
[Forum Badge]: https://img.shields.io/discourse/likes?server=https%3A%2F%2Fforum.ratatui.rs&style=flat-square&logo=discourse&label=forum&color=C43AC3
|
||||||
[Forum]: https://forum.ratatui.rs
|
[Forum]: https://forum.ratatui.rs
|
||||||
[Sponsors Badge]: https://img.shields.io/github/sponsors/ratatui-org?logo=github&style=flat-square&color=1370D3
|
[Sponsors Badge]: https://img.shields.io/github/sponsors/ratatui?logo=github&style=flat-square&color=1370D3
|
||||||
|
|
||||||
<!-- cargo-rdme end -->
|
<!-- cargo-rdme end -->
|
||||||
|
|
||||||
|
@ -387,7 +387,7 @@ be installed with `cargo install cargo-make`).
|
||||||
`ratatui::text::Text`
|
`ratatui::text::Text`
|
||||||
- [color-to-tui](https://github.com/uttarayan21/color-to-tui) — Parse hex colors to
|
- [color-to-tui](https://github.com/uttarayan21/color-to-tui) — Parse hex colors to
|
||||||
`ratatui::style::Color`
|
`ratatui::style::Color`
|
||||||
- [templates](https://github.com/ratatui-org/templates) — Starter templates for
|
- [templates](https://github.com/ratatui/templates) — Starter templates for
|
||||||
bootstrapping a Rust TUI application with Ratatui & crossterm
|
bootstrapping a Rust TUI application with Ratatui & crossterm
|
||||||
- [tui-builder](https://github.com/jkelleyrtp/tui-builder) — Batteries-included MVC framework for
|
- [tui-builder](https://github.com/jkelleyrtp/tui-builder) — Batteries-included MVC framework for
|
||||||
Tui-rs + Crossterm apps
|
Tui-rs + Crossterm apps
|
||||||
|
@ -411,7 +411,7 @@ be installed with `cargo install cargo-make`).
|
||||||
|
|
||||||
## Apps
|
## Apps
|
||||||
|
|
||||||
Check out [awesome-ratatui](https://github.com/ratatui-org/awesome-ratatui) for a curated list of
|
Check out [awesome-ratatui](https://github.com/ratatui/awesome-ratatui) for a curated list of
|
||||||
awesome apps/libraries built with `ratatui`!
|
awesome apps/libraries built with `ratatui`!
|
||||||
|
|
||||||
## Alternatives
|
## Alternatives
|
||||||
|
@ -422,7 +422,7 @@ to build text user interfaces in Rust.
|
||||||
## Acknowledgments
|
## Acknowledgments
|
||||||
|
|
||||||
Special thanks to [**Pavel Fomchenkov**](https://github.com/nawok) for his work in designing **an
|
Special thanks to [**Pavel Fomchenkov**](https://github.com/nawok) for his work in designing **an
|
||||||
awesome logo** for the ratatui project and ratatui-org organization.
|
awesome logo** for the ratatui project and ratatui organization.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|
10
RELEASE.md
10
RELEASE.md
|
@ -12,7 +12,7 @@ actions](.github/workflows/cd.yml) and triggered by pushing a tag.
|
||||||
```
|
```
|
||||||
|
|
||||||
1. Switch branches to the images branch and copy demo2.gif to examples/, commit, and push.
|
1. Switch branches to the images branch and copy demo2.gif to examples/, commit, and push.
|
||||||
1. Grab the permalink from <https://github.com/ratatui-org/ratatui/blob/images/examples/demo2.gif> and
|
1. Grab the permalink from <https://github.com/ratatui/ratatui/blob/images/examples/demo2.gif> and
|
||||||
append `?raw=true` to redirect to the actual image url. Then update the link in the main README.
|
append `?raw=true` to redirect to the actual image url. Then update the link in the main README.
|
||||||
Avoid adding the gif to the git repo as binary files tend to bloat repositories.
|
Avoid adding the gif to the git repo as binary files tend to bloat repositories.
|
||||||
|
|
||||||
|
@ -23,14 +23,14 @@ actions](.github/workflows/cd.yml) and triggered by pushing a tag.
|
||||||
1. Commit and push the changes.
|
1. Commit and push the changes.
|
||||||
1. Create a new tag: `git tag -a v[X.Y.Z]`
|
1. Create a new tag: `git tag -a v[X.Y.Z]`
|
||||||
1. Push the tag: `git push --tags`
|
1. Push the tag: `git push --tags`
|
||||||
1. Wait for [Continuous Deployment](https://github.com/ratatui-org/ratatui/actions) workflow to
|
1. Wait for [Continuous Deployment](https://github.com/ratatui/ratatui/actions) workflow to
|
||||||
finish.
|
finish.
|
||||||
|
|
||||||
## Alpha Releases
|
## Alpha Releases
|
||||||
|
|
||||||
Alpha releases are automatically released every Saturday via [cd.yml](./.github/workflows/cd.yml)
|
Alpha releases are automatically released every Saturday via [cd.yml](./.github/workflows/cd.yml)
|
||||||
and can be manually be created when necessary by triggering the [Continuous
|
and can be manually be created when necessary by triggering the [Continuous
|
||||||
Deployment](https://github.com/ratatui-org/ratatui/actions/workflows/cd.yml) workflow.
|
Deployment](https://github.com/ratatui/ratatui/actions/workflows/cd.yml) workflow.
|
||||||
|
|
||||||
We automatically release an alpha release with a patch level bump + alpha.num weekly (and when we
|
We automatically release an alpha release with a patch level bump + alpha.num weekly (and when we
|
||||||
need to manually). E.g. the last release was 0.22.0, and the most recent alpha release is
|
need to manually). E.g. the last release was 0.22.0, and the most recent alpha release is
|
||||||
|
@ -40,5 +40,5 @@ These releases will have whatever happened to be in main at the time of release,
|
||||||
for apps that need to get releases from crates.io, but may contain more bugs and be generally less
|
for apps that need to get releases from crates.io, but may contain more bugs and be generally less
|
||||||
tested than normal releases.
|
tested than normal releases.
|
||||||
|
|
||||||
See [#147](https://github.com/ratatui-org/ratatui/issues/147) and
|
See [#147](https://github.com/ratatui/ratatui/issues/147) and
|
||||||
[#359](https://github.com/ratatui-org/ratatui/pull/359) for more info on the alpha release process.
|
[#359](https://github.com/ratatui/ratatui/pull/359) for more info on the alpha release process.
|
||||||
|
|
|
@ -6,4 +6,4 @@ We only support the latest version of this crate.
|
||||||
|
|
||||||
## Reporting a Vulnerability
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
To report secuirity vulnerability, please use the form at <https://github.com/ratatui-org/ratatui/security/advisories/new>
|
To report secuirity vulnerability, please use the form at <https://github.com/ratatui/ratatui/security/advisories/new>
|
||||||
|
|
|
@ -59,7 +59,7 @@ fn barchart(c: &mut Criterion) {
|
||||||
fn render(bencher: &mut Bencher, barchart: &BarChart) {
|
fn render(bencher: &mut Bencher, barchart: &BarChart) {
|
||||||
let mut buffer = Buffer::empty(Rect::new(0, 0, 200, 50));
|
let mut buffer = Buffer::empty(Rect::new(0, 0, 200, 50));
|
||||||
// We use `iter_batched` to clone the value in the setup function.
|
// We use `iter_batched` to clone the value in the setup function.
|
||||||
// See https://github.com/ratatui-org/ratatui/pull/377.
|
// See https://github.com/ratatui/ratatui/pull/377.
|
||||||
bencher.iter_batched(
|
bencher.iter_batched(
|
||||||
|| barchart.clone(),
|
|| barchart.clone(),
|
||||||
|bench_barchart| {
|
|bench_barchart| {
|
||||||
|
|
|
@ -48,7 +48,7 @@ fn block(c: &mut Criterion) {
|
||||||
fn render(bencher: &mut Bencher, block: &Block, size: Rect) {
|
fn render(bencher: &mut Bencher, block: &Block, size: Rect) {
|
||||||
let mut buffer = Buffer::empty(size);
|
let mut buffer = Buffer::empty(size);
|
||||||
// We use `iter_batched` to clone the value in the setup function.
|
// We use `iter_batched` to clone the value in the setup function.
|
||||||
// See https://github.com/ratatui-org/ratatui/pull/377.
|
// See https://github.com/ratatui/ratatui/pull/377.
|
||||||
bencher.iter_batched(
|
bencher.iter_batched(
|
||||||
|| block.to_owned(),
|
|| block.to_owned(),
|
||||||
|bench_block| {
|
|bench_block| {
|
||||||
|
|
|
@ -45,7 +45,7 @@ fn list(c: &mut Criterion) {
|
||||||
fn render(bencher: &mut Bencher, list: &List) {
|
fn render(bencher: &mut Bencher, list: &List) {
|
||||||
let mut buffer = Buffer::empty(Rect::new(0, 0, 200, 50));
|
let mut buffer = Buffer::empty(Rect::new(0, 0, 200, 50));
|
||||||
// We use `iter_batched` to clone the value in the setup function.
|
// We use `iter_batched` to clone the value in the setup function.
|
||||||
// See https://github.com/ratatui-org/ratatui/pull/377.
|
// See https://github.com/ratatui/ratatui/pull/377.
|
||||||
bencher.iter_batched(
|
bencher.iter_batched(
|
||||||
|| list.to_owned(),
|
|| list.to_owned(),
|
||||||
|bench_list| {
|
|bench_list| {
|
||||||
|
@ -59,7 +59,7 @@ fn render(bencher: &mut Bencher, list: &List) {
|
||||||
fn render_stateful(bencher: &mut Bencher, list: &List, mut state: ListState) {
|
fn render_stateful(bencher: &mut Bencher, list: &List, mut state: ListState) {
|
||||||
let mut buffer = Buffer::empty(Rect::new(0, 0, 200, 50));
|
let mut buffer = Buffer::empty(Rect::new(0, 0, 200, 50));
|
||||||
// We use `iter_batched` to clone the value in the setup function.
|
// We use `iter_batched` to clone the value in the setup function.
|
||||||
// See https://github.com/ratatui-org/ratatui/pull/377.
|
// See https://github.com/ratatui/ratatui/pull/377.
|
||||||
bencher.iter_batched(
|
bencher.iter_batched(
|
||||||
|| list.to_owned(),
|
|| list.to_owned(),
|
||||||
|bench_list| {
|
|bench_list| {
|
||||||
|
|
|
@ -70,7 +70,7 @@ fn paragraph(c: &mut Criterion) {
|
||||||
fn render(bencher: &mut Bencher, paragraph: &Paragraph, width: u16) {
|
fn render(bencher: &mut Bencher, paragraph: &Paragraph, width: u16) {
|
||||||
let mut buffer = Buffer::empty(Rect::new(0, 0, width, 50));
|
let mut buffer = Buffer::empty(Rect::new(0, 0, width, 50));
|
||||||
// We use `iter_batched` to clone the value in the setup function.
|
// We use `iter_batched` to clone the value in the setup function.
|
||||||
// See https://github.com/ratatui-org/ratatui/pull/377.
|
// See https://github.com/ratatui/ratatui/pull/377.
|
||||||
bencher.iter_batched(
|
bencher.iter_batched(
|
||||||
|| paragraph.to_owned(),
|
|| paragraph.to_owned(),
|
||||||
|bench_paragraph| {
|
|bench_paragraph| {
|
||||||
|
|
|
@ -31,7 +31,7 @@ fn sparkline(c: &mut Criterion) {
|
||||||
fn render(bencher: &mut Bencher, sparkline: &Sparkline) {
|
fn render(bencher: &mut Bencher, sparkline: &Sparkline) {
|
||||||
let mut buffer = Buffer::empty(Rect::new(0, 0, 200, 50));
|
let mut buffer = Buffer::empty(Rect::new(0, 0, 200, 50));
|
||||||
// We use `iter_batched` to clone the value in the setup function.
|
// We use `iter_batched` to clone the value in the setup function.
|
||||||
// See https://github.com/ratatui-org/ratatui/pull/377.
|
// See https://github.com/ratatui/ratatui/pull/377.
|
||||||
bencher.iter_batched(
|
bencher.iter_batched(
|
||||||
|| sparkline.clone(),
|
|| sparkline.clone(),
|
||||||
|bench_sparkline| {
|
|bench_sparkline| {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# https://git-cliff.org/docs/configuration
|
# https://git-cliff.org/docs/configuration
|
||||||
|
|
||||||
[remote.github]
|
[remote.github]
|
||||||
owner = "ratatui-org"
|
owner = "ratatui"
|
||||||
repo = "ratatui"
|
repo = "ratatui"
|
||||||
|
|
||||||
[changelog]
|
[changelog]
|
||||||
|
@ -24,11 +24,11 @@ body = """
|
||||||
{%- if not version %}
|
{%- if not version %}
|
||||||
## [unreleased]
|
## [unreleased]
|
||||||
{% else -%}
|
{% else -%}
|
||||||
## [{{ version }}](https://github.com/ratatui-org/ratatui/releases/tag/{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
|
## [{{ version }}](https://github.com/ratatui/ratatui/releases/tag/{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
|
||||||
{% endif -%}
|
{% endif -%}
|
||||||
|
|
||||||
{% macro commit(commit) -%}
|
{% macro commit(commit) -%}
|
||||||
- [{{ commit.id | truncate(length=7, end="") }}]({{ "https://github.com/ratatui-org/ratatui/commit/" ~ commit.id }}) \
|
- [{{ commit.id | truncate(length=7, end="") }}]({{ "https://github.com/ratatui/ratatui/commit/" ~ commit.id }}) \
|
||||||
*({{commit.scope | default(value = "uncategorized") | lower }})* {{ commit.message | upper_first | trim }}\
|
*({{commit.scope | default(value = "uncategorized") | lower }})* {{ commit.message | upper_first | trim }}\
|
||||||
{% if commit.github.username %} by @{{ commit.github.username }}{%- endif -%}\
|
{% if commit.github.username %} by @{{ commit.github.username }}{%- endif -%}\
|
||||||
{% if commit.github.pr_number %} in [#{{ commit.github.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.github.pr_number }}){%- endif %}\
|
{% if commit.github.pr_number %} in [#{{ commit.github.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.github.pr_number }}){%- endif %}\
|
||||||
|
|
|
@ -3,7 +3,7 @@ avoid-breaking-exported-api = false
|
||||||
# https://rust-lang.github.io/rust-clippy/master/index.html#/multiple_crate_versions
|
# https://rust-lang.github.io/rust-clippy/master/index.html#/multiple_crate_versions
|
||||||
# ratatui -> bitflags v2.3
|
# ratatui -> bitflags v2.3
|
||||||
# termwiz -> wezterm-blob-leases -> mac_address -> nix -> bitflags v1.3.2
|
# termwiz -> wezterm-blob-leases -> mac_address -> nix -> bitflags v1.3.2
|
||||||
# crossterm -> all the windows- deps https://github.com/ratatui-org/ratatui/pull/1064#issuecomment-2078848980
|
# crossterm -> all the windows- deps https://github.com/ratatui/ratatui/pull/1064#issuecomment-2078848980
|
||||||
allowed-duplicate-crates = [
|
allowed-duplicate-crates = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"windows-targets",
|
"windows-targets",
|
||||||
|
|
|
@ -10,13 +10,13 @@ This folder might use unreleased code. View the examples for the latest release
|
||||||
> There are a few workaround for this problem:
|
> There are a few workaround for this problem:
|
||||||
>
|
>
|
||||||
> - View the examples as they were when the latest version was release by selecting the tag that
|
> - View the examples as they were when the latest version was release by selecting the tag that
|
||||||
> matches that version. E.g. <https://github.com/ratatui-org/ratatui/tree/v0.26.1/examples>.
|
> matches that version. E.g. <https://github.com/ratatui/ratatui/tree/v0.26.1/examples>.
|
||||||
> - If you're viewing this file on GitHub, there is a combo box at the top of this page which
|
> - If you're viewing this file on GitHub, there is a combo box at the top of this page which
|
||||||
> allows you to select any previous tagged version.
|
> allows you to select any previous tagged version.
|
||||||
> - To view the code locally, checkout the tag. E.g. `git switch --detach v0.26.1`.
|
> - To view the code locally, checkout the tag. E.g. `git switch --detach v0.26.1`.
|
||||||
> - Use the latest [alpha version of Ratatui] in your app. These are released weekly on Saturdays.
|
> - Use the latest [alpha version of Ratatui] in your app. These are released weekly on Saturdays.
|
||||||
> - Compile your code against the main branch either locally by adding e.g. `path = "../ratatui"` to
|
> - Compile your code against the main branch either locally by adding e.g. `path = "../ratatui"` to
|
||||||
> the dependency, or remotely by adding `git = "https://github.com/ratatui-org/ratatui"`
|
> the dependency, or remotely by adding `git = "https://github.com/ratatui/ratatui"`
|
||||||
>
|
>
|
||||||
> For a list of unreleased breaking changes, see [BREAKING-CHANGES.md].
|
> For a list of unreleased breaking changes, see [BREAKING-CHANGES.md].
|
||||||
>
|
>
|
||||||
|
@ -170,7 +170,7 @@ cargo run --example=colors_rgb --features=crossterm
|
||||||
Note: VHs renders full screen animations poorly, so this is a screen capture rather than the output
|
Note: VHs renders full screen animations poorly, so this is a screen capture rather than the output
|
||||||
of the VHS tape.
|
of the VHS tape.
|
||||||
|
|
||||||
<https://github.com/ratatui-org/ratatui/assets/381361/485e775a-e0b5-4133-899b-1e8aeb56e774>
|
<https://github.com/ratatui/ratatui/assets/381361/485e775a-e0b5-4133-899b-1e8aeb56e774>
|
||||||
|
|
||||||
## Constraint Explorer
|
## Constraint Explorer
|
||||||
|
|
||||||
|
@ -441,38 +441,38 @@ examples/vhs/generate.bash
|
||||||
```
|
```
|
||||||
-->
|
-->
|
||||||
|
|
||||||
[barchart.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/barchart.gif?raw=true
|
[barchart.gif]: https://github.com/ratatui/ratatui/blob/images/examples/barchart.gif?raw=true
|
||||||
[barchart-grouped.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/barchart-grouped.gif?raw=true
|
[barchart-grouped.gif]: https://github.com/ratatui/ratatui/blob/images/examples/barchart-grouped.gif?raw=true
|
||||||
[block.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/block.gif?raw=true
|
[block.gif]: https://github.com/ratatui/ratatui/blob/images/examples/block.gif?raw=true
|
||||||
[calendar.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/calendar.gif?raw=true
|
[calendar.gif]: https://github.com/ratatui/ratatui/blob/images/examples/calendar.gif?raw=true
|
||||||
[canvas.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/canvas.gif?raw=true
|
[canvas.gif]: https://github.com/ratatui/ratatui/blob/images/examples/canvas.gif?raw=true
|
||||||
[chart.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/chart.gif?raw=true
|
[chart.gif]: https://github.com/ratatui/ratatui/blob/images/examples/chart.gif?raw=true
|
||||||
[colors.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/colors.gif?raw=true
|
[colors.gif]: https://github.com/ratatui/ratatui/blob/images/examples/colors.gif?raw=true
|
||||||
[constraint-explorer.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/constraint-explorer.gif?raw=true
|
[constraint-explorer.gif]: https://github.com/ratatui/ratatui/blob/images/examples/constraint-explorer.gif?raw=true
|
||||||
[constraints.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/constraints.gif?raw=true
|
[constraints.gif]: https://github.com/ratatui/ratatui/blob/images/examples/constraints.gif?raw=true
|
||||||
[custom_widget.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/custom_widget.gif?raw=true
|
[custom_widget.gif]: https://github.com/ratatui/ratatui/blob/images/examples/custom_widget.gif?raw=true
|
||||||
[demo.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/demo.gif?raw=true
|
[demo.gif]: https://github.com/ratatui/ratatui/blob/images/examples/demo.gif?raw=true
|
||||||
[demo2.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/demo2.gif?raw=true
|
[demo2.gif]: https://github.com/ratatui/ratatui/blob/images/examples/demo2.gif?raw=true
|
||||||
[flex.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/flex.gif?raw=true
|
[flex.gif]: https://github.com/ratatui/ratatui/blob/images/examples/flex.gif?raw=true
|
||||||
[gauge.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/gauge.gif?raw=true
|
[gauge.gif]: https://github.com/ratatui/ratatui/blob/images/examples/gauge.gif?raw=true
|
||||||
[hello_world.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/hello_world.gif?raw=true
|
[hello_world.gif]: https://github.com/ratatui/ratatui/blob/images/examples/hello_world.gif?raw=true
|
||||||
[hyperlink.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/hyperlink.gif?raw=true
|
[hyperlink.gif]: https://github.com/ratatui/ratatui/blob/images/examples/hyperlink.gif?raw=true
|
||||||
[inline.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/inline.gif?raw=true
|
[inline.gif]: https://github.com/ratatui/ratatui/blob/images/examples/inline.gif?raw=true
|
||||||
[layout.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/layout.gif?raw=true
|
[layout.gif]: https://github.com/ratatui/ratatui/blob/images/examples/layout.gif?raw=true
|
||||||
[list.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/list.gif?raw=true
|
[list.gif]: https://github.com/ratatui/ratatui/blob/images/examples/list.gif?raw=true
|
||||||
[line_gauge.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/line_gauge.gif?raw=true
|
[line_gauge.gif]: https://github.com/ratatui/ratatui/blob/images/examples/line_gauge.gif?raw=true
|
||||||
[minimal.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/minimal.gif?raw=true
|
[minimal.gif]: https://github.com/ratatui/ratatui/blob/images/examples/minimal.gif?raw=true
|
||||||
[modifiers.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/modifiers.gif?raw=true
|
[modifiers.gif]: https://github.com/ratatui/ratatui/blob/images/examples/modifiers.gif?raw=true
|
||||||
[panic.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/panic.gif?raw=true
|
[panic.gif]: https://github.com/ratatui/ratatui/blob/images/examples/panic.gif?raw=true
|
||||||
[paragraph.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/paragraph.gif?raw=true
|
[paragraph.gif]: https://github.com/ratatui/ratatui/blob/images/examples/paragraph.gif?raw=true
|
||||||
[popup.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/popup.gif?raw=true
|
[popup.gif]: https://github.com/ratatui/ratatui/blob/images/examples/popup.gif?raw=true
|
||||||
[ratatui-logo.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/ratatui-logo.gif?raw=true
|
[ratatui-logo.gif]: https://github.com/ratatui/ratatui/blob/images/examples/ratatui-logo.gif?raw=true
|
||||||
[scrollbar.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/scrollbar.gif?raw=true
|
[scrollbar.gif]: https://github.com/ratatui/ratatui/blob/images/examples/scrollbar.gif?raw=true
|
||||||
[sparkline.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/sparkline.gif?raw=true
|
[sparkline.gif]: https://github.com/ratatui/ratatui/blob/images/examples/sparkline.gif?raw=true
|
||||||
[table.gif]: https://vhs.charm.sh/vhs-6njXBytDf0rwPufUtmSSpI.gif
|
[table.gif]: https://vhs.charm.sh/vhs-6njXBytDf0rwPufUtmSSpI.gif
|
||||||
[tabs.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/tabs.gif?raw=true
|
[tabs.gif]: https://github.com/ratatui/ratatui/blob/images/examples/tabs.gif?raw=true
|
||||||
[tracing.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/tracing.gif?raw=true
|
[tracing.gif]: https://github.com/ratatui/ratatui/blob/images/examples/tracing.gif?raw=true
|
||||||
[user_input.gif]: https://github.com/ratatui-org/ratatui/blob/images/examples/user_input.gif?raw=true
|
[user_input.gif]: https://github.com/ratatui/ratatui/blob/images/examples/user_input.gif?raw=true
|
||||||
|
|
||||||
[alpha version of Ratatui]: https://crates.io/crates/ratatui/versions
|
[alpha version of Ratatui]: https://crates.io/crates/ratatui/versions
|
||||||
[BREAKING-CHANGES.md]: https://github.com/ratatui-org/ratatui/blob/main/BREAKING-CHANGES.md
|
[BREAKING-CHANGES.md]: https://github.com/ratatui/ratatui/blob/main/BREAKING-CHANGES.md
|
||||||
|
|
|
@ -26,9 +26,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
use std::{
|
use std::{
|
||||||
sync::{Arc, RwLock},
|
sync::{Arc, RwLock},
|
||||||
time::Duration,
|
time::Duration,
|
||||||
|
@ -174,7 +174,7 @@ impl PullRequestsWidget {
|
||||||
// messages to refresh on demand, or with an interval timer to refresh every N seconds
|
// messages to refresh on demand, or with an interval timer to refresh every N seconds
|
||||||
self.set_loading_state(LoadingState::Loading);
|
self.set_loading_state(LoadingState::Loading);
|
||||||
match octocrab::instance()
|
match octocrab::instance()
|
||||||
.pulls("ratatui-org", "ratatui")
|
.pulls("ratatui", "ratatui")
|
||||||
.list()
|
.list()
|
||||||
.sort(Sort::Updated)
|
.sort(Sort::Updated)
|
||||||
.direction(Direction::Descending)
|
.direction(Direction::Descending)
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::iter::zip;
|
use std::iter::zip;
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use color_eyre::Result;
|
use color_eyre::Result;
|
||||||
use rand::{thread_rng, Rng};
|
use rand::{thread_rng, Rng};
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
error::Error,
|
error::Error,
|
||||||
|
@ -183,7 +183,7 @@ fn render_styled_block(paragraph: &Paragraph, frame: &mut Frame, area: Rect) {
|
||||||
frame.render_widget(paragraph.clone().block(block), area);
|
frame.render_widget(paragraph.clone().block(block), area);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: this currently renders incorrectly, see https://github.com/ratatui-org/ratatui/issues/349
|
// Note: this currently renders incorrectly, see https://github.com/ratatui/ratatui/issues/349
|
||||||
fn render_styled_title(paragraph: &Paragraph, frame: &mut Frame, area: Rect) {
|
fn render_styled_title(paragraph: &Paragraph, frame: &mut Frame, area: Rect) {
|
||||||
let block = Block::bordered()
|
let block = Block::bordered()
|
||||||
.title("Styled title")
|
.title("Styled title")
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{error::Error, io};
|
use std::{error::Error, io};
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
io::{self, stdout, Stdout},
|
io::{self, stdout, Stdout},
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
error::Error,
|
error::Error,
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
// This example shows all the colors supported by ratatui. It will render a grid of foreground
|
// This example shows all the colors supported by ratatui. It will render a grid of foreground
|
||||||
// and background colors with their names and indexes.
|
// and background colors with their names and indexes.
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
// This example shows the full range of RGB colors that can be displayed in the terminal.
|
// This example shows the full range of RGB colors that can be displayed in the terminal.
|
||||||
//
|
//
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::io::{self, stdout};
|
use std::io::{self, stdout};
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::io::{self, stdout};
|
use std::io::{self, stdout};
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{error::Error, io, ops::ControlFlow, time::Duration};
|
use std::{error::Error, io, ops::ControlFlow, time::Duration};
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{error::Error, time::Duration};
|
use std::{error::Error, time::Duration};
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
#![allow(
|
#![allow(
|
||||||
clippy::missing_errors_doc,
|
clippy::missing_errors_doc,
|
||||||
|
|
|
@ -88,7 +88,7 @@ fn render_simple_barchart(area: Rect, buf: &mut Buffer) {
|
||||||
Bar::default()
|
Bar::default()
|
||||||
.value(value)
|
.value(value)
|
||||||
// This doesn't actually render correctly as the text is too wide for the bar
|
// This doesn't actually render correctly as the text is too wide for the bar
|
||||||
// See https://github.com/ratatui-org/ratatui/issues/513 for more info
|
// See https://github.com/ratatui/ratatui/issues/513 for more info
|
||||||
// (the demo GIFs hack around this by hacking the calculation in bars.rs)
|
// (the demo GIFs hack around this by hacking the calculation in bars.rs)
|
||||||
.text_value(format!("{value}°"))
|
.text_value(format!("{value}°"))
|
||||||
.style(if value > 70 {
|
.style(if value > 70 {
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::io::{self, stdout};
|
use std::io::{self, stdout};
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
io::{self, stdout},
|
io::{self, stdout},
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{io::stdout, time::Duration};
|
use std::{io::stdout, time::Duration};
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
io::{self, Stdout},
|
io::{self, Stdout},
|
||||||
|
|
|
@ -12,9 +12,9 @@
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [OSC 8]: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
|
//! [OSC 8]: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
io::{self, stdout, Stdout},
|
io::{self, stdout, Stdout},
|
||||||
|
@ -96,7 +96,7 @@ impl WidgetRef for Hyperlink<'_> {
|
||||||
fn render_ref(&self, area: Rect, buffer: &mut Buffer) {
|
fn render_ref(&self, area: Rect, buffer: &mut Buffer) {
|
||||||
self.text.render_ref(area, buffer);
|
self.text.render_ref(area, buffer);
|
||||||
|
|
||||||
// this is a hacky workaround for https://github.com/ratatui-org/ratatui/issues/902, a bug
|
// this is a hacky workaround for https://github.com/ratatui/ratatui/issues/902, a bug
|
||||||
// in the terminal code that incorrectly calculates the width of ANSI escape sequences. It
|
// in the terminal code that incorrectly calculates the width of ANSI escape sequences. It
|
||||||
// works by rendering the hyperlink as a series of 2-character chunks, which is the
|
// works by rendering the hyperlink as a series of 2-character chunks, which is the
|
||||||
// calculated width of the hyperlink text.
|
// calculated width of the hyperlink text.
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
collections::{BTreeMap, VecDeque},
|
collections::{BTreeMap, VecDeque},
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{error::Error, io};
|
use std::{error::Error, io};
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{io::stdout, time::Duration};
|
use std::{io::stdout, time::Duration};
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{error::Error, io};
|
use std::{error::Error, io};
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use ratatui::{
|
use ratatui::{
|
||||||
backend::CrosstermBackend,
|
backend::CrosstermBackend,
|
||||||
|
@ -28,8 +28,8 @@ use ratatui::{
|
||||||
/// this is not meant to be prescriptive. See the [examples] folder for more complete examples.
|
/// this is not meant to be prescriptive. See the [examples] folder for more complete examples.
|
||||||
/// In particular, the [hello-world] example is a good starting point.
|
/// In particular, the [hello-world] example is a good starting point.
|
||||||
///
|
///
|
||||||
/// [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
/// [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
/// [hello-world]: https://github.com/ratatui-org/ratatui/blob/main/examples/hello_world.rs
|
/// [hello-world]: https://github.com/ratatui/ratatui/blob/main/examples/hello_world.rs
|
||||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
let mut terminal = Terminal::new(CrosstermBackend::new(std::io::stdout()))?;
|
let mut terminal = Terminal::new(CrosstermBackend::new(std::io::stdout()))?;
|
||||||
enable_raw_mode()?;
|
enable_raw_mode()?;
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
// This example is useful for testing how your terminal emulator handles different modifiers.
|
// This example is useful for testing how your terminal emulator handles different modifiers.
|
||||||
// It will render a grid of combinations of foreground and background colors with all
|
// It will render a grid of combinations of foreground and background colors with all
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
//! How to use a panic hook to reset the terminal before printing the panic to
|
//! How to use a panic hook to reset the terminal before printing the panic to
|
||||||
//! the terminal.
|
//! the terminal.
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
io::{self},
|
io::{self},
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
// See also https://github.com/joshka/tui-popup and
|
// See also https://github.com/joshka/tui-popup and
|
||||||
// https://github.com/sephiroth74/tui-confirm-dialog
|
// https://github.com/sephiroth74/tui-confirm-dialog
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
io::{self, stdout},
|
io::{self, stdout},
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
#![warn(clippy::pedantic)]
|
#![warn(clippy::pedantic)]
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
error::Error,
|
error::Error,
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::{error::Error, io};
|
use std::{error::Error, io};
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
use std::io::stdout;
|
use std::io::stdout;
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
// A simple example demonstrating how to use the [tracing] with Ratatui to log to a file.
|
// A simple example demonstrating how to use the [tracing] with Ratatui to log to a file.
|
||||||
//
|
//
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
//! See the [examples readme] for more information on finding examples that match the version of the
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
||||||
//! library you are using.
|
//! library you are using.
|
||||||
//!
|
//!
|
||||||
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
//! [Ratatui]: https://github.com/ratatui/ratatui
|
||||||
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
//! [examples]: https://github.com/ratatui/ratatui/blob/main/examples
|
||||||
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
|
|
||||||
// A simple example demonstrating how to handle user input. This is a bit out of the scope of
|
// 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 input handling out of the box. However, it may helps
|
// the library as it does not provide any input handling out of the box. However, it may helps
|
||||||
|
|
|
@ -30,7 +30,7 @@ for tape_path in examples/vhs/*.tape; do
|
||||||
gif_file=${tape_file/.tape/.gif} # replace the .tape suffix with .gif
|
gif_file=${tape_file/.tape/.gif} # replace the .tape suffix with .gif
|
||||||
~/go/bin/vhs $tape_path --quiet
|
~/go/bin/vhs $tape_path --quiet
|
||||||
# this can be pasted into the examples README.md
|
# this can be pasted into the examples README.md
|
||||||
echo "[${gif_file}]: https://github.com/ratatui-org/ratatui/blob/images/examples/${gif_file}?raw=true"
|
echo "[${gif_file}]: https://github.com/ratatui/ratatui/blob/images/examples/${gif_file}?raw=true"
|
||||||
done
|
done
|
||||||
git switch images
|
git switch images
|
||||||
git pull --rebase upstream images
|
git pull --rebase upstream images
|
||||||
|
|
|
@ -96,10 +96,10 @@
|
||||||
//! [Crossterm]: https://crates.io/crates/crossterm
|
//! [Crossterm]: https://crates.io/crates/crossterm
|
||||||
//! [Termion]: https://crates.io/crates/termion
|
//! [Termion]: https://crates.io/crates/termion
|
||||||
//! [Termwiz]: https://crates.io/crates/termwiz
|
//! [Termwiz]: https://crates.io/crates/termwiz
|
||||||
//! [Examples]: https://github.com/ratatui-org/ratatui/tree/main/examples/README.md
|
//! [Examples]: https://github.com/ratatui/ratatui/tree/main/examples/README.md
|
||||||
//! [Backend Comparison]:
|
//! [Backend Comparison]:
|
||||||
//! https://ratatui.rs/concepts/backends/comparison/
|
//! https://ratatui.rs/concepts/backends/comparison/
|
||||||
//! [Ratatui Website]: https://ratatui-org.github.io/ratatui-book
|
//! [Ratatui Website]: https://ratatui.rs
|
||||||
use std::io;
|
use std::io;
|
||||||
|
|
||||||
use strum::{Display, EnumString};
|
use strum::{Display, EnumString};
|
||||||
|
|
|
@ -80,7 +80,7 @@ use crate::{
|
||||||
/// [`Terminal`]: crate::terminal::Terminal
|
/// [`Terminal`]: crate::terminal::Terminal
|
||||||
/// [`backend`]: crate::backend
|
/// [`backend`]: crate::backend
|
||||||
/// [Crossterm]: https://crates.io/crates/crossterm
|
/// [Crossterm]: https://crates.io/crates/crossterm
|
||||||
/// [Examples]: https://github.com/ratatui-org/ratatui/tree/main/examples/README.md
|
/// [Examples]: https://github.com/ratatui/ratatui/tree/main/examples/README.md
|
||||||
#[derive(Debug, Default, Clone, Eq, PartialEq, Hash)]
|
#[derive(Debug, Default, Clone, Eq, PartialEq, Hash)]
|
||||||
pub struct CrosstermBackend<W: Write> {
|
pub struct CrosstermBackend<W: Write> {
|
||||||
/// The writer used to send commands to the terminal.
|
/// The writer used to send commands to the terminal.
|
||||||
|
@ -107,7 +107,7 @@ where
|
||||||
/// Gets the writer.
|
/// Gets the writer.
|
||||||
#[instability::unstable(
|
#[instability::unstable(
|
||||||
feature = "backend-writer",
|
feature = "backend-writer",
|
||||||
issue = "https://github.com/ratatui-org/ratatui/pull/991"
|
issue = "https://github.com/ratatui/ratatui/pull/991"
|
||||||
)]
|
)]
|
||||||
pub const fn writer(&self) -> &W {
|
pub const fn writer(&self) -> &W {
|
||||||
&self.writer
|
&self.writer
|
||||||
|
@ -119,7 +119,7 @@ where
|
||||||
/// way that the Terminal implements diffing Buffers.
|
/// way that the Terminal implements diffing Buffers.
|
||||||
#[instability::unstable(
|
#[instability::unstable(
|
||||||
feature = "backend-writer",
|
feature = "backend-writer",
|
||||||
issue = "https://github.com/ratatui-org/ratatui/pull/991"
|
issue = "https://github.com/ratatui/ratatui/pull/991"
|
||||||
)]
|
)]
|
||||||
pub fn writer_mut(&mut self) -> &mut W {
|
pub fn writer_mut(&mut self) -> &mut W {
|
||||||
&mut self.writer
|
&mut self.writer
|
||||||
|
|
|
@ -90,7 +90,7 @@ where
|
||||||
/// Gets the writer.
|
/// Gets the writer.
|
||||||
#[instability::unstable(
|
#[instability::unstable(
|
||||||
feature = "backend-writer",
|
feature = "backend-writer",
|
||||||
issue = "https://github.com/ratatui-org/ratatui/pull/991"
|
issue = "https://github.com/ratatui/ratatui/pull/991"
|
||||||
)]
|
)]
|
||||||
pub const fn writer(&self) -> &W {
|
pub const fn writer(&self) -> &W {
|
||||||
&self.writer
|
&self.writer
|
||||||
|
@ -101,7 +101,7 @@ where
|
||||||
/// way that the Terminal implements diffing Buffers.
|
/// way that the Terminal implements diffing Buffers.
|
||||||
#[instability::unstable(
|
#[instability::unstable(
|
||||||
feature = "backend-writer",
|
feature = "backend-writer",
|
||||||
issue = "https://github.com/ratatui-org/ratatui/pull/991"
|
issue = "https://github.com/ratatui/ratatui/pull/991"
|
||||||
)]
|
)]
|
||||||
pub fn writer_mut(&mut self) -> &mut W {
|
pub fn writer_mut(&mut self) -> &mut W {
|
||||||
&mut self.writer
|
&mut self.writer
|
||||||
|
|
|
@ -57,7 +57,7 @@ use crate::{
|
||||||
/// [`Terminal`]: crate::terminal::Terminal
|
/// [`Terminal`]: crate::terminal::Terminal
|
||||||
/// [`BufferedTerminal`]: termwiz::terminal::buffered::BufferedTerminal
|
/// [`BufferedTerminal`]: termwiz::terminal::buffered::BufferedTerminal
|
||||||
/// [Termwiz]: https://crates.io/crates/termwiz
|
/// [Termwiz]: https://crates.io/crates/termwiz
|
||||||
/// [Examples]: https://github.com/ratatui-org/ratatui/tree/main/examples/README.md
|
/// [Examples]: https://github.com/ratatui/ratatui/tree/main/examples/README.md
|
||||||
pub struct TermwizBackend {
|
pub struct TermwizBackend {
|
||||||
buffered_terminal: BufferedTerminal<SystemTerminal>,
|
buffered_terminal: BufferedTerminal<SystemTerminal>,
|
||||||
}
|
}
|
||||||
|
|
|
@ -246,7 +246,7 @@ impl Buffer {
|
||||||
///
|
///
|
||||||
/// Returns `None` if the given coordinates are outside of the Buffer's area.
|
/// Returns `None` if the given coordinates are outside of the Buffer's area.
|
||||||
///
|
///
|
||||||
/// Note that this is private because of <https://github.com/ratatui-org/ratatui/issues/1122>
|
/// Note that this is private because of <https://github.com/ratatui/ratatui/issues/1122>
|
||||||
#[must_use]
|
#[must_use]
|
||||||
const fn index_of_opt(&self, position: Position) -> Option<usize> {
|
const fn index_of_opt(&self, position: Position) -> Option<usize> {
|
||||||
let area = self.area;
|
let area = self.area;
|
||||||
|
|
|
@ -13,7 +13,7 @@ pub struct Cell {
|
||||||
/// This is a [`CompactString`] which is a wrapper around [`String`] that uses a small inline
|
/// This is a [`CompactString`] which is a wrapper around [`String`] that uses a small inline
|
||||||
/// buffer for short strings.
|
/// buffer for short strings.
|
||||||
///
|
///
|
||||||
/// See <https://github.com/ratatui-org/ratatui/pull/601> for more information.
|
/// See <https://github.com/ratatui/ratatui/pull/601> for more information.
|
||||||
symbol: CompactString,
|
symbol: CompactString,
|
||||||
|
|
||||||
/// The foreground color of the cell.
|
/// The foreground color of the cell.
|
||||||
|
|
|
@ -107,7 +107,7 @@ thread_local! {
|
||||||
/// example](https://camo.githubusercontent.com/77d22f3313b782a81e5e033ef82814bb48d786d2598699c27f8e757ccee62021/68747470733a2f2f7668732e636861726d2e73682f7668732d315a4e6f4e4c4e6c4c746b4a58706767396e435635652e676966)
|
/// example](https://camo.githubusercontent.com/77d22f3313b782a81e5e033ef82814bb48d786d2598699c27f8e757ccee62021/68747470733a2f2f7668732e636861726d2e73682f7668732d315a4e6f4e4c4e6c4c746b4a58706767396e435635652e676966)
|
||||||
///
|
///
|
||||||
/// [`cassowary-rs`]: https://crates.io/crates/cassowary
|
/// [`cassowary-rs`]: https://crates.io/crates/cassowary
|
||||||
/// [Examples]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
/// [Examples]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
#[derive(Debug, Default, Clone, Eq, PartialEq, Hash)]
|
#[derive(Debug, Default, Clone, Eq, PartialEq, Hash)]
|
||||||
pub struct Layout {
|
pub struct Layout {
|
||||||
direction: Direction,
|
direction: Direction,
|
||||||
|
@ -1888,7 +1888,7 @@ mod tests {
|
||||||
);
|
);
|
||||||
|
|
||||||
// minimal bug from
|
// minimal bug from
|
||||||
// https://github.com/ratatui-org/ratatui/pull/404#issuecomment-1681850644
|
// https://github.com/ratatui/ratatui/pull/404#issuecomment-1681850644
|
||||||
// TODO: check if this bug is now resolved?
|
// TODO: check if this bug is now resolved?
|
||||||
let layout = Layout::default()
|
let layout = Layout::default()
|
||||||
.constraints([Min(1), Length(0), Min(1)])
|
.constraints([Min(1), Length(0), Min(1)])
|
||||||
|
|
44
src/lib.rs
44
src/lib.rs
|
@ -1,4 +1,4 @@
|
||||||
//! ![Demo](https://github.com/ratatui-org/ratatui/blob/87ae72dbc756067c97f6400d3e2a58eeb383776e/examples/demo2-destroy.gif?raw=true)
|
//! ![Demo](https://github.com/ratatui/ratatui/blob/87ae72dbc756067c97f6400d3e2a58eeb383776e/examples/demo2-destroy.gif?raw=true)
|
||||||
//!
|
//!
|
||||||
//! <div align="center">
|
//! <div align="center">
|
||||||
//!
|
//!
|
||||||
|
@ -259,21 +259,21 @@
|
||||||
//! [Handling Events]: https://ratatui.rs/concepts/event-handling/
|
//! [Handling Events]: https://ratatui.rs/concepts/event-handling/
|
||||||
//! [Layout]: https://ratatui.rs/how-to/layout/
|
//! [Layout]: https://ratatui.rs/how-to/layout/
|
||||||
//! [Styling Text]: https://ratatui.rs/how-to/render/style-text/
|
//! [Styling Text]: https://ratatui.rs/how-to/render/style-text/
|
||||||
//! [templates]: https://github.com/ratatui-org/templates/
|
//! [templates]: https://github.com/ratatui/templates/
|
||||||
//! [Examples]: https://github.com/ratatui-org/ratatui/tree/main/examples/README.md
|
//! [Examples]: https://github.com/ratatui/ratatui/tree/main/examples/README.md
|
||||||
//! [Report a bug]: https://github.com/ratatui-org/ratatui/issues/new?labels=bug&projects=&template=bug_report.md
|
//! [Report a bug]: https://github.com/ratatui/ratatui/issues/new?labels=bug&projects=&template=bug_report.md
|
||||||
//! [Request a Feature]: https://github.com/ratatui-org/ratatui/issues/new?labels=enhancement&projects=&template=feature_request.md
|
//! [Request a Feature]: https://github.com/ratatui/ratatui/issues/new?labels=enhancement&projects=&template=feature_request.md
|
||||||
//! [Create a Pull Request]: https://github.com/ratatui-org/ratatui/compare
|
//! [Create a Pull Request]: https://github.com/ratatui/ratatui/compare
|
||||||
//! [git-cliff]: https://git-cliff.org
|
//! [git-cliff]: https://git-cliff.org
|
||||||
//! [Conventional Commits]: https://www.conventionalcommits.org
|
//! [Conventional Commits]: https://www.conventionalcommits.org
|
||||||
//! [API Docs]: https://docs.rs/ratatui
|
//! [API Docs]: https://docs.rs/ratatui
|
||||||
//! [Changelog]: https://github.com/ratatui-org/ratatui/blob/main/CHANGELOG.md
|
//! [Changelog]: https://github.com/ratatui/ratatui/blob/main/CHANGELOG.md
|
||||||
//! [Contributing]: https://github.com/ratatui-org/ratatui/blob/main/CONTRIBUTING.md
|
//! [Contributing]: https://github.com/ratatui/ratatui/blob/main/CONTRIBUTING.md
|
||||||
//! [Breaking Changes]: https://github.com/ratatui-org/ratatui/blob/main/BREAKING-CHANGES.md
|
//! [Breaking Changes]: https://github.com/ratatui/ratatui/blob/main/BREAKING-CHANGES.md
|
||||||
//! [FOSDEM 2024 talk]: https://www.youtube.com/watch?v=NU0q6NOLJ20
|
//! [FOSDEM 2024 talk]: https://www.youtube.com/watch?v=NU0q6NOLJ20
|
||||||
//! [docsrs-hello]: https://github.com/ratatui-org/ratatui/blob/c3c3c289b1eb8d562afb1931adb4dc719cd48490/examples/docsrs-hello.png?raw=true
|
//! [docsrs-hello]: https://github.com/ratatui/ratatui/blob/c3c3c289b1eb8d562afb1931adb4dc719cd48490/examples/docsrs-hello.png?raw=true
|
||||||
//! [docsrs-layout]: https://github.com/ratatui-org/ratatui/blob/c3c3c289b1eb8d562afb1931adb4dc719cd48490/examples/docsrs-layout.png?raw=true
|
//! [docsrs-layout]: https://github.com/ratatui/ratatui/blob/c3c3c289b1eb8d562afb1931adb4dc719cd48490/examples/docsrs-layout.png?raw=true
|
||||||
//! [docsrs-styling]: https://github.com/ratatui-org/ratatui/blob/c3c3c289b1eb8d562afb1931adb4dc719cd48490/examples/docsrs-styling.png?raw=true
|
//! [docsrs-styling]: https://github.com/ratatui/ratatui/blob/c3c3c289b1eb8d562afb1931adb4dc719cd48490/examples/docsrs-styling.png?raw=true
|
||||||
//! [`Frame`]: terminal::Frame
|
//! [`Frame`]: terminal::Frame
|
||||||
//! [`render_widget`]: terminal::Frame::render_widget
|
//! [`render_widget`]: terminal::Frame::render_widget
|
||||||
//! [`Widget`]: widgets::Widget
|
//! [`Widget`]: widgets::Widget
|
||||||
|
@ -292,15 +292,15 @@
|
||||||
//! [Termion]: https://crates.io/crates/termion
|
//! [Termion]: https://crates.io/crates/termion
|
||||||
//! [Termwiz]: https://crates.io/crates/termwiz
|
//! [Termwiz]: https://crates.io/crates/termwiz
|
||||||
//! [tui-rs]: https://crates.io/crates/tui
|
//! [tui-rs]: https://crates.io/crates/tui
|
||||||
//! [GitHub Sponsors]: https://github.com/sponsors/ratatui-org
|
//! [GitHub Sponsors]: https://github.com/sponsors/ratatui
|
||||||
//! [Crate Badge]: https://img.shields.io/crates/v/ratatui?logo=rust&style=flat-square&logoColor=E05D44&color=E05D44
|
//! [Crate Badge]: https://img.shields.io/crates/v/ratatui?logo=rust&style=flat-square&logoColor=E05D44&color=E05D44
|
||||||
//! [License Badge]: https://img.shields.io/crates/l/ratatui?style=flat-square&color=1370D3
|
//! [License Badge]: https://img.shields.io/crates/l/ratatui?style=flat-square&color=1370D3
|
||||||
//! [CI Badge]: https://img.shields.io/github/actions/workflow/status/ratatui-org/ratatui/ci.yml?style=flat-square&logo=github
|
//! [CI Badge]: https://img.shields.io/github/actions/workflow/status/ratatui/ratatui/ci.yml?style=flat-square&logo=github
|
||||||
//! [CI Workflow]: https://github.com/ratatui-org/ratatui/actions/workflows/ci.yml
|
//! [CI Workflow]: https://github.com/ratatui/ratatui/actions/workflows/ci.yml
|
||||||
//! [Codecov Badge]: https://img.shields.io/codecov/c/github/ratatui-org/ratatui?logo=codecov&style=flat-square&token=BAQ8SOKEST&color=C43AC3&logoColor=C43AC3
|
//! [Codecov Badge]: https://img.shields.io/codecov/c/github/ratatui/ratatui?logo=codecov&style=flat-square&token=BAQ8SOKEST&color=C43AC3&logoColor=C43AC3
|
||||||
//! [Codecov]: https://app.codecov.io/gh/ratatui-org/ratatui
|
//! [Codecov]: https://app.codecov.io/gh/ratatui/ratatui
|
||||||
//! [Deps.rs Badge]: https://deps.rs/repo/github/ratatui-org/ratatui/status.svg?style=flat-square
|
//! [Deps.rs Badge]: https://deps.rs/repo/github/ratatui/ratatui/status.svg?style=flat-square
|
||||||
//! [Deps.rs]: https://deps.rs/repo/github/ratatui-org/ratatui
|
//! [Deps.rs]: https://deps.rs/repo/github/ratatui/ratatui
|
||||||
//! [Discord Badge]: https://img.shields.io/discord/1070692720437383208?label=discord&logo=discord&style=flat-square&color=1370D3&logoColor=1370D3
|
//! [Discord Badge]: https://img.shields.io/discord/1070692720437383208?label=discord&logo=discord&style=flat-square&color=1370D3&logoColor=1370D3
|
||||||
//! [Discord Server]: https://discord.gg/pMCEU9hNEj
|
//! [Discord Server]: https://discord.gg/pMCEU9hNEj
|
||||||
//! [Docs Badge]: https://img.shields.io/docsrs/ratatui?logo=rust&style=flat-square&logoColor=E05D44
|
//! [Docs Badge]: https://img.shields.io/docsrs/ratatui?logo=rust&style=flat-square&logoColor=E05D44
|
||||||
|
@ -308,13 +308,13 @@
|
||||||
//! [Matrix]: https://matrix.to/#/#ratatui:matrix.org
|
//! [Matrix]: https://matrix.to/#/#ratatui:matrix.org
|
||||||
//! [Forum Badge]: https://img.shields.io/discourse/likes?server=https%3A%2F%2Fforum.ratatui.rs&style=flat-square&logo=discourse&label=forum&color=C43AC3
|
//! [Forum Badge]: https://img.shields.io/discourse/likes?server=https%3A%2F%2Fforum.ratatui.rs&style=flat-square&logo=discourse&label=forum&color=C43AC3
|
||||||
//! [Forum]: https://forum.ratatui.rs
|
//! [Forum]: https://forum.ratatui.rs
|
||||||
//! [Sponsors Badge]: https://img.shields.io/github/sponsors/ratatui-org?logo=github&style=flat-square&color=1370D3
|
//! [Sponsors Badge]: https://img.shields.io/github/sponsors/ratatui?logo=github&style=flat-square&color=1370D3
|
||||||
|
|
||||||
// show the feature flags in the generated documentation
|
// show the feature flags in the generated documentation
|
||||||
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
|
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
|
||||||
#![doc(
|
#![doc(
|
||||||
html_logo_url = "https://raw.githubusercontent.com/ratatui-org/ratatui/main/assets/logo.png",
|
html_logo_url = "https://raw.githubusercontent.com/ratatui/ratatui/main/assets/logo.png",
|
||||||
html_favicon_url = "https://raw.githubusercontent.com/ratatui-org/ratatui/main/assets/favicon.ico"
|
html_favicon_url = "https://raw.githubusercontent.com/ratatui/ratatui/main/assets/favicon.ico"
|
||||||
)]
|
)]
|
||||||
|
|
||||||
/// re-export the `crossterm` crate so that users don't have to add it as a dependency
|
/// re-export the `crossterm` crate so that users don't have to add it as a dependency
|
||||||
|
|
|
@ -113,7 +113,7 @@ pub enum Color {
|
||||||
/// If the terminal does not support true color, code using the [`TermwizBackend`] will
|
/// If the terminal does not support true color, code using the [`TermwizBackend`] will
|
||||||
/// fallback to the default text color. Crossterm and Termion do not have this capability and
|
/// fallback to the default text color. Crossterm and Termion do not have this capability and
|
||||||
/// the display will be unpredictable (e.g. Terminal.app may display glitched blinking text).
|
/// the display will be unpredictable (e.g. Terminal.app may display glitched blinking text).
|
||||||
/// See <https://github.com/ratatui-org/ratatui/issues/475> for an example of this problem.
|
/// See <https://github.com/ratatui/ratatui/issues/475> for an example of this problem.
|
||||||
///
|
///
|
||||||
/// See also: <https://en.wikipedia.org/wiki/ANSI_escape_code#24-bit>
|
/// See also: <https://en.wikipedia.org/wiki/ANSI_escape_code#24-bit>
|
||||||
///
|
///
|
||||||
|
|
|
@ -1193,7 +1193,7 @@ mod tests {
|
||||||
assert_eq!(buf, Buffer::with_lines(["lo wo"]));
|
assert_eq!(buf, Buffer::with_lines(["lo wo"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Part of a regression test for <https://github.com/ratatui-org/ratatui/issues/1032> which
|
/// Part of a regression test for <https://github.com/ratatui/ratatui/issues/1032> which
|
||||||
/// found panics with truncating lines that contained multi-byte characters.
|
/// found panics with truncating lines that contained multi-byte characters.
|
||||||
#[test]
|
#[test]
|
||||||
fn regression_1032() {
|
fn regression_1032() {
|
||||||
|
@ -1209,7 +1209,7 @@ mod tests {
|
||||||
|
|
||||||
/// Documentary test to highlight the crab emoji width / length discrepancy
|
/// Documentary test to highlight the crab emoji width / length discrepancy
|
||||||
///
|
///
|
||||||
/// Part of a regression test for <https://github.com/ratatui-org/ratatui/issues/1032> which
|
/// Part of a regression test for <https://github.com/ratatui/ratatui/issues/1032> which
|
||||||
/// found panics with truncating lines that contained multi-byte characters.
|
/// found panics with truncating lines that contained multi-byte characters.
|
||||||
#[test]
|
#[test]
|
||||||
fn crab_emoji_width() {
|
fn crab_emoji_width() {
|
||||||
|
@ -1220,7 +1220,7 @@ mod tests {
|
||||||
assert_eq!(crab.width(), 2); // display width
|
assert_eq!(crab.width(), 2); // display width
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Part of a regression test for <https://github.com/ratatui-org/ratatui/issues/1032> which
|
/// Part of a regression test for <https://github.com/ratatui/ratatui/issues/1032> which
|
||||||
/// found panics with truncating lines that contained multi-byte characters.
|
/// found panics with truncating lines that contained multi-byte characters.
|
||||||
#[rstest]
|
#[rstest]
|
||||||
#[case::left_4(Alignment::Left, 4, "1234")]
|
#[case::left_4(Alignment::Left, 4, "1234")]
|
||||||
|
@ -1242,7 +1242,7 @@ mod tests {
|
||||||
assert_eq!(buf, Buffer::with_lines([expected]));
|
assert_eq!(buf, Buffer::with_lines([expected]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Part of a regression test for <https://github.com/ratatui-org/ratatui/issues/1032> which
|
/// Part of a regression test for <https://github.com/ratatui/ratatui/issues/1032> which
|
||||||
/// found panics with truncating lines that contained multi-byte characters.
|
/// found panics with truncating lines that contained multi-byte characters.
|
||||||
///
|
///
|
||||||
/// centering is tricky because there's an ambiguity about whether to take one more char
|
/// centering is tricky because there's an ambiguity about whether to take one more char
|
||||||
|
@ -1331,7 +1331,7 @@ mod tests {
|
||||||
assert_eq!(buf, Buffer::with_lines([expected]));
|
assert_eq!(buf, Buffer::with_lines([expected]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Part of a regression test for <https://github.com/ratatui-org/ratatui/issues/1032> which
|
/// Part of a regression test for <https://github.com/ratatui/ratatui/issues/1032> which
|
||||||
/// found panics with truncating lines that contained multi-byte characters.
|
/// found panics with truncating lines that contained multi-byte characters.
|
||||||
///
|
///
|
||||||
/// Flag emoji are actually two independent characters, so they can be truncated in the
|
/// Flag emoji are actually two independent characters, so they can be truncated in the
|
||||||
|
@ -1345,7 +1345,7 @@ mod tests {
|
||||||
assert_eq!(str.width(), 6); // flag is 2 display width
|
assert_eq!(str.width(), 6); // flag is 2 display width
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Part of a regression test for <https://github.com/ratatui-org/ratatui/issues/1032> which
|
/// Part of a regression test for <https://github.com/ratatui/ratatui/issues/1032> which
|
||||||
/// found panics with truncating lines that contained multi-byte characters.
|
/// found panics with truncating lines that contained multi-byte characters.
|
||||||
#[rstest]
|
#[rstest]
|
||||||
#[case::flag_1(1, " ")]
|
#[case::flag_1(1, " ")]
|
||||||
|
|
|
@ -569,7 +569,7 @@ mod tests {
|
||||||
assert_eq!(Span::raw("").width(), 0);
|
assert_eq!(Span::raw("").width(), 0);
|
||||||
assert_eq!(Span::raw("test").width(), 4);
|
assert_eq!(Span::raw("test").width(), 4);
|
||||||
assert_eq!(Span::raw("test content").width(), 12);
|
assert_eq!(Span::raw("test content").width(), 12);
|
||||||
// Needs reconsideration: https://github.com/ratatui-org/ratatui/issues/1271
|
// Needs reconsideration: https://github.com/ratatui/ratatui/issues/1271
|
||||||
assert_eq!(Span::raw("test\ncontent").width(), 12);
|
assert_eq!(Span::raw("test\ncontent").width(), 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -786,7 +786,7 @@ mod tests {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Regression test for <https://github.com/ratatui-org/ratatui/issues/1160> One line contains
|
/// Regression test for <https://github.com/ratatui/ratatui/issues/1160> One line contains
|
||||||
/// some Unicode Left-Right-Marks (U+200E)
|
/// some Unicode Left-Right-Marks (U+200E)
|
||||||
///
|
///
|
||||||
/// The issue was that a zero-width character at the end of the buffer causes the buffer bounds
|
/// The issue was that a zero-width character at the end of the buffer causes the buffer bounds
|
||||||
|
|
|
@ -68,7 +68,7 @@ use crate::{buffer::Buffer, layout::Rect, style::Style};
|
||||||
/// internal widgets. In addition to the above benefit of rendering references to widgets, this also
|
/// internal widgets. In addition to the above benefit of rendering references to widgets, this also
|
||||||
/// allows you to render boxed widgets. This is useful when you want to store a collection of
|
/// allows you to render boxed widgets. This is useful when you want to store a collection of
|
||||||
/// widgets with different types. You can then iterate over the collection and render each widget.
|
/// widgets with different types. You can then iterate over the collection and render each widget.
|
||||||
/// See <https://github.com/ratatui-org/ratatui/issues/1287> for more information.
|
/// See <https://github.com/ratatui/ratatui/issues/1287> for more information.
|
||||||
///
|
///
|
||||||
/// In general where you expect a widget to immutably work on its data, we recommended to implement
|
/// In general where you expect a widget to immutably work on its data, we recommended to implement
|
||||||
/// `Widget` for a reference to the widget (`impl Widget for &MyWidget`). If you need to store state
|
/// `Widget` for a reference to the widget (`impl Widget for &MyWidget`). If you need to store state
|
||||||
|
@ -245,7 +245,7 @@ pub trait StatefulWidget {
|
||||||
///
|
///
|
||||||
/// This trait was introduced in Ratatui 0.26.0 and is implemented for all the internal widgets. It
|
/// This trait was introduced in Ratatui 0.26.0 and is implemented for all the internal widgets. It
|
||||||
/// is currently marked as unstable as we are still evaluating the API and may make changes in the
|
/// is currently marked as unstable as we are still evaluating the API and may make changes in the
|
||||||
/// future. See <https://github.com/ratatui-org/ratatui/issues/1287> for more information.
|
/// future. See <https://github.com/ratatui/ratatui/issues/1287> for more information.
|
||||||
///
|
///
|
||||||
/// A blanket implementation of `Widget` for `&W` where `W` implements `WidgetRef` is provided.
|
/// A blanket implementation of `Widget` for `&W` where `W` implements `WidgetRef` is provided.
|
||||||
///
|
///
|
||||||
|
@ -368,7 +368,7 @@ impl<W: WidgetRef> WidgetRef for Option<W> {
|
||||||
///
|
///
|
||||||
/// This trait was introduced in Ratatui 0.26.0 and is implemented for all the internal stateful
|
/// This trait was introduced in Ratatui 0.26.0 and is implemented for all the internal stateful
|
||||||
/// widgets. It is currently marked as unstable as we are still evaluating the API and may make
|
/// widgets. It is currently marked as unstable as we are still evaluating the API and may make
|
||||||
/// changes in the future. See <https://github.com/ratatui-org/ratatui/issues/1287> for more
|
/// changes in the future. See <https://github.com/ratatui/ratatui/issues/1287> for more
|
||||||
/// information.
|
/// information.
|
||||||
///
|
///
|
||||||
/// A blanket implementation of `StatefulWidget` for `&W` where `W` implements `StatefulWidgetRef`
|
/// A blanket implementation of `StatefulWidget` for `&W` where `W` implements `StatefulWidgetRef`
|
||||||
|
|
|
@ -288,7 +288,7 @@ impl<'a> Block<'a> {
|
||||||
/// - [`Block::title_alignment`]
|
/// - [`Block::title_alignment`]
|
||||||
/// - [`Block::title_position`]
|
/// - [`Block::title_position`]
|
||||||
///
|
///
|
||||||
/// [Block example]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md#block
|
/// [Block example]: https://github.com/ratatui/ratatui/blob/main/examples/README.md#block
|
||||||
#[must_use = "method moves the value of self and returns the modified value"]
|
#[must_use = "method moves the value of self and returns the modified value"]
|
||||||
pub fn title<T>(mut self, title: T) -> Self
|
pub fn title<T>(mut self, title: T) -> Self
|
||||||
where
|
where
|
||||||
|
@ -787,7 +787,7 @@ impl Block<'_> {
|
||||||
/// Currently (due to the way lines are truncated), the right side of the leftmost title will
|
/// Currently (due to the way lines are truncated), the right side of the leftmost title will
|
||||||
/// be cut off if the block is too small to fit all titles. This is not ideal and should be
|
/// be cut off if the block is too small to fit all titles. This is not ideal and should be
|
||||||
/// the left side of that leftmost that is cut off. This is due to the line being truncated
|
/// the left side of that leftmost that is cut off. This is due to the line being truncated
|
||||||
/// incorrectly. See <https://github.com/ratatui-org/ratatui/issues/932>
|
/// incorrectly. See <https://github.com/ratatui/ratatui/issues/932>
|
||||||
#[allow(clippy::similar_names)]
|
#[allow(clippy::similar_names)]
|
||||||
fn render_right_titles(&self, position: Position, area: Rect, buf: &mut Buffer) {
|
fn render_right_titles(&self, position: Position, area: Rect, buf: &mut Buffer) {
|
||||||
let titles = self.filtered_titles(position, Alignment::Right);
|
let titles = self.filtered_titles(position, Alignment::Right);
|
||||||
|
@ -1381,7 +1381,7 @@ mod tests {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This is a regression test for bug <https://github.com/ratatui-org/ratatui/issues/929>
|
/// This is a regression test for bug <https://github.com/ratatui/ratatui/issues/929>
|
||||||
#[test]
|
#[test]
|
||||||
fn render_right_aligned_empty_title() {
|
fn render_right_aligned_empty_title() {
|
||||||
let mut buffer = Buffer::empty(Rect::new(0, 0, 15, 3));
|
let mut buffer = Buffer::empty(Rect::new(0, 0, 15, 3));
|
||||||
|
|
|
@ -82,7 +82,7 @@ impl<'a> Axis<'a> {
|
||||||
/// more than 3 labels is currently broken and the middle labels won't be in the correct
|
/// more than 3 labels is currently broken and the middle labels won't be in the correct
|
||||||
/// position, see [issue 334].
|
/// position, see [issue 334].
|
||||||
///
|
///
|
||||||
/// [issue 334]: https://github.com/ratatui-org/ratatui/issues/334
|
/// [issue 334]: https://github.com/ratatui/ratatui/issues/334
|
||||||
///
|
///
|
||||||
/// `labels` is a vector of any type that can be converted into a [`Line`] (e.g. `&str`,
|
/// `labels` is a vector of any type that can be converted into a [`Line`] (e.g. `&str`,
|
||||||
/// `String`, `&Line`, `Span`, ...). This allows you to style the labels using the methods
|
/// `String`, `&Line`, `Span`, ...). This allows you to style the labels using the methods
|
||||||
|
|
|
@ -28,7 +28,7 @@ use crate::{
|
||||||
/// See the list in the [Examples] directory for a more in depth example of the various
|
/// See the list in the [Examples] directory for a more in depth example of the various
|
||||||
/// configuration options and for how to handle state.
|
/// configuration options and for how to handle state.
|
||||||
///
|
///
|
||||||
/// [Examples]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
/// [Examples]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
///
|
///
|
||||||
/// # Fluent setters
|
/// # Fluent setters
|
||||||
///
|
///
|
||||||
|
|
|
@ -1250,7 +1250,7 @@ mod tests {
|
||||||
/// Regression test for a bug where highlight symbol being greater than width caused a panic due
|
/// Regression test for a bug where highlight symbol being greater than width caused a panic due
|
||||||
/// to subtraction with underflow.
|
/// to subtraction with underflow.
|
||||||
///
|
///
|
||||||
/// See [#949](https://github.com/ratatui-org/ratatui/pull/949) for details
|
/// See [#949](https://github.com/ratatui/ratatui/pull/949) for details
|
||||||
#[rstest]
|
#[rstest]
|
||||||
#[case::under(">>>>", "Item1", ">>>>Item1 ")] // enough space to render the highlight symbol
|
#[case::under(">>>>", "Item1", ">>>>Item1 ")] // enough space to render the highlight symbol
|
||||||
#[case::exact(">>>>>", "Item1", ">>>>>Item1")] // exact space to render the highlight symbol
|
#[case::exact(">>>>>", "Item1", ">>>>>Item1")] // exact space to render the highlight symbol
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
/// See the list in the [Examples] directory for a more in depth example of the various
|
/// See the list in the [Examples] directory for a more in depth example of the various
|
||||||
/// configuration options and for how to handle state.
|
/// configuration options and for how to handle state.
|
||||||
///
|
///
|
||||||
/// [Examples]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
/// [Examples]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
|
||||||
///
|
///
|
||||||
/// # Example
|
/// # Example
|
||||||
///
|
///
|
||||||
|
|
|
@ -220,7 +220,7 @@ impl<'a> Paragraph<'a> {
|
||||||
/// convention across the crate.
|
/// convention across the crate.
|
||||||
///
|
///
|
||||||
/// For more information about future scrolling design and concerns, see [RFC: Design of
|
/// For more information about future scrolling design and concerns, see [RFC: Design of
|
||||||
/// Scrollable Widgets](https://github.com/ratatui-org/ratatui/issues/174) on GitHub.
|
/// Scrollable Widgets](https://github.com/ratatui/ratatui/issues/174) on GitHub.
|
||||||
#[must_use = "method moves the value of self and returns the modified value"]
|
#[must_use = "method moves the value of self and returns the modified value"]
|
||||||
pub const fn scroll(mut self, offset: (Vertical, Horizontal)) -> Self {
|
pub const fn scroll(mut self, offset: (Vertical, Horizontal)) -> Self {
|
||||||
self.scroll = Position {
|
self.scroll = Position {
|
||||||
|
@ -313,7 +313,7 @@ impl<'a> Paragraph<'a> {
|
||||||
/// ```
|
/// ```
|
||||||
#[instability::unstable(
|
#[instability::unstable(
|
||||||
feature = "rendered-line-info",
|
feature = "rendered-line-info",
|
||||||
issue = "https://github.com/ratatui-org/ratatui/issues/293"
|
issue = "https://github.com/ratatui/ratatui/issues/293"
|
||||||
)]
|
)]
|
||||||
pub fn line_count(&self, width: u16) -> usize {
|
pub fn line_count(&self, width: u16) -> usize {
|
||||||
if width < 1 {
|
if width < 1 {
|
||||||
|
@ -368,7 +368,7 @@ impl<'a> Paragraph<'a> {
|
||||||
/// ```
|
/// ```
|
||||||
#[instability::unstable(
|
#[instability::unstable(
|
||||||
feature = "rendered-line-info",
|
feature = "rendered-line-info",
|
||||||
issue = "https://github.com/ratatui-org/ratatui/issues/293"
|
issue = "https://github.com/ratatui/ratatui/issues/293"
|
||||||
)]
|
)]
|
||||||
pub fn line_width(&self) -> usize {
|
pub fn line_width(&self) -> usize {
|
||||||
let width = self.text.iter().map(Line::width).max().unwrap_or_default();
|
let width = self.text.iter().map(Line::width).max().unwrap_or_default();
|
||||||
|
@ -1128,7 +1128,7 @@ mod test {
|
||||||
assert_eq!(p.alignment, Alignment::Right);
|
assert_eq!(p.alignment, Alignment::Right);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Regression test for <https://github.com/ratatui-org/ratatui/issues/990>
|
/// Regression test for <https://github.com/ratatui/ratatui/issues/990>
|
||||||
///
|
///
|
||||||
/// This test ensures that paragraphs with a block and styled text are rendered correctly.
|
/// This test ensures that paragraphs with a block and styled text are rendered correctly.
|
||||||
/// It has been simplified from the original issue but tests the same functionality.
|
/// It has been simplified from the original issue but tests the same functionality.
|
||||||
|
|
|
@ -1015,7 +1015,7 @@ mod tests {
|
||||||
assert_eq!(buffer, Buffer::with_lines([expected]));
|
assert_eq!(buffer, Buffer::with_lines([expected]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Fixes <https://github.com/ratatui-org/ratatui/pull/959> which was a bug that would not
|
/// Fixes <https://github.com/ratatui/ratatui/pull/959> which was a bug that would not
|
||||||
/// render a thumb when the viewport was very small in comparison to the content length.
|
/// render a thumb when the viewport was very small in comparison to the content length.
|
||||||
#[rstest]
|
#[rstest]
|
||||||
#[case::position_0("#----", 0, 100)]
|
#[case::position_0("#----", 0, 100)]
|
||||||
|
|
|
@ -30,7 +30,7 @@ use crate::{layout::Flex, prelude::*, style::Styled, widgets::Block};
|
||||||
/// directory for a more in depth example of the various configuration options and for how to handle
|
/// directory for a more in depth example of the various configuration options and for how to handle
|
||||||
/// state.
|
/// state.
|
||||||
///
|
///
|
||||||
/// [Examples]: https://github.com/ratatui-org/ratatui/blob/master/examples/README.md
|
/// [Examples]: https://github.com/ratatui/ratatui/blob/master/examples/README.md
|
||||||
///
|
///
|
||||||
/// # Constructor methods
|
/// # Constructor methods
|
||||||
///
|
///
|
||||||
|
@ -1280,7 +1280,7 @@ mod tests {
|
||||||
|
|
||||||
/// Note that this includes a regression test for a bug where the table would not render the
|
/// Note that this includes a regression test for a bug where the table would not render the
|
||||||
/// correct rows when there is no selection.
|
/// correct rows when there is no selection.
|
||||||
/// <https://github.com/ratatui-org/ratatui/issues/1179>
|
/// <https://github.com/ratatui/ratatui/issues/1179>
|
||||||
#[rstest]
|
#[rstest]
|
||||||
#[case::no_selection(None, 50, ["50", "51", "52", "53", "54"])]
|
#[case::no_selection(None, 50, ["50", "51", "52", "53", "54"])]
|
||||||
#[case::selection_before_offset(20, 20, ["20", "21", "22", "23", "24"])]
|
#[case::selection_before_offset(20, 20, ["20", "21", "22", "23", "24"])]
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
/// [Examples] directory for a more in depth example of the various configuration options and for
|
/// [Examples] directory for a more in depth example of the various configuration options and for
|
||||||
/// how to handle state.
|
/// how to handle state.
|
||||||
///
|
///
|
||||||
/// [Examples]: https://github.com/ratatui-org/ratatui/blob/master/examples/README.md
|
/// [Examples]: https://github.com/ratatui/ratatui/blob/master/examples/README.md
|
||||||
///
|
///
|
||||||
/// # Example
|
/// # Example
|
||||||
///
|
///
|
||||||
|
|
|
@ -5,5 +5,5 @@ ratatui = "ratatui"
|
||||||
|
|
||||||
[type.md]
|
[type.md]
|
||||||
extend-ignore-re = [
|
extend-ignore-re = [
|
||||||
"\\[[[:xdigit:]]{7}\\]\\(https://github.com/ratatui-org/ratatui/commit/[[:xdigit:]]{40}\\)",
|
"\\[[[:xdigit:]]{7}\\]\\(https://github.com/ratatui/ratatui/commit/[[:xdigit:]]{40}\\)",
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in a new issue