Age | Commit message (Collapse) | Author |
|
- instead of spawning a new thread every time for background io work,
just have a thread thats always listening for new tasks
|
|
|
|
This implements a scrollable tab bar, like discussed in #233.
This makes tabs easier to read, better utilizes the space in the top-bar
and makes handling many tabs way easier.
The display of the current directory has been removed.
The current tab will show the directory always in full form.
The directories of other tabs will be shown in full form if there is
enough space, otherwise, they will be shown in a short form.
If the available space in the top-bar is still not sufficient, scroll
tags will be added at each end.
The long-form is currently defined as the full, absolute path.
The short-form is currently defined as the last directory element of the
path.
The tab-bar is configurable in terms of font styling and style character
(like dividers, prefixes, and postfixes).
Documentation has been created in a separate file.
Collateral impact:
* The `tilde_in_titlebar` option for `[display]` in `joshuto.toml`
has been removed.
(Because the "current dir display" has been removed.)
* The `display_mode` option for `[tabs]` in `joshuto.toml`
has been removed and with it, also the `tab_bar_mode` command.
The appearance of index-numbers in tags is not configurable anymore.
Numbers are shown if and only if there are more than one tab.
This feature can be re-introduced later in some other form if still
desired with the new tab-bar.
With the new tab-bar, this configuration option did not make sense the
way it was designed.
* The `max_len` option for `[tabs]` in `joshuto.toml`
has been removed. (Because tabs don't have a fixed width anymore.)
* The function/feature of shortening paths by replacing heading path
elements with their first character only has been removed.
(Because I expect that this hard-to-interpret representation of a path
will rarely be beneficial, now that there is a better space utilization in
the top bar.)
* The "old" tab-bar configuration options have been removed.
* A `AppStyleOptionsRaw` struct has been introduced to allow handling of
more complex default styling logic. Each styling attribute is defined
there as an `Option` to indicate if a styling option has been
set by the user or not.
* A `PathStyleIfSome` trait is now available in "utils" to patch ratatui
styles with another, _optional_ style.
|
|
|
|
|
|
|
|
|
|
|
|
- event.rs is moved out of utils as its an integral part of the codebase
- load_child.rs has been replaced with preview module
- moved previewing logic inside run.rs instead of spreading it across multiple
commands
|
|
|
|
- fix issue where folder preview is not loaded upon tab_switch
if the preview entry did not previously exist in history
|
|
- reduce sharing global variables between modules
|
|
|
|
- call flush_events outside of views to reduce coupling and
unexpected behaviours
|
|
- add optional features
|
|
- currently scroll is hardmapped to cursor_up and cursor_down
|
|
|