Releases: sayanarijit/xplr
v0.21.0
Changes & fixes
- IMPORTANT FIX: Fixed panic on permission denial on macOS.
- BREAKING: Some UI plugins might stop rendering colors. Wait for them to update.
- BREAKING:
xplr.config.general.sort_and_filter_ui.search_identifierhas been
renamed toxplr.config.general.sort_and_filter_ui.search_identifiers. - BREAKING: Resolved Node API will not contain the
permissionsfield anymore.
Use the utility functionxplr.util.nodeto get its permissions. - Layout
CustomContenthas been undocumented. It will stay for compatibility,
but you should prefer using the following new layouts, because they support
custom title:- Static
- Dynamic
- Improved the builtin search operation using the following new messages:
- Search
- SearchFromInput
- SearchFuzzyUnordered
- SearchFuzzyUnorderedFromInput
- SearchRegex
- SearchRegexFromInput
- SearchRegexUnordered
- SearchRegexUnorderedFromInput
- ToggleSearchAlgorithm
- EnableSearchOrder
- DisableSearchOrder
- ToggleSearchOrder
- Builtin fuzzy search will now support skim's search syntax.
- Default search algorithm:
xplr.config.general.search.algorithm = "Fuzzy". - Default search ordering:
xplr.config.general.search.unordered = false. - Improved selection operations:
- BREAKING: Selection list will be retained after each operation unless the
paths are renamed, moved, deleted, or cleared manually (ctrl-u). :slto list selection in a $PAGER.:ssto create softlink of the selected items.:shto create hardlink of the selected items.:seto edit selection list in your $EDITOR.- Better conflict handling: add suffix rather than overriding/skipping.
- BREAKING: Selection list will be retained after each operation unless the
- Navigate between the selected paths using the following messages:
- FocusPreviousSelection (
ctrl-p) - FocusNextSelection (
ctrl-n)
- FocusPreviousSelection (
- Added support for
LS_COLORS, along with the following utility functions for
applying better styling/theming.- xplr.util.lscolor
- xplr.util.paint
- xplr.util.textwrap
- xplr.util.style_mix
- By default colors will only be applied to the file name column in the table.
- File paths will be properly quoted.
- Column Renderer Argument will contain additional fields:
- style
- permissions
- Selection list will display the paths in shorthand format, based on the
current location. - Use the following config to specify how the paths in selection list should be
rendered:- xplr.config.general.selection.item.format
- xplr.config.general.selection.item.style
- Improved working with file permissions using the following utility functions:
- xplr.util.permissions_rwx
- xplr.util.permissions_octal
- Type
:pto edit file permissions interactively. - More utility function for QOL improvement:
- xplr.util.layout_replace
- xplr.util.relative_to
- xplr.util.shorthand
- 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
- xplr.util.node_type
- xplr.util.shell_escape
- Fixed mime type detection for executables:
application/x-executable. - Added workaround for compatibility with macOS legacy coreutils.
- Fixed history navigation for non-existent paths.
- Optimized navigation with long list of selected items.
- Minor improvements in batch operations.
- Minor improvements in logging.
Thanks to @noahmayr for contributing to a major part of this release.
v0.20.2
Changes & fixes
- Updated UI to be more light theme and NO_COLOR friendly.
- Fixed creating files inside multiple subdirectories (e.g.
foo/bar/test.txt) (thanks to @soryeigeton for reporting and help debugging). - Added new hooks (contribution by @emsquid).
- on_mode_switch
- on_layout_switch
- Minor documentation fixes and updates (contribution by @BoolPurist).
- Dependency updates.
v0.20.1
Changes & fixes
- xplr shell will default to $SHELL, using
bashas a fallback. oh-my-zsh users please addTRAPEXIT() { echoti rmkx; }in your.zshrc(see #499 for more info). - (experiment) xplr will now display full-screen help menu in intermediate modes. Set
xplr.config.modes.builtin[mode].layout = nilto disable. e.g.xplr.config.modes.builtin.create.layout = nil - Added new utility functions to work with json and yaml data.
- xplr.util.from_json()
- xplr.util.to_json()
- xplr.util.from_yaml()
- xplr.util.to_yaml()
- Added new utility function
xplr.util.version()to get the currently running binary version (semantic versioning fields). - Fixed displaying multispace characters (Japanese, Chinese...), thanks to @Elvyria for contributing to tui-input.
- Fixed a bug causing the creation of a new directory named
.\nwhen creating new files containing space in the name. - Minor UI updates.
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 useCall0instead of
Call). - Use new messages for safer file path handling (
\0delimited):- 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,%qand%%
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
--vrootto 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_PWDand Lua equivalent to implement workspace like
features without using virtual root. Use keysgito go to the initial
working directory from anywhere. - Use the convenient
xplr.utilutility 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.
escwhile 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.