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:
RevisionActionfile
1.10modifypkgsrc/sysutils/yazi/Makefile
1.8modifypkgsrc/sysutils/yazi/cargo-depends.mk
1.9modifypkgsrc/sysutils/yazi/distinfo