Releases: sayanarijit/xplr
v0.20.0
Changes & fixes
- BREAKING: xplr shell (
:!
) will default to null (\0
) delimited pipes, as
opposed to newline (\n
) delimited ones (i.e. will useCall0
instead of
Call
). - Use new messages for safer file path handling (
\0
delimited):- Call0
- CallSilently0
- BashExec0
- BashExecSilently0
- Use new sub-commands for safer message passing:
-m FORMAT [ARGUMENT]...
/--pipe-msg-in FORMAT [ARGUMENT]...
-M FORMAT [ARGUMENT]...
/--print-msg-in FORMAT [ARGUMENT]...
Where FORMAT is a YAML string that may contain%s
,%q
and%%
placeholders and ARGUMENT is the value per placeholder. Seeinit.lua
.
- Following hooks can be defined in the config files using an optional
return { on_* = { list, of, messages }, ... }
statement at the end.- on_load
- on_focus_change
- on_directory_change
- Use
--vroot
to isolate navigation of an xplr session inside a specific
directory. Interaction still requires passing full path, and shell,
lua functions etc still can access paths outside vroot. - Use the following messages to switch vroot at runtime, or the use key
bindings available in the new builtin mode "vroot" (mapped to:
v
).- SetVroot
- UnsetVroot
- ToggleVroot
- ResetVroot
- Use
$XPLR_INITIAL_PWD
and Lua equivalent to implement workspace like
features without using virtual root. Use keysgi
to go to the initial
working directory from anywhere. - Use the convenient
xplr.util
utility functions in your Lua function calls.
See xplr.util API docs. - Improved CLI errors.
- Finished documentation (finally).
- UI updates to handle newlines in path.
Thanks to @jmcantrell for reporting and help implement fix for the critical newline-in-pathname bug.
v0.20.0-beta.3
This pre-release is for testing the "vroot" mode key bindings available via :v
* keys, and the new messages ToggleVroot
and UnsetVroot
.
v0.20.0-beta.2
This pre-release is for testing the new vroot feature with --vroot
, SetVroot
, ResetVroot
, and the on_*
hooks defined as return { on_* = [ list, of, messages ]}
v0.20.0-beta.1
This pre-release is for testing the new return { on_load = { list, of, messages } }
hook definition in config files, and also for trying the improved -m
/-M
API.
v0.20.0-beta.0
This pre-release is for testing the new messages Call*0
, BashExec*0
and the CLI arguments xplr -m / --pipe-msg-in
, xplr -M --print-msg-in
.
v0.19.4
Changes & fixes
- The builtin search will now default to skim-v2 based fuzzy matching.
esc
while in search mode will recover the initial focus (i.e. cancel the search).- The following messages will be available for search based operations:
- SearchFuzzy
- SearchFuzzyFromInput
- AcceptSearch
- CancelSearch
- Quick scrolling operations are supported using the following messages and keys:
- ScrollUp
page-up
- ScrollDown
page-down
- ScrollUpHalf
{
- ScrollDownHalf
}
- ScrollUp
Note: People who prefer the old regex based search, can use the regex-search.xplr plugin.
v0.19.3
Changes & fixes
Bug fixes for passing filters using the --on-load
argument.
v0.19.2
Changes & fixes
Fixed support for the following keys in input mode:
- ctrl-h
- ctrl-b
- ctrl-f
- home
- end
- ctrl-k
v0.19.1
Changes & fixes
- You can now access
uid
andgid
of the file owners in the Lua API. See column-renderer and node docs. - The input buffer will support more readline-like keys. Also, added "DeleteTillEnd" as another cursor based "InputOperation" option. See tui-input v0.5.0 release.
- Fixed applying regex based filters via the CLI and
$XPLR_PIPE_MSG_IN
pipe. See issue #503. - You can use the
prompt
field to define input prompt for each mode, instead of using theSetInputPrompt
message. See init.lua changes.
v0.19.0
Changes & fixes
- BREAKING: The builtin modes cannot be accessed using space separated names
anymore. Use underscore separated mode names.
For e.g.SwitchModeBuiltin: create file
becomes
SwitchModeBuiltin: create_file
and so on. - Fixed a bug with handling
tab
key in the input buffer. - Added
xplr.config.general.global_key_bindings
to define a set of
key bindings that are available by default in every mode. e.gesc
andctrl-c
. - Added new builtin mode
go_to_path
which can be used for typing or pasting
paths to enter into or to focus on. Typeg
p
to enter this mode. - Added basic tab completion support for the
go_to_path
,create_file
,
create_directory
,rename
andduplicate_as
modes. - Use the builtin function
xplr.fn.builtin.try_complete_path
to add easy tab
completion support into your own configuration. - Fixed syncing current working directory with OSC 7 compatible terminals (e.g.
Wezterm). - The
NO_COLOR
environment variable also disables OSC 7. - Significantly optimized regex based search and filter.
- The files table is a little compact now.
- Removed boilerplate config from the default
init.lua
. - Minor input prompt related improvements in different modes.
Upgrade Guide: https://xplr.dev/en/upgrade-guide#v0180---v0190