Arijit Basu
9d1bd99fd4
Implement on_selection_change
...
Also optimize navigation with selection items.
Refresh selection only when it's required.
Closes: https://github.com/sayanarijit/xplr/issues/635
1 year 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
e9fc643bd9
Fix test
2 years ago
Arijit Basu
1d9d5f5145
Minor changes
2 years ago
emanuel
d6e33e68e3
:feat: Add hooks for mode and layout changes
2 years ago
Arijit Basu
bafe15e25e
Add more hooks
2 years ago
Arijit Basu
deb28fa14a
Add initial support for hooks
...
A new optional section of the configuration defined using the lua return
statement, which can be used to define append only things, such as hooks
and callbacks, specific to each config file.
Example
```lua
version = "0.0.0"
return {
-- Adds messages to pass when xplr loads (similar to `--on-load`)
on_load = {
{ LogInfo = "Hello xplr user," },
{ LogSuccess = "Configuration successfully loaded!" },
}
}
```
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
4e9c056a10
Custom input prompts for different modes without SetInputPrompt
...
Closes: https://github.com/sayanarijit/xplr/issues/502
2 years ago
Arijit Basu
096e520a2b
Fix clippy err
2 years ago
Arijit Basu
bea0f277bc
Add global key bindings that can be overwritten.
...
- Use `xplr.config.general.global_key_bindings` to define a set of
key bindings that are available by default in every mode. e.g `esc`
and `ctrl-c`.
- Remove boilerplate config from `init.lua`.
- Update docs.
2 years ago
Arijit Basu
5370cc2e8c
Go to path and native auto completion on tab
...
- BREAKING: Rename mode `create directory` and `create file` to
`create_directory` and `create_file`.
- Add key binding `gp` to go to a given path from input.
- Add function `fn.builtin.try_complete_path` to auto complete the path
in input buffer.
- Use `tab` to auto complete path in `rename`, `create_file`,
`create_directory` and `go_to_path` modes.
- Show different prompts in different modes.
And some cleanup.
2 years ago
Arijit Basu
e04b0964ae
Use 89 chars line length
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
ca211bb073
Auto generate some API docs from init.lua
...
This is the beginning of the xplr documentation revolution.
Closes: https://github.com/sayanarijit/xplr/issues/445
3 years ago
Arijit Basu
ecc59b1d9d
Option to configure wrapping on move
...
Closes: https://github.com/sayanarijit/xplr/issues/441
3 years ago
Arijit Basu
618ade53ec
Document init.lua
...
Ref: https://github.com/sayanarijit/xplr/issues/445
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
e6ea983a8a
Add "duplicate as"
...
Closes https://github.com/sayanarijit/xplr/issues/434
3 years ago
Arijit Basu
24bd6d9f00
Merge the pending changes from #429
3 years ago
Tom van Dijk
17f3893198
Debug mode
...
Features:
- Display debug menu on configuration error
- Configure wether xplr should show the debug menu
(through `debug_on_error`)
- Open logs in editor
- Redirect people to the issues page on Github.
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
48ab6eac21
Add on_function key handler
...
This adds `on_function` handler to handle F1-F12 keys.
This also fixes issues with previously added handlers and adds a
checklist for future additions.
3 years ago
Arijit Basu
b45a553a0c
Add more keyboard input handlers
...
This PR adds 3 more keyboard input handlers:
- on_alphanumeric
- on_character
- on_navigation
Also updates documentation.
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
Gilad Woloch
45ad449eb3
Avoid unnecessary lambda
3 years ago
Gilad Woloch
3f0e479f56
Remove trivial methods
3 years ago
Arijit Basu
5eab3c6033
Support defining custom layout for different modes
...
Closes: https://github.com/sayanarijit/xplr/issues/335
3 years ago
Arijit Basu
e3150798d9
Disable recover mode by default
...
Closes: https://github.com/sayanarijit/xplr/issues/330
3 years ago
Arijit Basu
69d3b3af46
Add focus selection UI
...
Closes: https://github.com/sayanarijit/xplr/issues/322
3 years ago
Arijit Basu
d29f6aed6d
Fix StartFifo and ToggleFifo
...
Also add `xplr.config.general.start_fifo`.
Closes: https://github.com/sayanarijit/xplr/issues/280
3 years ago
Arijit Basu
f6d1be61d5
Add quit mode and key bindings
...
`:q<enter>` -> Just quit.
`:qp` -> quit printing pwd.
`:qf` -> quit printing focus.
`:qs` -> quit printing selection.
`:qr` -> quit printing result.
Ref: https://github.com/sayanarijit/xplr/issues/257
3 years ago
Arijit Basu
844480204c
Support specifying read-only mode via CLI argument
...
Closes: https://github.com/sayanarijit/xplr/issues/22
3 years ago
Arijit Basu
1513c325d6
Add option to disable recover mode
...
Use `config.general.disable_recover_mode = true` to disable the recover
mode.
Closes: https://github.com/sayanarijit/xplr/issues/232
3 years ago
Arijit Basu
7496f5bf8f
Disable mouse by default and bind `:m` to toggle
...
- Make mouse disabled by default.
- Add key binding `:m` to toggle mouse.
Closes: https://github.com/sayanarijit/xplr/issues/206
3 years ago
Arijit Basu
695acf5c1e
Inherit node types config
...
Inherit `node_types` config instead of overwriting it.
Closes: https://github.com/sayanarijit/xplr/issues/200
3 years ago
Arijit Basu
b4247a7d03
Improve CallLua, mime_essence, permissions
...
Refs:
- https://github.com/sayanarijit/xplr/issues/187
- https://github.com/sayanarijit/xplr/issues/194
- https://github.com/sayanarijit/xplr/issues/195
3 years ago
Arijit Basu
db669cdcbf
Remove "remaps:"
...
Remaps has been removed to simplify key bindings. With Lua, it's now
possible to remap using basic assignments.
For e.g.
```Lua
xplr.config.modes.builtin.default.key_bindings.on_key["v"] = xplr.config.modes.builtin.default.key_bindings.on_key.space
```
Help menu will auto detect remapped keys and display after removing the
redundant mappings.
Ref: https://github.com/sayanarijit/xplr/discussions/183#discussioncomment-774159
3 years ago
Arijit Basu
b86be16ee3
Make structs public
...
Public structs enable automatec documentation.
xplr is not (yet) a library. Even it want to become one, making fields
private is probably not the right way.
3 years ago
Arijit Basu
4da481bf5c
Cleanup all the YAML overwriting logics
3 years ago
Arijit Basu
25a9d03237
Finish porting config.yml to init.lua
3 years ago
Arijit Basu
0a2f2aeda8
Fix version
3 years ago
Arijit Basu
eb06342523
Update version
3 years ago
Arijit Basu
074e0d1250
Replace handlebars with Lua
...
Replace handlebars with Lua functions by introduction Lua function API.
3 years ago
Arijit Basu
f744553a0a
Add support for native lua bindings
...
Ref: https://github.com/sayanarijit/xplr/discussions/146#discussioncomment-741580
3 years ago
Arijit Basu
8e98da5004
Add support for un-mapping keys.
...
Use `remaps: {key: null}` to un-map a key.
Also,
- `gx` will now open only the file under focus.
- `:sx` will open the selected files.
And other minor improvements.
Discussion: https://github.com/sayanarijit/xplr/discussions/146
3 years ago
Arijit Basu
96f3640fc0
Rename `reckless` to `recover`
...
Also, improve the warning message.
3 years ago
Arijit Basu
ae8a391064
Introduce `PopMode`
...
This change requires manual `Refresh` after mode switches.
Also, fix the rename operation.
3 years ago