mirror of
https://github.com/ratatui-org/ratatui
synced 2024-11-21 12:13:11 +00:00
chore(editorconfig): set and apply some defaults (#974)
This commit is contained in:
parent
3834374652
commit
38c17e091c
13 changed files with 40 additions and 35 deletions
|
@ -2,6 +2,12 @@
|
||||||
|
|
||||||
root = true
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
[*.rs]
|
[*.rs]
|
||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
|
|
1
.github/workflows/check-pr.yml
vendored
1
.github/workflows/check-pr.yml
vendored
|
@ -84,4 +84,3 @@ jobs:
|
||||||
echo "Pull request is labeled as 'do not merge'"
|
echo "Pull request is labeled as 'do not merge'"
|
||||||
echo "This workflow fails so that the pull request cannot be merged"
|
echo "This workflow fails so that the pull request cannot be merged"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
|
|
|
@ -53,15 +53,15 @@ This is a quick summary of the sections below:
|
||||||
|
|
||||||
[#881]: https://github.com/ratatui-org/ratatui/pull/881
|
[#881]: https://github.com/ratatui-org/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.
|
||||||
|
|
||||||
With v0.26.0, `Flex` modes are introduced and the default is `Flex::Start`, which will align
|
With v0.26.0, `Flex` modes are introduced and the default is `Flex::Start`, which will align
|
||||||
areas associated with constraints to be beginning of the area. With v0.26.0, additionally,
|
areas associated with constraints to be beginning of the area. With v0.26.0, additionally,
|
||||||
`Min` constraints grow to fill excess space. These changes will allow users to build layouts
|
`Min` constraints grow to fill excess space. These changes will allow users to build layouts
|
||||||
more easily.
|
more easily.
|
||||||
|
|
||||||
With v0.26.0, users will most likely not need to change what constraints they use to create
|
With v0.26.0, users will most likely not need to change what constraints they use to create
|
||||||
existing layouts with `Flex::Start`. However, to get old behavior, use `Flex::Legacy`.
|
existing layouts with `Flex::Start`. However, to get old behavior, use `Flex::Legacy`.
|
||||||
|
|
||||||
```diff
|
```diff
|
||||||
|
|
|
@ -112,7 +112,8 @@ exist to show coverage directly in your editor. E.g.:
|
||||||
|
|
||||||
### Documentation
|
### Documentation
|
||||||
|
|
||||||
Here are some guidelines for writing documentation in Ratatui.
|
Here are some guidelines for writing documentation in Ratatui.
|
||||||
|
|
||||||
Every public API **must** be documented.
|
Every public API **must** be documented.
|
||||||
|
|
||||||
Keep in mind that Ratatui tends to attract beginner Rust users that may not be familiar with Rust
|
Keep in mind that Ratatui tends to attract beginner Rust users that may not be familiar with Rust
|
||||||
|
@ -125,10 +126,9 @@ the concepts pointing to the various methods. Focus on interaction with various
|
||||||
enough information that helps understand why you might want something.
|
enough information that helps understand why you might want something.
|
||||||
|
|
||||||
Examples should help users understand a particular usage, not test a feature. They should be as
|
Examples should help users understand a particular usage, not test a feature. They should be as
|
||||||
simple as possible.
|
simple as possible. Prefer hiding imports and using wildcards to keep things concise. Some imports
|
||||||
Prefer hiding imports and using wildcards to keep things concise. Some imports may still be shown
|
may still be shown to demonstrate a particular non-obvious import (e.g. `Stylize` trait to use style
|
||||||
to demonstrate a particular non-obvious import (e.g. `Stylize` trait to use style methods).
|
methods). Speaking of `Stylize`, you should use it over the more verbose style setters:
|
||||||
Speaking of `Stylize`, you should use it over the more verbose style setters:
|
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
let style = Style::new().red().bold();
|
let style = Style::new().red().bold();
|
||||||
|
@ -138,7 +138,7 @@ let style = Style::default().fg(Color::Red).add_modifier(Modifiers::BOLD);
|
||||||
|
|
||||||
#### Format
|
#### Format
|
||||||
|
|
||||||
- First line is summary, second is blank, third onward is more detail
|
- First line is summary, second is blank, third onward is more detail
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
/// Summary
|
/// Summary
|
||||||
|
@ -148,10 +148,10 @@ let style = Style::default().fg(Color::Red).add_modifier(Modifiers::BOLD);
|
||||||
fn foo() {}
|
fn foo() {}
|
||||||
```
|
```
|
||||||
|
|
||||||
- Max line length is 100 characters
|
- Max line length is 100 characters
|
||||||
See [vscode rewrap extension](https://marketplace.visualstudio.com/items?itemName=stkb.rewrap)
|
See [vscode rewrap extension](https://marketplace.visualstudio.com/items?itemName=stkb.rewrap)
|
||||||
|
|
||||||
- Doc comments are above macros
|
- Doc comments are above macros
|
||||||
i.e.
|
i.e.
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
|
@ -160,7 +160,7 @@ i.e.
|
||||||
struct Foo {}
|
struct Foo {}
|
||||||
```
|
```
|
||||||
|
|
||||||
- Code items should be between backticks
|
- Code items should be between backticks
|
||||||
i.e. ``[`Block`]``, **NOT** ``[Block]``
|
i.e. ``[`Block`]``, **NOT** ``[Block]``
|
||||||
|
|
||||||
### Deprecation notice
|
### Deprecation notice
|
||||||
|
|
|
@ -84,7 +84,7 @@ on_success = "job:doc" # so that we don't open the browser at each change
|
||||||
command = [
|
command = [
|
||||||
"cargo", "llvm-cov",
|
"cargo", "llvm-cov",
|
||||||
"--lcov", "--output-path", "target/lcov.info",
|
"--lcov", "--output-path", "target/lcov.info",
|
||||||
"--all-features",
|
"--all-features",
|
||||||
"--color", "always",
|
"--color", "always",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -18,4 +18,4 @@ Space
|
||||||
Left
|
Left
|
||||||
Space
|
Space
|
||||||
Left
|
Left
|
||||||
Space
|
Space
|
||||||
|
|
|
@ -15,4 +15,4 @@ Enter
|
||||||
Sleep 2s
|
Sleep 2s
|
||||||
Show
|
Show
|
||||||
Type "d"
|
Type "d"
|
||||||
Sleep 30s
|
Sleep 30s
|
||||||
|
|
|
@ -40,4 +40,4 @@ Tab
|
||||||
# Weather
|
# Weather
|
||||||
Set TypingSpeed 100ms
|
Set TypingSpeed 100ms
|
||||||
Down 40
|
Down 40
|
||||||
Sleep 2s
|
Sleep 2s
|
||||||
|
|
|
@ -46,4 +46,4 @@ Tab
|
||||||
Screenshot "target/demo2-weather.png"
|
Screenshot "target/demo2-weather.png"
|
||||||
Set TypingSpeed 100ms
|
Set TypingSpeed 100ms
|
||||||
Down 40
|
Down 40
|
||||||
Sleep 2s
|
Sleep 2s
|
||||||
|
|
|
@ -38,8 +38,8 @@ pub use bar_group::BarGroup;
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// The following example creates a `BarChart` with two groups of bars.
|
/// The following example creates a `BarChart` with two groups of bars.
|
||||||
/// The first group is added by an array slice (`&[(&str, u64)]`).
|
/// The first group is added by an array slice (`&[(&str, u64)]`).
|
||||||
/// The second group is added by a [`BarGroup`] instance.
|
/// The second group is added by a [`BarGroup`] instance.
|
||||||
/// ```
|
/// ```
|
||||||
/// use ratatui::{prelude::*, widgets::*};
|
/// use ratatui::{prelude::*, widgets::*};
|
||||||
|
@ -109,7 +109,7 @@ impl<'a> BarChart<'a> {
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// The following example creates a BarChart with two groups of bars.
|
/// The following example creates a BarChart with two groups of bars.
|
||||||
/// The first group is added by an array slice (`&[(&str, u64)]`).
|
/// The first group is added by an array slice (`&[(&str, u64)]`).
|
||||||
/// The second group is added by a [`BarGroup`] instance.
|
/// The second group is added by a [`BarGroup`] instance.
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -186,17 +186,17 @@ impl<'a> BarChart<'a> {
|
||||||
/// For [`Horizontal`](crate::layout::Direction::Horizontal) bars this becomes the height of
|
/// For [`Horizontal`](crate::layout::Direction::Horizontal) bars this becomes the height of
|
||||||
/// the bar.
|
/// the bar.
|
||||||
///
|
///
|
||||||
/// If not set, this defaults to `1`.
|
/// If not set, this defaults to `1`.
|
||||||
/// The bar label also uses this value as its width.
|
/// The bar label also uses this value as its width.
|
||||||
#[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 bar_width(mut self, width: u16) -> BarChart<'a> {
|
pub const fn bar_width(mut self, width: u16) -> BarChart<'a> {
|
||||||
self.bar_width = width;
|
self.bar_width = width;
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Set the gap between each bar.
|
/// Set the gap between each bar.
|
||||||
///
|
///
|
||||||
/// If not set, this defaults to `1`.
|
/// If not set, this defaults to `1`.
|
||||||
/// The bar label will never be larger than the bar itself, even if the gap is sufficient.
|
/// The bar label will never be larger than the bar itself, even if the gap is sufficient.
|
||||||
///
|
///
|
||||||
/// # Example
|
/// # Example
|
||||||
|
|
|
@ -47,7 +47,7 @@ impl<'a> Bar<'a> {
|
||||||
///
|
///
|
||||||
/// # See also
|
/// # See also
|
||||||
///
|
///
|
||||||
/// [`Bar::value_style`] to style the value.
|
/// [`Bar::value_style`] to style the value.
|
||||||
/// [`Bar::text_value`] to set the displayed value.
|
/// [`Bar::text_value`] to set the displayed value.
|
||||||
#[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 value(mut self, value: u64) -> Bar<'a> {
|
pub const fn value(mut self, value: u64) -> Bar<'a> {
|
||||||
|
@ -58,9 +58,9 @@ impl<'a> Bar<'a> {
|
||||||
/// Set the label of the bar.
|
/// Set the label of the bar.
|
||||||
///
|
///
|
||||||
/// For [`Vertical`](crate::layout::Direction::Vertical) bars,
|
/// For [`Vertical`](crate::layout::Direction::Vertical) bars,
|
||||||
/// display the label **under** the bar.
|
/// display the label **under** the bar.
|
||||||
/// For [`Horizontal`](crate::layout::Direction::Horizontal) bars,
|
/// For [`Horizontal`](crate::layout::Direction::Horizontal) bars,
|
||||||
/// display the label **in** the bar.
|
/// display the label **in** the bar.
|
||||||
/// See [`BarChart::direction`](crate::widgets::BarChart::direction) to set the direction.
|
/// See [`BarChart::direction`](crate::widgets::BarChart::direction) to set the direction.
|
||||||
#[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 label(mut self, label: Line<'a>) -> Bar<'a> {
|
pub fn label(mut self, label: Line<'a>) -> Bar<'a> {
|
||||||
|
|
|
@ -27,7 +27,7 @@ pub use title::{Position, Title};
|
||||||
/// both centered and non-centered titles are rendered, the centered space is calculated based on
|
/// both centered and non-centered titles are rendered, the centered space is calculated based on
|
||||||
/// the full width of the block, rather than the leftover width.
|
/// the full width of the block, rather than the leftover width.
|
||||||
///
|
///
|
||||||
/// Titles are not rendered in the corners of the block unless there is no border on that edge.
|
/// Titles are not rendered in the corners of the block unless there is no border on that edge.
|
||||||
/// If the block is too small and multiple titles overlap, the border may get cut off at a corner.
|
/// If the block is too small and multiple titles overlap, the border may get cut off at a corner.
|
||||||
///
|
///
|
||||||
/// ```plain
|
/// ```plain
|
||||||
|
@ -193,7 +193,7 @@ impl<'a> Block<'a> {
|
||||||
/// [spans](crate::text::Span) (`Vec<Span>`).
|
/// [spans](crate::text::Span) (`Vec<Span>`).
|
||||||
///
|
///
|
||||||
/// By default, the titles will avoid being rendered in the corners of the block but will align
|
/// By default, the titles will avoid being rendered in the corners of the block but will align
|
||||||
/// against the left or right edge of the block if there is no border on that edge.
|
/// against the left or right edge of the block if there is no border on that edge.
|
||||||
/// The following demonstrates this behavior, notice the second title is one character off to
|
/// The following demonstrates this behavior, notice the second title is one character off to
|
||||||
/// the left.
|
/// the left.
|
||||||
///
|
///
|
||||||
|
|
|
@ -4,9 +4,9 @@ use crate::{prelude::*, widgets::Block};
|
||||||
///
|
///
|
||||||
/// A `Gauge` renders a bar filled according to the value given to [`Gauge::percent`] or
|
/// A `Gauge` renders a bar filled according to the value given to [`Gauge::percent`] or
|
||||||
/// [`Gauge::ratio`]. The bar width and height are defined by the [`Rect`] it is
|
/// [`Gauge::ratio`]. The bar width and height are defined by the [`Rect`] it is
|
||||||
/// [rendered](Widget::render) in.
|
/// [rendered](Widget::render) in.
|
||||||
/// The associated label is always centered horizontally and vertically. If not set with
|
/// The associated label is always centered horizontally and vertically. If not set with
|
||||||
/// [`Gauge::label`], the label is the percentage of the bar filled.
|
/// [`Gauge::label`], the label is the percentage of the bar filled.
|
||||||
/// You might want to have a higher precision bar using [`Gauge::use_unicode`].
|
/// You might want to have a higher precision bar using [`Gauge::use_unicode`].
|
||||||
///
|
///
|
||||||
/// This can be useful to indicate the progression of a task, like a download.
|
/// This can be useful to indicate the progression of a task, like a download.
|
||||||
|
@ -236,9 +236,9 @@ fn get_unicode_block<'a>(frac: f64) -> &'a str {
|
||||||
///
|
///
|
||||||
/// A `LineGauge` renders a thin line filled according to the value given to [`LineGauge::ratio`].
|
/// A `LineGauge` renders a thin line filled according to the value given to [`LineGauge::ratio`].
|
||||||
/// Unlike [`Gauge`], only the width can be defined by the [rendering](Widget::render) [`Rect`].
|
/// Unlike [`Gauge`], only the width can be defined by the [rendering](Widget::render) [`Rect`].
|
||||||
/// The height is always 1.
|
/// The height is always 1.
|
||||||
/// The associated label is always left-aligned. If not set with [`LineGauge::label`], the label
|
/// The associated label is always left-aligned. If not set with [`LineGauge::label`], the label
|
||||||
/// is the percentage of the bar filled.
|
/// is the percentage of the bar filled.
|
||||||
/// You can also set the symbols used to draw the bar with [`LineGauge::line_set`].
|
/// You can also set the symbols used to draw the bar with [`LineGauge::line_set`].
|
||||||
///
|
///
|
||||||
/// This can be useful to indicate the progression of a task, like a download.
|
/// This can be useful to indicate the progression of a task, like a download.
|
||||||
|
|
Loading…
Reference in a new issue