Commit Graph

285 Commits (90a6a8f2d6667dd44e4e58f9dbe1d0a847bd6d18)

Author SHA1 Message Date
Florian Dehau 90a6a8f2d6 Release v0.15.0 3 years ago
Joey Ezechiëls 3a843d5074
fix(test): remove compile warning in TestBackend::assert_buffer (#466) 3 years ago
Simas Toleikis 8832281dcf Update crossterm to 0.19. 3 years ago
Florian Dehau 853f3d9200 feat(terminal): add a read-only view of the terminal state after the draw call 3 years ago
Florian Dehau f09863faa0 Release v0.14.0 3 years ago
Florian Dehau eb1e3be722 fix(widgets/block): make Block::inner return more accurate results on small areas 4 years ago
Vadim Chekan 74243394d9
fix(widgets/table): draw table header and border even if rows are empty (#426) 4 years ago
Florian Dehau 5ea54792c0 refactor(widgets/table): more flexible table
- control over the style of each cell and its content using the styling capabilities of Text.
- rows with multiple lines.
- fix panics on small areas.
- less generic type parameters.
4 years ago
Florian Dehau 79e27b1778 refactor(widgets/gauge): stop using unicode blocks by default 4 years ago
DashEightMate 0a05579a1c
feat(widgets/gauge): allow gauge to use unicode block for more descriptive progress (#377)
* gauge now uses unicode blocks for more descriptive progress

* removed unnecessary if

* changed function name to better reflect unicode

* standardized block symbols, added no unicode option, added tests

* formatting

* improved readability

* gauge tests now check color

* formatted
4 years ago
pm100 5bf40343eb
fix(widgets/paragraph): handle trailing nbsp in wrapped text (#405) 4 years ago
Florian Dehau 1e35f983c4 doc(style): improve documentation of Style 4 years ago
Florian Dehau a15ac8870b feat(style): add a method to create a style that reset all properties until that point 4 years ago
Florian Dehau 8a27036a54 fix(widgets/block): allow Block to render on small areas 4 years ago
Florian Dehau 8543523f18 Release v0.13.0 4 years ago
acheronfail 5a9b59866b feat(widgets/listitem): derive PartialEq 4 years ago
Kemyt 98fb5e4bbd
fix(widgets/table): take borders into account when percentage and ration constraints are used (#385)
* Fix percentage and ratio constraints for table to take borders into account

Percentage and ratio constraints don't take borders into account, which causes
the table to not be correctly aligned. This is easily seen when using 50/50
percentage split with bordered table. However fixing this causes the last column
of table to not get printed, so there is probably another problem with columns
width determination.

* Fix rounding of cassowary solved widths to eliminate imprecisions

* Fix formatting to fit convention

Co-authored-by: Kemyt <kemyt4@gmail.com>
4 years ago
Sebastian Thiel 25ff2e5e61 upgrade crossterm to v0.18
It reduces the amount of dependencies, among other improvements.
4 years ago
Florian Dehau 5050f1ce1c feat(widgets/gauge): add `LineGauge` variant of `Gauge` 4 years ago
Florian Dehau 51b691e7ac Release v0.12.0 4 years ago
Florian Dehau c4cd0a5f31 fix(widgets/chart): use the correct style to draw legend and axis titles
Before this change, the style of the points drawn in the graph area could reused to draw the
title of the axis and the legend. Now the style of these components put on top of the graph area
is solely based on the widget style.
4 years ago
Florian Dehau 41142732ec feat(buffer): add a method to build a `Style` out of an existing `Cell` 4 years ago
Kemyt 62495c3bd1
fix(widgets/barchart): fix chart filled more than actual (#383)
* Fix barchart incorrectly showing chart filled more than actual

Determination of how filled the bar should be was incorrectly taking the
entire chart height into account, when in fact it should take height-1, because
of extra line with label. Because of that the chart appeared fuller than it
should and was full before reaching maximum value.

* Add a test case for checking if barchart fills correctly up to max value

Co-authored-by: Kemyt <kemyt4@gmail.com>
4 years ago
Brooks Rady d00184a7c3
feat(text): extend `Text` to be stylable and extendable (#361)
* Extend `Text` to be extendable
* Add some documentation
4 years ago
Brooks Rady ce32d5537d
chore: clippy fixes (#386) 4 years ago
Florian Dehau 57862eeda6 Release v0.11.0 4 years ago
Brooks Rady 0abaa20de9
refactor: clean up some folds (#362) 4 years ago
Amjad Alsharafi c35a1dd79f
feat(widgets/canvas): added type Block in canvas markers (#350)
This allows for clearer colors than using Dot, especially when
decreasing the size of the terminal font in order to increase the
resolution of the canvas
4 years ago
alvinhochun e0b2572eba
refactor(backend/crossterm): support more style modifiers on Windows and fix build with Crossterm 0.17.8 (#368)
* Support more style modifiers on Windows
* Change Crossterm backend to write directly to buffer instead of String

Crossterm might actually do WinAPI calls instead of writing ANSI excape
codes so writing to an intermediate String may cause issues on older
versions of Windows. It also fails to compile with Crossterm 0.17.8 due
to Crossterm now expecting the writer to support `flush`, which String
doesn't.

Fixes #373
4 years ago
Florian Dehau 90f3858eff feat(backend): keep the internal buffers in sync when the terminal is cleared. 4 years ago
Florian Dehau ecb482f297 fix(backend): move the cursor when first diff is on second cell
Both termion and crossterm backends were not moving the cursor if the first diff to draw was on the
second cell. The condition triggering the cursor move has been updated to fix this. In addition, two
tests have been added to avoid future regressions.
4 years ago
Florian Dehau 641f391137 feat(terminal): add unstable api to use a fixed viewport
There was now way to avoid the autoresize behavior of `Terminal`. While it was fine for most users,
it made the testing experience painful as it was impossible to avoid the calls to `Backend::size()`.
Indeed they trigger the following error: "Inappropriate ioctl for device" since we are not running
the tests in a real terminal (at least in the CI).

This commit introduces a new api to create a `Terminal` with a fixed viewport.
4 years ago
Florian Dehau 6504930888 Release v0.10.0 4 years ago
Florian Dehau 0ffea495b1 refactor: implement cascading styles
- merge `Style` and `StyleDiff` together. `Style` now is used to activate or deactivate certain
style rules not to overidden all of them.
- update all impacted widgets, examples and tests.
4 years ago
Florian Dehau 88c4b191fb feat(text): add new text primitives 4 years ago
Brooks Rady 112d2a65f6
feat(widgets/paragraph): add option to preserve indentation when the text is wrapped (#327) 4 years ago
Xiaopeng Li d999c1b434
feat(widgets/paragraph): Add horizontal scroll (#329)
* `Paragraph:scroll` takes a tuple of offsets instead of a single vertical offset.
* `LineTruncator` takes this new horizontal offset into account to let the paragraph scroll horizontally.
4 years ago
Mikko Rantanen 3aa8b9a259 Implement `patch` between two `StyleDiff` 4 years ago
Florian Dehau fdbea9e2ee fix(widgets/canvas): avoid panic on zero-width bounds 4 years ago
Alexander Batischev 8c2ee0ed85
feat(terminal): Add after-draw() cursor control to Frame (#91) (#309) 4 years ago
Florian Dehau 7251186762 feat(style): add StyleDiff 4 years ago
Florian Dehau 82fda4ac0e doc(style): improve documentation of Style 4 years ago
Kenta Iwasaki 1d12ddbdfc layout: add vertical split constraint test on height 4 years ago
Kenta Iwasaki f474c76e19 layout: force constraint that width and height are non-negative 4 years ago
Florian Dehau ac99104114 feat(style): add support to serialize and deserialize Style using serde
* Add serde as an optional dependency.
* Add feature-gated derives to Color, Modifier and Style.
4 years ago
Paul Horn 0bb9b388f7 Borrow layout for splitting instead of moving it
This allows for layouts to be saved and reused and does not require an additional clone
4 years ago
Florian Dehau 96c6b4efcb refactor(tests): move test utilities to TestBackend
* Remove custom Debug implementation of Buffer
* Add `TestBackend::assert_buffer` to compare buffers in integration tests. When
the assertion fails, the output now show the list of differences in addition
of the views of the computed and expected buffers. This effectively replaces
the table of debug code for colors and modifiers as it is easier to read.
4 years ago
Stephan Dilly 7110fe0159 fix panic on narrow buffers (fixes #293) 4 years ago
Florian Dehau 5a590bca74 chore: enable clippy on all targets and all features
- Remove deny warnings in lib.rs. This allows easier iteration when developing
new features. The warnings will make the CI fails anyway on the clippy CI
stage.
- Run clippy on all targets (including tests and examples) and all features.
- Fail CI on clippy warnings.
4 years ago
Florian Dehau a7761fe55d fix(buffer): ignore zero-width graphemes 4 years ago