This project is work-in-progress
This project provides a wrapper view to be able to easily handle multiple tabs that can be switched to at any time without having to change the order of the views for gyscos/cursive views.
How does it look like? demo
Usage
Simply add to your Cargo.toml
[]
= "^0"
Creating your TabView
and add tabs
This crate provides a struct TabView
you can use to add tabs and switch between them.
use ;
use TabView;
let mut siv = default;
let tabs = new.with_view;
// We can continue to add as many tabs as we want!
siv.add_layer;
siv.run;
Troubleshooting
If you find any bugs/unexpected behaviour or you have a proposition for future changes open an issue describing the current behaviour and what you expected.
Development
Running the tests
:bangbang: CAUTION :bangbang: This crate uses Tmux for end2end testing and will kill your Tmux server during testing!
Preparing integration tests
In order to run the integration tests, you first need to install a recent version of >=npm-10
and >=tmux-2.6
!
After npm
and tmux
are installed, install required dependencies:
$ ./scripts/prepare-end2end-tests.sh
This will use npm
to install jest
and shellshot
in the tests
folder.
Running all test suites
Just run
$ cargo test
to execute all available tests.
shields.io endpoints
shields.io endpoints are generated inside the ./target/shields
folder. They are used in this README.
Public API naming
The current public API of this crate is not consistent with RFC 344. This is due to cursive
itself not being
consistent with RFC 344
. This crate tries to implement a smooth user experience for cursive
users. Therefore, the cursive
naming convention was adapted. When cursive
upstream converts
their API to a RFC 344
consistent naming scheme, this crate will adapt to the changes.
Authors
Fin Christensen
:octocat:
@fin-ger
:elephant:@fin_ger@mastodon.social
:bird:@fin_ger_github
Johannes Wünsche
:octocat:
@jwuensche
:elephant:@fredowald@mastodon.social
:bird:@Fredowald
Show your support
Give a :star: if this project helped you!