Commit Graph

494 Commits

Author SHA1 Message Date
Arijit Basu
8aff0ba918
Clarify how to deal with init.lua 2023-04-26 18:29:01 +05:30
Arijit Basu
252a1f5c37
Documentation fixes and cli help improvement 2023-04-22 16:08:01 +05:30
Kian-Meng Ang
8cca2d3566 Fix typos
Found via `codespell -S target -L ratatui,crate,ser,enque,noice`
2023-04-08 09:14:39 +05:30
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).
2023-03-25 11:32:33 +05:30
Arijit Basu
c79175764b SelectAll: extend selection list rather than replacing (#603)
Also applies to ToggleSelectAll i.e. `ctrl-a`
2023-03-25 11:32:33 +05:30
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>
2023-03-20 01:07:04 +05:30
Arijit Basu
d80b1b4db8 Alternate theme 2023-01-13 13:08:25 +05:30
Arijit Basu
5f07e6143f Update v0.20.2 2023-01-13 11:33:48 +05:30
Arijit Basu
d52ccac8ba Fix file creation for mac's default bash 2023-01-12 16:54:49 +05:30
Arijit Basu
553b4ed3d6
Fix keeping input buffer 2023-01-09 16:48:00 +05:30
Arijit Basu
e9fc643bd9
Fix test 2023-01-09 16:46:27 +05:30
Arijit Basu
3afccf2a54
Doc fix 2023-01-09 16:42:15 +05:30
Arijit Basu
1d9d5f5145
Minor changes 2023-01-09 16:40:38 +05:30
Emanuel
0715e242ef fix: run cargo fmt 2023-01-09 16:34:58 +05:30
Emanuel
105e770f58 feat: complete last changes to add hooks 2023-01-09 16:34:58 +05:30
emanuel
d6e33e68e3 :feat: Add hooks for mode and layout changes 2023-01-09 16:34:58 +05:30
Arijit Basu
0cd5a9163d
Minor fixes 2022-12-19 23:50:28 +05:30
Arijit Basu
7fbcd18bb4
Update util.rs 2022-12-16 23:16:03 +05:30
Arijit Basu
d17489de8d Update version 2022-12-04 15:03:06 +05:30
Arijit Basu
57492b84c0
Show HelpMenu in intermediate modes
Also, use xplr.util api in xplr.fn.builtin.try_complete_path
2022-12-01 01:57:06 +05:30
Arijit Basu
d719700122 Launch $SHELL, fallback to bash
Closes: #499
2022-11-30 23:11:28 +05:30
Arijit Basu
011d3d4a68
Fix logs count 2022-11-30 03:34:05 +05:30
Arijit Basu
efb4d605c5 Fix doc 2022-11-30 03:19:49 +05:30
Arijit Basu
e559b96e31 Implement xplr.util.version
Closes: https://github.com/sayanarijit/xplr/issues/540
2022-11-30 03:19:49 +05:30
Arijit Basu
c382768f23 Implement xplr.util.to/from_json/yaml
Closes: https://github.com/sayanarijit/xplr/issues/541
2022-11-30 03:04:40 +05:30
Arijit Basu
6558ba8092 Hide counts if 0
Closes https://github.com/sayanarijit/xplr/issues/542
2022-11-30 02:27:45 +05:30
Arijit Basu
91c87a3901 Fix creating file with spaces
Fixes: https://github.com/sayanarijit/xplr/issues/544
2022-11-29 23:40:20 +05:30
Arijit Basu
25798009ad Fix displaying multispace characters
Ref: https://github.com/sayanarijit/tui-input/pull/14
2022-11-18 23:43:51 +05:30
Arijit Basu
104dc0534b
Minor doc fixes 2022-11-13 12:12:26 +05:30
Arijit Basu
053615b041 Fix linting errors 2022-11-13 02:06:04 +05:30
Arijit Basu
7e70487511
Use default values for some fields 2022-11-07 11:40:23 +05:30
Arijit Basu
70cb745c9f Implement and expose xplr.util
Closes: https://github.com/sayanarijit/xplr/issues/517
2022-10-29 02:46:31 +05:30
Arijit Basu
15979e4974 Release v0.20.0 2022-10-29 02:46:31 +05:30
Arijit Basu
49c4729047
Improve CLI errors 2022-10-28 17:16:34 +05:30
Arijit Basu
01060ed025
Add $XPLR_INITIAL_PWD and 'gi' key binding
This will allow enable workspace like features, without using vroot.
2022-10-28 11:23:12 +05:30
Arijit Basu
74318435e8
Update version 2022-10-27 23:22:11 +05:30
Arijit Basu
553f6b9bc6
Fix doc 2022-10-27 23:05:48 +05:30
Arijit Basu
71bd2e2776
Add more vroot options
- ToggleVroot
- UnsetVroot

Along with key bindings.
2022-10-27 23:00:10 +05:30
Arijit Basu
94154c56df
Consistent help text 2022-10-27 21:54:06 +05:30
Arijit Basu
5c4dec05ed
Don't restrict saving location outside vroot 2022-10-27 21:47:25 +05:30
Arijit Basu
289556f452
Add builtin vroot mode
Also fix ResetVroot
2022-10-27 21:39:48 +05:30
Arijit Basu
eba9de5a44
Improve vroot indicator 2022-10-27 18:28:49 +05:30
Arijit Basu
e3a5f3c044 Add messages SetVroot and ResetVroot 2022-10-27 17:05:32 +05:30
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.
2022-10-27 17:05:32 +05:30
Arijit Basu
00ffd077aa
Upgarde version 2022-10-27 12:00:30 +05:30
Arijit Basu
bafe15e25e
Add more hooks 2022-10-27 11:22:36 +05:30
Arijit Basu
fc798aad97 Update version 2022-10-27 00:55:12 +05:30
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!" },
  }
}
```
2022-10-27 00:55:12 +05:30
Arijit Basu
723dd6ec2c Even better error messages 2022-10-27 00:55:12 +05:30
Arijit Basu
4a34780eb4
Improve errors messages -m and -M 2022-10-26 17:43:05 +05:30