Age | Commit message (Collapse) | Author |
|
This adds the basic ability to change the representation of files in the
TUI detailed dir list by letting the user choose a certain "linemode".
As of now, there are only three simple linemodes, all showing the
filename on the left side and a preceding symlink indicator in the
beginning of the right label as usual.
The "size" linemode shows the right label as it has been up to now.
The "mtime" linemode shows the mtime of the file or directory.
The "sizemtime" linemodes combines both meta-data.
The user can change the linemode like so:
```
:linemode [size|mtime|sizemtime]
```
Default keybindings have been added:
``ms`` for *size*, ``mm`` for *mtime*, and ``mM`` for *sizemtime*.
The selected linemode is specific for each tab.
A new tab always starts with the *size* linemode.
Possible enhancements:
* Move the code for factoring a label out of the
``tui_dirlist_detailed`` module to some UI-independent module
* Add a configuration option for the default linemode for new tabs
* Add further simple linemodes
* Generic support for linemodes with only one “full line label”
* Add support for custom linemodes where a label is constructed by an
external script
|
|
* add `filter` command
* cargo fmt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is preliminary changes in order to track preview threads and progress.
The current setup is we just kick off a new thread to load
the given directory whenever we see the directory content
does not exist in history.
We don't track these threads or which tab these requests
came from. When the result is returned, we just assign it
to the current tab, instead of the tab that actually
initiated the request.
By adding uuid, we can now track which tab requested the
preview and assign it accordingly.
This will also allow us to track the status of the preview,
so we can display to the user a loading state,
when a directory is taking longer than usual to load.
This will also solve the problem of kicking off multiple
threads to read the same directory for the same tab.
Now these threads can be stored and tracked.
- side: fix reload not honouring tab sort options
- use tab specific options whenever we need to reload stuff
|
|
|
|
* Add "Visual-Mode"
This adds a "visual-mode" file selection feature where a range-selection follows the file-cursor.
Description of usage is added to the docs.
Also, the "normal" and the new "visual-mode-selection" are now preserved
when a `DirList` is reloaded.
Wrap-up of changes:
* Add command `toggle_visual`, mapped to `V`
* Add command `escape`, mapped to `ESCAPE`
* Add style `[visual_mode_selection]` for file entries which are
"temporarily" selected by visual-mode
* For `JoshutoDirEntry`, the attribute `selected` has been renamed to
`permanent_selected`, and a second selection-attribute
`visual_mode_selected` has been added. "Setters" and "getters" have
been adapted/added accordingly. The former "getter" for the `selecetd`
attribute still exists and returns `True` for an entry which is
"permanant selected" _or_ "visual-mode selected". So any higher logic
which acts on selected files does not need to care about "how" and
entry is selected.
* Each `JoshutoDirList` has an optional index of the file where
visual-mode has been entered and re-calculates the "visual-mode
selecetd" status for each entry any time the cursor-index changes.
* The footer has been extended so it shows a "VIS" marker when the user
is in visual-mode.
This implementation of visual-mode is a bit different from the ranger
one, where the visual-selection is turned into a "normal selection" when
a command (like `copy-files`) is issued. This implementation keeps
both selections separate until the user toggles back to "normal mode".
Only then the visual-selection is taken over to the "normal selection".
The user also can withdraw the visual-selection with `escape`.
The `escape` command may be used also for other "reset"-actions in the
future.
* fix syntax for Rust stable
* cargo clippy
|
|
right time
|
|
Sort options (sort criterion, reversion, dir-first, and case-sensitivity)
are specific for each tab. Changing sort-options will not have any
affect on tabs other than the currently active one. Each new tab will
start with the default sort-options.
|
|
|
|
|
|
|
|
|
|
- now if --output-file is not specified, output will be sent to stdout
|
|
|
|
- fix initial view not correctly offset
|
|
|
|
|
|
|
|
|
|
|
|
* add `flat` command
* fix bulk_rename command
* fix `open_file` commands
* update docs
* fix errors found by clippy
* fix errors found by clippy::unnecessary-to-owned
* fix open and open_with commands
* fix: crash on root dirs
|
|
|
|
|
|
|
|
|
|
* Add GitHub workflow for Clippy
Closes #158
* Fix errors found by clippy::needless-borrow
https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
* Fix errors found by clippy::collapsible-else-if
https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_else_if
* Fix error found by clippy::single-match
https://rust-lang.github.io/rust-clippy/master/index.html#single_match
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--output-file is used for all output by joshuto
and can be specified what to output by:
`quit --output-current-directory`
`quit --output-selected-files`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Add console shortcuts
* Add support for proportional page movements
|
|
|
|
* Fix: remove image preview on bulk rename
* cargo fmt
|