Arijit Basu
484b94a961
Add selection indicator in input and logs panel
10 months ago
Arijit Basu
94ba22bbcc
Upgrade
1 year ago
Arijit Basu
2f78691333
Update/upgrade deps
1 year ago
Arijit Basu
255517c2a9
Also respect general.table.headers.cols[*].style
1 year ago
Arijit Basu
9844ae1476
Respect low priority styles
...
- xplr.config.general.selection.item.style
- xplr.config.general.table.row.style
- xplr.config.general.table.row.cols[*].style
- xplr.config.general.table.header.cols[*].style
Ref: https://github.com/sayanarijit/xplr/issues/640
1 year ago
Arijit Basu
97e30e2a6f
Allow nesting layouts inside a custom layout ( #618 )
...
This adds `CustomLayout` panel for nesting a `Layout` inside the `Static` and
`Dynamic` layouts.
This will help switching between different layouts dynamically, without
having to switch modes.
1 year ago
Arijit Basu
b995be0089
Fix SelectAll and UI colors ( #604 )
...
- SelectAll will not unselect the existing paths. Same for
ToggleSelectAll.
- Fixed UI bug causing random bold characters (deps).
2 years ago
Arijit Basu
e0d683b13a
Release 0.21.0 ( #602 )
...
* Add xplr.util.lscolor and xplr.util.paint (#569 )
* Add xplr.util.lscolor and xplr.util.style
* Fix formatting
* Fix clippy suggestions
* Remove redundant closures
* Optimize, support NO_COLOR, and rename style to paint
* Use xplr.util.paint and xplr.util.color in init.lua
Co-authored-by: Noah Mayr <dev@noahmayr.com>
* Add utility function xplr.util.textwrap (#567 )
* Add utility function xplr.util.wrap
* Cleanup and fix formatting
* Update src/lua/util.rs
Co-authored-by: Arijit Basu <sayanarijit@users.noreply.github.com>
* Update wrap to return lines instead
* Fix doc
* Rename wrap -> text wrap
Co-authored-by: Arijit Basu <sayanarijit@users.noreply.github.com>
Co-authored-by: Arijit Basu <sayanarijit@gmail.com>
* Add xplr.util.relative_to and xplr.util.path_shorthand (#568 )
* Add xplr.util.relative_to and xplr.util.path_shorthand
* Remove duplicate slash at end
* Use pwd from env and remove pathdiff package
* Some fixes and improvements
* Generate docs
* Some more improvements
* Improve selection rendering
* Improve functions with test cases
* Update docs
* Minor doc fix
* Rename path_shorthand -> shortened
* Handle homedir edgecase
Also fix init.lua
* Minor fix
* Use config argument for relative and shortened paths
* Prefix relative paths with "." and fix edge cases where we're not showing the file name
* Use and_then instead of map and flatten
* WIP: Move selection rendering to lua
* Make selection renderer function configurable on lua side
* Some improvements
* Some impovements
* Minor doc fix
* Remove symlink style
---------
Co-authored-by: Arijit Basu <sayanarijit@gmail.com>
* Add xplr.util.layout_replaced (#574 )
Closes: https://github.com/sayanarijit/xplr/issues/573
* Improve selection operations (#575 )
- `:sl` to list selection.
- `:ss` to softlink.
- `:sh` to hardlink.
- Avoid conflict by adding suffix.
- Unselect individual path only on operation success.
Closes:
- https://github.com/sayanarijit/xplr/issues/572
- https://github.com/sayanarijit/xplr/issues/571
- https://github.com/sayanarijit/xplr/issues/570
* Minor updates
* Add more features (#581 )
* Add more features
- Key binding ":se" to edit selection list in $EDITOR
- New utility functions:
- xplr.util.clone
- xplr.util.exists
- xplr.util.is_dir
- xplr.util.is_file
- xplr.util.is_symlink
- xplr.util.is_absolute
- xplr.util.path_split
- xplr.util.node
Closes: https://github.com/sayanarijit/xplr/issues/580
Closes: https://github.com/sayanarijit/xplr/issues/579
Closes: https://github.com/sayanarijit/xplr/issues/577
* Fix edit selection list
* Fix clippy lints
* Fix layout link in doc
* xplr.util.shortened -> xplr.util.shorten
* Fix more clippy lints
* Fix xplr.util.shorten name change
* More UI utilities and improvements (#582 )
* More UI utilities and improvements
- Apply style only to the file column in the table.
- Properly quote paths.
- Expose the applicable style from config in the table renderer argument.
- Add utility functions:
- xplr.util.node_type
- xplr.util.style_mix
- xplr.util.shell_escape
* Make escaping play nice with shorten
* Fix tests
* Fix doc
* Some fixes
* Fix selection editor
* Fix clear selection for selection editor
* Add selection navigation (#583 )
* Add selection navigation
- FocusNextSelection (ctrl-n)
- FocusPreviousSelection (ctrl-p)
Also improve batch operations
* Minor doc fixes
* Minor doc fix
* Remove tab -> ctrl-i binding
* Improve batch operation interaction
- More robust focus operation.
- Focus on failed to delete paths.
* Fix Rust compatibility
* Fix panic on permission denial
Also, improve the error messages.
* More logging improvements
* Fix layout_replace only working with table parameters (#586 )
* Improve builtin search mode (#585 )
* Improve builtin search mode
* Remove commented out code
* Make search ranking and algorithm more extensible
* Flatten messages
BREAKING: xplr.config.general.sort_and_filter_ui.search_identifier -> xplr.config.general.sort_and_filter_ui.search_identifiers
Messages:
- Search
- SearchFromInput
- SearchFuzzy
- SearchFuzzyUnranked
- SearchFuzzyUnrankedFromInput
- SearchRegexUnrankedFromInput
- SearchRegex
- SearchRegexUnranked
- SearchRegexUnrankedFromInput
- SearchRegexUnrankedFromInput
- CycleSearchAlgorithm
- EnableRankedSearch
- DisableRankedSearch
- ToggleRankedSearch
Static config:
xplr.config.general.search.algorithm = "Fuzzy"
* Handle search ranking in search algorithm
* Make CycleSearchAlgorithm only cycle between algorithms, without changing ranking
* Separate algorithm and ordering
* Minor doc updates
* Some cleanup
* Final touch
* Cycle -> Toggle
---------
Co-authored-by: Arijit Basu <sayanarijit@gmail.com>
* Fix layout replace for unit layouts (#588 )
* Allow custom title and ui config in custom layout. (#589 )
* Allow custom title and ui config in custom layout.
Adds the following layouts:
- Static
- Dynamic
Deprecates `CustomContent` (but won't be removed to maintain compatibility).
Closes: https://github.com/sayanarijit/xplr/issues/563
* Delete init.lua
* Update docs/en/src/layout.md
* Update docs/en/src/layout.md
* Rename
- Paragraph => CustomParagraph
- List => CustomList
- Table => CustomTable
Also update init.lua
* Fix clippy errs
* Fix doc links
* Fix search order
* Improve working with file permissions (#591 )
* Improve working with file permissions
Implements:
- xplr.util.permissions_rwx
- xplr.util.permissions_octal
* Edit permissions
* Add permissions in Resolved Node (#592 )
* Add permissions in Relolved Node
And handle application/x-executable mime type.
* Fix bench
* Improve permissions editor
* More permissions editor improvements
* Doc updates
* Remove ResolvedNode.permissions (#593 )
Reason: Too much serialization making lua calls slow.
* Add workaround for macos with legacy coreutils (#595 )
Refs:
- https://github.com/sayanarijit/xplr/issues/594
- https://github.com/sayanarijit/xplr/issues/559
* Use H:M:S format to display logs (#596 )
* Keep the selection list and clear manually (#597 )
* Keep the selection list and clear manually
Ref: https://github.com/sayanarijit/map.xplr/issues/4
* Fix linting err
* Fix broken history (#599 )
* Fix broken hostory
Fixes: https://github.com/sayanarijit/xplr/issues/598
* Minor cleanup
* Slightly optimize selection retention (#600 )
* Update deps
* chrono -> time
* update: 0.20.2 -> 0.21.1
* Update post-install.md
* Upgrade guide
* Minor fix
* Fix tests
* Add missing doc
* Fix clippy lints
---------
Co-authored-by: Noah Mayr <dev@noahmayr.com>
2 years ago
Arijit Basu
57492b84c0
Show HelpMenu in intermediate modes
...
Also, use xplr.util api in xplr.fn.builtin.try_complete_path
2 years ago
Arijit Basu
011d3d4a68
Fix logs count
2 years ago
Arijit Basu
6558ba8092
Hide counts if 0
...
Closes https://github.com/sayanarijit/xplr/issues/542
2 years ago
Arijit Basu
25798009ad
Fix displaying multispace characters
...
Ref: https://github.com/sayanarijit/tui-input/pull/14
2 years ago
Arijit Basu
053615b041
Fix linting errors
2 years ago
Arijit Basu
eba9de5a44
Improve vroot indicator
2 years ago
Arijit Basu
e3a5f3c044
Add messages SetVroot and ResetVroot
2 years ago
Arijit Basu
a62b72bf2a
Add support for --vroot
...
--vroot helps isolating navigation of an xplr session inside a specific
directory. However, interaction still requires passing full paths
(`/tmp/vroot`). Shell scripts and Lua functions can still access files
outside the virtual root.
This PR also fixes unwanted dot (.) and extra slash (//) issues in paths.
2 years ago
Arijit Basu
1d829c36e6
Implement -M, --print-msg-in
...
To help with creating safe arguments for --on-load.
e.g.
```
xplr --on-load $(xplr -M 'ChangeDirectory: %q' "${HOME:?}")
```
2 years ago
Arijit Basu
bffe1d43ec
Escape newline in selection list
2 years ago
Arijit Basu
895d55ca23
Minor improvement
2 years ago
Arijit Basu
1d20039fae
Improve log rendering
2 years ago
Arijit Basu
57483bef41
Use fuzzy search instead of regex search
...
Ref: https://github.com/sayanarijit/xplr/issues/496
2 years ago
Arijit Basu
096e520a2b
Fix clippy err
2 years ago
Arijit Basu
f10fad958d
Upgrade deps
2 years ago
Arijit Basu
9f9a6f9d73
Parse file UID and GID
...
Closes https://github.com/sayanarijit/xplr/pull/494
2 years ago
Arijit Basu
e04b0964ae
Use 89 chars line length
2 years ago
Arijit Basu
02b631bf83
Strict NO_COLOR compliance and some cleanups
2 years ago
Arijit Basu
d9465f1a57
Display in the table
2 years ago
Arijit Basu
8e1d16b751
Remove merge conflicts
2 years ago
Arijit Basu
37e660e0a6
Improve timestamp support
2 years ago
Shunsuke Mie
57c29d47c5
Support a column shows time of modification
2 years ago
Arijit Basu
5f598648a8
Make the prompt not null
2 years ago
Arijit Basu
1de737cefa
Add regex support and dynamic input prompt
...
- Add new regex filters
- `RelativePathDoesMatchRegex`
- `RelativePathDoesNotMatchRegex`
- `IRelativePathDoesMatchRegex`
- `IRelativePathDoesNotMatchRegex`
- `AbsolutePathDoesMatchRegex`
- `AbsolutePathDoesNotMatchRegex`
- `IAbsolutePathDoesMatchRegex`
- `IAbsolutePathDoesNotMatchRegex`
- Search mode now defaults to regex
- Added new message `SetInputPrompt` to set the input prompt
dynamically.
2 years ago
Arijit Basu
171c93dbb1
Fix ansi colors
...
Also upgrade deps and do some cleanup.
2 years ago
Arijit Basu
dfb4854f01
Set cursor position based on prompt
3 years ago
Arijit Basu
721ffd0216
Support custom `border_type` and `border_style`
...
This adds support for defining custom border types and border styles.
Example:
```
xplr.config.general.panel_ui.default.border_type = "Thick"
xplr.config.general.panel_ui.default.border_style.fg = "Black"
xplr.config.general.panel_ui.default.border_style.bg = "Gray"
```
Closes: https://github.com/sayanarijit/xplr/issues/448
3 years ago
Arijit Basu
8f5e5491f2
Optimize change directory performance
...
This PR breaks the custom layout renderer API by deprecating the
following heavyweight fields in the Lua Context passed to the renderer
functions.
The following fields are being deprecated:
- app.directory_buffer
- app.history
- app.last_modes
However, there's no change in the Lua Context passed to the functions
called via `CallLua*` messages.
Closes: https://github.com/sayanarijit/xplr/issues/418
3 years ago
Arijit Basu
b7d86ae1ec
Serialize None to nil
...
Fixes: https://github.com/sayanarijit/xplr/issues/417
3 years ago
Tom van Dijk
b1ac4944ab
`help_hide_remaps` -> `hide_remaps_in_help_menu`
3 years ago
Tom van Dijk
263eb5943a
Introduce `general.help_hide_remaps` config entry.
3 years ago
Arijit Basu
5b710070a3
Optimize more
3 years ago
Arijit Basu
5211e4fa40
Fix Lua API performance by caching
...
Fixes: https://github.com/sayanarijit/xplr/issues/412
3 years ago
Arijit Basu
8e00b3e658
Add scroll for the input buffer
3 years ago
Arijit Basu
165d992b75
Fix logs UI
...
Fixes: https://github.com/sayanarijit/xplr/issues/396
3 years ago
Arijit Basu
ca6cefb1c1
Use tui-input to handle input buffer
...
New message: `UpdateInputBufferFromKey` to replace most
`BufferInputFromKey` usage.
This adds more functionalities to the input buffer and reduces
boilerplate code.
This commit also deprecates `config.general.cursor` as the cursor will
be set by the terminal from now.
Repo: https://github.com/sayanarijit/tui-input
3 years ago
Arijit Basu
a797d7b1c7
Format & lint code
3 years ago
Shunsuke Mie
1947d77a33
Change mods name for tests
...
There are two mod names for test, `test` and `tests`. This commit unites
the name to `tests`. It is commonly used.
3 years ago
Arijit Basu
0328eb63c7
Fix selection count
...
Fixes https://github.com/sayanarijit/xplr/issues/363
3 years ago
Arijit Basu
347b9625aa
Add padding to custom content titles
3 years ago
Gilad Woloch
402715cdcd
Remove trivial `ResolvedNode` methods
3 years ago
Gilad Woloch
95b580203f
Introduce `xor` helper
3 years ago