Commit Graph

799 Commits

Author SHA1 Message Date
Arijit Basu
5030749ab1
Use cp -vr instead of cp -v 2021-04-09 14:32:53 +05:30
Arijit Basu
9f78a1fcff Ability to call commands silently
Some commands doesn't require to capture stdout and stderr.
They can be called without needing to reset the screen.

Add `CallSilently` and `BashExecSilently` to execute those commands
faster.

Also, some optimization.
2021-04-09 14:28:32 +05:30
deadjakk
be2911e073 Fixed error preventing compilation
Removed comma.

Error was as follows:
error: no rules expected the token `,`
   --> src/input.rs:373:29
    |
373 |                 | Self::Num9,
    |                             ^ no rules expected this token in macro call

error: aborting due to previous error
2021-04-09 12:07:19 +05:30
Arijit Basu
588a50af7e Add support for custom metadata for table row UI
Example:

```yaml
filetypes:
  directory:
    custom:
      foo: bar
     ...
```

Where `foo` and `bar` can be anything string.

It can be accessed with the `{{{custom.foo}}}` variable.
2021-04-09 11:57:24 +05:30
Arijit Basu
a68fec0c11
No need to clone selection 2021-04-09 10:56:39 +05:30
Arijit Basu
b50ce48264
Revert "Optimize the main thread"
This reverts commit 097c9dd8c5.

Queued tasks might create unexpected issues. We need a test suit first.
2021-04-09 10:54:20 +05:30
Arijit Basu
097c9dd8c5 Optimize the main thread 2021-04-09 10:51:48 +05:30
Arijit Basu
b9e9601a71
Fix failed build and update version 2021-04-09 08:21:30 +05:30
Arijit Basu
b5986c59d6 Fix logs for being written in the pipe
Don't depend on `Refresh`, always write to the pipes.
2021-04-09 08:06:32 +05:30
Arijit Basu
2b0572228d
Draw once
Draw on the terminal only once i.e. when `Refresh`ing.
2021-04-09 07:18:47 +05:30
Arijit Basu
ededb49bd4
Fix the help menu
`esc` no longer exits from the `default` mode.
2021-04-09 07:00:56 +05:30
Maxim Baz
70a3794857 Fix symlink support
canonicalize() and metadata() both resolve symlinks, thus showing symlinks as regular files
2021-04-09 06:43:58 +05:30
Arijit Basu
c06a3cb51e
Update version 2021-04-09 04:19:26 +05:30
Arijit Basu
6d0ea06d7b Add pwd watcher
Also optimize the main thread.
2021-04-09 04:19:44 +05:30
Arijit Basu
0a3cf7b5c1
Update version 2021-04-09 01:29:38 +05:30
Arijit Basu
832016bb18 Stay in search mode when entering or leaving a directory
This might be a little counter intuitive to the `nnn` users, but I think
this will add to the productivity and should be the default.

Since we have a real-time mode indicator, users shouldn't face much of
an issue switching to the alternate default.
2021-04-09 01:12:26 +05:30
Arijit Basu
6bc079a3ed
Update README.md 2021-04-08 19:24:21 +05:30
Arijit Basu
1b35ba3d8d
Add backers 2021-04-08 19:23:23 +05:30
Arijit Basu
1e7e2ecc2f Add :e for "open in editor" 2021-04-08 18:48:29 +05:30
Arijit Basu
fa4d4168cd Don't quit on esc
Issue:
`esc` is generally used to get back to the `default` mode and mistakenly
pressing `esc` while in `default` mode will annoyingly terminate the
session.

Fix:
Remove `esc` from the `default` mode's key bindings. Use `q` or `crtl-c`
instead.
2021-04-08 14:44:10 +05:30
Arijit Basu
fa37cd1c10 Improve search and filter
Concern:
Using `ResetNodeFilters` to clear the filters while searching or exiting
from search unexpectedly resets the `show hidden` mode because the
action not only removes the target filter, it resets all the other
filters as well.

Solution:
Implement `RemoveNodeFilterFromInput` to be able to clear or remove
target filters without having to reset it.
2021-04-08 08:01:10 +05:30
Arijit Basu
e2b49ab4fd Display help menu using $PAGER
Also, use `open` to open files when `xdg-open` is missing.
2021-04-08 08:00:44 +05:30
Arijit Basu
45a95a792d Clear screen before exit 2021-04-08 07:42:31 +05:30
Arijit Basu
91a319fc80
Update version 2021-04-07 19:57:25 +05:30
Arijit Basu
57494f8ebf Do not print command outputs to the main screen.
Print all the outputs of xplr commands on the alternate screen. Not on
the real stdout.
2021-04-07 19:22:33 +05:30
Arijit Basu
7661019fd9 Make dir colors cyan
Fixes: https://github.com/sayanarijit/xplr/issues/11
2021-04-07 18:43:22 +05:30
Arijit Basu
23b51cf8fe
Fix failed build and re-publish 2021-04-07 03:06:47 +05:30
Arijit Basu
2bd2b743fb
Fix renaming 2021-04-07 02:42:20 +05:30
Arijit Basu
a484c2fd39
Update default.nix 2021-04-07 02:14:43 +05:30
Arijit Basu
e34755b11b Update version
Also fix nix hash
2021-04-07 01:59:02 +05:30
Arijit Basu
09abda29a3 Several optimizations
- Write to pipes only when the value changes.
- Sleep when not reading key event or messages.

Fixes: https://github.com/sayanarijit/xplr/issues/10
2021-04-07 01:59:02 +05:30
Arijit Basu
65ddb0ee4b
Release 0.3.2 2021-04-06 18:55:57 +05:30
Arijit Basu
53fd92b680 Fix debug formatting 2021-04-06 18:33:59 +05:30
Arijit Basu
65b7412579 Add XPLR_APP_VERSION and XPLR_CONFIG_VERSION
Since users don't need to update config file version for minor app
releases, we have to differentiate between app and config version.

Also, expose them via `$XPLR_CONFIG_VERSION` and `$XPLR_APP_VERSION`.
2021-04-06 18:23:19 +05:30
Arijit Basu
0272284f40
Fix print formatting 2021-04-06 17:40:16 +05:30
Quentin Guilloteau
a9309a52c0 add comment to remind to update the version in the default.nix file 2021-04-06 16:59:58 +05:30
Quentin Guilloteau
42ca66c0fd use release tarball 2021-04-06 16:59:58 +05:30
Quentin Guilloteau
73a492bd3a add default.nix 2021-04-06 16:59:58 +05:30
Christian Paul
e034827f01 Update README.md: it's -> its 2021-04-06 13:24:56 +05:30
Arijit Basu
6dff9dbe65
Add donation button 2021-04-06 09:33:45 +05:30
Arijit Basu
175699ac63
Expose $XPLR_PIPE_MODE_OUT
Also, add new line character to `$XPLR_PIPE_MODE_OUT` and
`$XPLR_FOCUS_PATH` for consistency.
2021-04-06 07:52:37 +05:30
Arijit Basu
eeee3394bc Improve version incompatibility error
With this change, `xplr` will only raise version incompatibility error
if the major version changes. Minor version updates are assumed to be
backwards compatible.

If the major version is `v0`, the minor version will be considered as
the major version and the security/patch version will be considered as
minor version and the same logic will apply.
2021-04-06 06:43:51 +05:30
Arijit Basu
981ead8c36 Fix large env vars breaking the subprocess
Bug:
When you call some command in a directory with a large number of hosts,
xplr will fail setting the environment vars as the command will become
too large to handle.

Fix:
Port the value of multi-line variables from env vars to pipes and set
the name of the pipe as env var instead. And deprecate the variables
that doesn't make much sense.

In other words,

- `$XPLR_APP_YAML` has been removed.
- `$XPLR_RESULT` has been ported to `$XPLR_PIPE_RESULT_OUT`.
- `$XPLR_GLOBAL_HELP_MENU` has been ported to
  `$XPLR_PIPE_GLOBAL_HELP_MENU_OUT`.
- `$XPLR_DIRECTORY_NODES` has been ported to
  `$XPLR_PIPE_DIRECTORY_NODES_OUT`.
- `$XPLR_LOGS` has been ported to `$XPLR_PIPE_LOGS_OUT`.
- `$XPLR_PIPE_RESULT` has been ported to `$XPLR_PIPE_RESULT_OUT`.

Hence, instead of `<<< $VAR`, `< $VAR_PIPE_OUT` should be used.
2021-04-05 20:28:35 +05:30
Arijit Basu
9747c8667b Autocomplete the relative path while renaming
By default, while renaming a file, autocomplete the relative path i.e.
the filename instead of the absolute path in the input buffer.
2021-04-05 13:50:53 +05:30
Arijit Basu
86c27d4eed
Try fixing CD pipeline 2 2021-04-05 13:05:04 +05:30
Arijit Basu
5f791406ce Try fixing CD pipeline 1 2021-04-05 12:56:34 +05:30
Arijit Basu
67f2094a4c Autorefresh, BashExec and basename
- Auto `Refresh` every second.
- Add alias `BashExec` to message `Call` with args [`-c`, `bash` ...].

Also, Create alias `BashExec` to message `Call` with arguments [`bash`, `-c`]
2021-04-05 12:51:31 +05:30
Arijit Basu
dba8631911 Add CI/CD gh actions
Mostly stolen from https://github.com/Rigellute/spotify-tui.
2021-04-05 12:32:40 +05:30
Arijit Basu
8dae2fef4d
Add native support for renaming 2021-04-04 16:47:03 +05:30
Arijit Basu
2f409a2117
Add support for :{number} like vim 2021-04-04 15:47:14 +05:30