Skip to content

v0.20.0

Compare
Choose a tag to compare
@sayanarijit sayanarijit released this 28 Oct 21:29
· 167 commits to main since this release

Changes & fixes

  • BREAKING: xplr shell (:!) will default to null (\0) delimited pipes, as
    opposed to newline (\n) delimited ones (i.e. will use Call0 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. See init.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 keys gi 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.