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.