Path to this page:
Subject: CVS commit: pkgsrc/sysutils/yazi
From: pin
Date: 2024-03-09 22:50:33
Message id: 20240309215034.1345BFA2A@cvs.NetBSD.org
Log Message:
sysutils/yazi: update to 0.2.4
This version adds support for cross-directory selection, which means you can
select files from multiple different directories and perform operations on them.
Yazi's accessibility also has been greatly improved, including adding color to
icons, a new file selection counter, improved visibility of hovered files,
enhanced keyword recognition in finds, long path truncation, and a new color
system.
As for the plugin system, we have rewritten Yazi's Lua binding using Unsafe Rust,
making the initialization process of plugins very inexpensive by lazy-loading
app data. This fundamentally solves the difficulty of cross-tab data access,
making future plans for dual-pane/tree-view possible, as they can be efficiently
implemented as a plugin!
In addition, loaded plugins are now cached, meaning that plugin loading speed
will be faster. The improvement in plugin performance directly reflects the
overall performance of Yazi because in Yazi, plugins are first-class citizens,
with most UI being drawn by built-in UI plugins, and previews and preloads also
being done through plugins, which is the biggest driving force for us to
constantly improve plugin performance.
Finally, we have added some new APIs that we hope plugin developers will find
useful:
ya.input(): Request user input;
ya.notify(): Send a foreground notification to the user, which is useful for \
background tasks;
ya.hide(): Request terminal control and hide Yazi in the background. This is \
useful for calling interactive programs like fzf, zoxide, etc., in plugins;
ui.Clear(): Clear a specific UI area, which is useful for implementing \
custom UI layouts.
To implement ya.notify(), we have added a new Vim-like notification component:
Vim-like.notification.mp4
For more changes, please read "What's Changed" below.
Heads up
The exec property will be deprecated in the next major version, v0.3, and will \
be replaced by run.
Please replace all instances of exec = ... with run = ... in your yazi.toml and \
keymap.toml if any.
What's Changed
perf: cheaper sync context initialization by @sxyazi in #643
feat: allows access to complete app data for all tabs by @sxyazi in #644
feat: add <Home> and <End> to [input] keymap by @grig-iv in #655
feat: add <Delete> to [input] keymap by @grig-iv in #665
ci: add clippy/rustfmt workflow by @uncenter in #663
feat: enable the ability to sort the which key by @abhaysp95 in #662
refactor: tab-specific selection by @sxyazi in #653
feat: Vim-like notification by @sxyazi in #659
feat: add prepend_rules and append_rules for [icon] by @grig-iv in #670
feat: add new scrolloff option to [manager] by @dedukun in #679
feat: add color to icons by @Andy-W-Developer in #683
feat: expose selected/yanked files as API by @sxyazi in #674
feat: add new file marked state by @sxyazi in #682
feat: add counter component to the header for displaying currently \
selected/yanked items by @Rolv-Apneseth in #646
feat: add icons for Scala, Elm and Java (.jar & .class) by @jpaju in #684
feat: add a new option --hovered to the open command by @fakerepic in #687
refactor: using definite patterns to simplify keybindings by @sxyazi in #690
feat: nested selection conflict detection by @evpeople in #689
feat: cross-directory selection by @sxyazi in #693
fix: allow running ya.sync in a sync plugin call by @dedukun in #702
fix: ignore further classified mime-types by @sxyazi in #707
perf: cache loaded plugins by @sxyazi in #710
feat: add icons for C#, KDL and Nushell by @lpnh in #711
feat: better accessibility by @sxyazi in #719
fix: rendering fails when no file type style is matched by @sxyazi in #721
fix: skip when the mime-type cannot match due to file permissions by @sxyazi \
in #725
refactor: new yazi-boot crate by @sxyazi in #728
fix: initialize logs right after configurations by @dedukun in #708
refactor: prefer Display over ToString by @sxyazi in #734
feat: add hovered as $0 for shell and opener by @rrveex in #738
feat: add a new [notify] section to the theme.toml to configure the notify \
component's style by @evpeople in #749
feat: add prepend_rules and append_rules for [open] in yazi.toml by @lpnh in #754
feat: support YAZI_FILE_ONE environment variable for file(1) path by \
@ndtoan96 in #752
perf: apply add_many()/remove_many() to the visual mode items for selection \
conflict detecting by @sxyazi in #758
feat: support %0 as the hovered file for Windows by @sxyazi in #761
feat: ya.input() plugin API by @sxyazi in #762
feat: add musl linux build targets by @uznog in #759
fix: nested conflict detection exception when performing cross-level \
searches by @sxyazi in #769
refactor: add new run property by @sxyazi in #773
feat: add Ctrl-[ as an escape key by @hankertrix in #763
feat: ya.notify() plugin API by @sxyazi in #780
feat: ui.Clear component for UI plugins by @sxyazi in #786
feat: add <C-p> and <C-n> to the select component for moving the \
cursor up/down by @hankertrix in #779
feat: send a foreground notification to the user when the process fails to \
run by @hqwuzhaoyi in #775
feat: cx.yanked plugin API by @sxyazi in #788
fix: track the latest file changes for the selected, yanked state when \
available by @sxyazi in #791
feat: truncate path for deeply nested directories by @yixiaojiu in #787
feat: ya.hide() plugin API by @sxyazi in #792
Files: