mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-21 14:51:03 +00:00
feat: new which:dismiss command to dismiss the which component (#3654)
This commit is contained in:
parent
339002ee48
commit
6757fed5aa
52 changed files with 370 additions and 366 deletions
124
Cargo.lock
generated
124
Cargo.lock
generated
|
|
@ -485,9 +485,9 @@ checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06"
|
|||
|
||||
[[package]]
|
||||
name = "bytemuck"
|
||||
version = "1.24.0"
|
||||
version = "1.25.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4"
|
||||
checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec"
|
||||
dependencies = [
|
||||
"bytemuck_derive",
|
||||
]
|
||||
|
|
@ -541,9 +541,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.2.54"
|
||||
version = "1.2.55"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6354c81bbfd62d9cfa9cb3c773c2b7b2a3a482d569de977fd0e961f6e7c00583"
|
||||
checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29"
|
||||
dependencies = [
|
||||
"find-msvc-tools",
|
||||
"jobserver",
|
||||
|
|
@ -600,9 +600,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.5.55"
|
||||
version = "4.5.56"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3e34525d5bbbd55da2bb745d34b36121baac88d07619a9a09cfcf4a6c0832785"
|
||||
checksum = "a75ca66430e33a14957acc24c5077b503e7d374151b2b4b3a10c83b4ceb4be0e"
|
||||
dependencies = [
|
||||
"clap_builder",
|
||||
"clap_derive",
|
||||
|
|
@ -610,9 +610,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clap_builder"
|
||||
version = "4.5.55"
|
||||
version = "4.5.56"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "59a20016a20a3da95bef50ec7238dbd09baeef4311dcdd38ec15aba69812fb61"
|
||||
checksum = "793207c7fa6300a0608d1080b858e5fdbe713cdc1c8db9fb17777d8a13e63df0"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anstyle",
|
||||
|
|
@ -920,9 +920,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "crypto-common"
|
||||
version = "0.2.0-rc.13"
|
||||
version = "0.2.0-rc.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c7722afd27468475c9b6063dc03a57ef2ca833816981619f8ebe64d38d207eef"
|
||||
checksum = "5569e5de27d32e673283717728eb5b0e4f30898b523f151a19c51e6188006599"
|
||||
dependencies = [
|
||||
"hybrid-array",
|
||||
]
|
||||
|
|
@ -1240,13 +1240,13 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "digest"
|
||||
version = "0.11.0-rc.9"
|
||||
version = "0.11.0-rc.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bff8de092798697546237a3a701e4174fe021579faec9b854379af9bf1e31962"
|
||||
checksum = "afa94b64bfc6549e6e4b5a3216f22593224174083da7a90db47e951c4fb31725"
|
||||
dependencies = [
|
||||
"block-buffer 0.11.0",
|
||||
"const-oid 0.10.2",
|
||||
"crypto-common 0.2.0-rc.13",
|
||||
"crypto-common 0.2.0-rc.14",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -1546,9 +1546,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "find-msvc-tools"
|
||||
version = "0.1.8"
|
||||
version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db"
|
||||
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
|
||||
|
||||
[[package]]
|
||||
name = "finl_unicode"
|
||||
|
|
@ -2064,7 +2064,7 @@ checksum = "fe44f2bbd99fcb302e246e2d6bcf51aeda346d02a365f80296a07a8c711b6da6"
|
|||
dependencies = [
|
||||
"argon2",
|
||||
"bcrypt-pbkdf",
|
||||
"digest 0.11.0-rc.9",
|
||||
"digest 0.11.0-rc.10",
|
||||
"ecdsa",
|
||||
"ed25519-dalek",
|
||||
"hex",
|
||||
|
|
@ -3199,9 +3199,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "portable-atomic"
|
||||
version = "1.13.0"
|
||||
version = "1.13.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950"
|
||||
checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
|
||||
|
||||
[[package]]
|
||||
name = "powerfmt"
|
||||
|
|
@ -3692,7 +3692,7 @@ dependencies = [
|
|||
"const-oid 0.10.2",
|
||||
"crypto-bigint 0.7.0-rc.18",
|
||||
"crypto-primes",
|
||||
"digest 0.11.0-rc.9",
|
||||
"digest 0.11.0-rc.10",
|
||||
"pkcs1",
|
||||
"pkcs8 0.11.0-rc.10",
|
||||
"rand_core 0.10.0-rc-3",
|
||||
|
|
@ -3888,9 +3888,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "schemars"
|
||||
version = "1.2.0"
|
||||
version = "1.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "54e910108742c57a770f492731f99be216a52fadd361b06c8fb59d74ccc267d2"
|
||||
checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc"
|
||||
dependencies = [
|
||||
"dyn-clone",
|
||||
"ref-cast",
|
||||
|
|
@ -4009,7 +4009,7 @@ dependencies = [
|
|||
"indexmap 1.9.3",
|
||||
"indexmap 2.13.0",
|
||||
"schemars 0.9.0",
|
||||
"schemars 1.2.0",
|
||||
"schemars 1.2.1",
|
||||
"serde_core",
|
||||
"serde_json",
|
||||
"serde_with_macros",
|
||||
|
|
@ -4057,7 +4057,7 @@ checksum = "9c777f0a122a53fddb0beb6e706771197000b8eb5c9f42b5b850f450ef48c788"
|
|||
dependencies = [
|
||||
"cfg-if",
|
||||
"cpufeatures",
|
||||
"digest 0.11.0-rc.9",
|
||||
"digest 0.11.0-rc.10",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -4079,7 +4079,7 @@ checksum = "7535f94fa3339fe9e5e9be6260a909e62af97f6e14b32345ccf79b92b8b81233"
|
|||
dependencies = [
|
||||
"cfg-if",
|
||||
"cpufeatures",
|
||||
"digest 0.11.0-rc.9",
|
||||
"digest 0.11.0-rc.10",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -4166,7 +4166,7 @@ version = "3.0.0-rc.6"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "597a96996ccff7dfa16f052bd995b4cecc72af22c35138738dc029f0ead6608d"
|
||||
dependencies = [
|
||||
"digest 0.11.0-rc.9",
|
||||
"digest 0.11.0-rc.10",
|
||||
"rand_core 0.10.0-rc-3",
|
||||
]
|
||||
|
||||
|
|
@ -4199,9 +4199,9 @@ checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e"
|
|||
|
||||
[[package]]
|
||||
name = "slab"
|
||||
version = "0.4.11"
|
||||
version = "0.4.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
|
||||
checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
|
||||
|
||||
[[package]]
|
||||
name = "smallvec"
|
||||
|
|
@ -5534,7 +5534,7 @@ checksum = "7a5a4b21e1a62b67a2970e6831bc091d7b87e119e7f9791aef9702e3bef04448"
|
|||
|
||||
[[package]]
|
||||
name = "yazi-actor"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"crossterm 0.29.0",
|
||||
|
|
@ -5571,7 +5571,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-adapter"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"ansi-to-tui",
|
||||
"anyhow",
|
||||
|
|
@ -5594,7 +5594,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-binding"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"ansi-to-tui",
|
||||
"anyhow",
|
||||
|
|
@ -5621,7 +5621,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-boot"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"clap_complete",
|
||||
|
|
@ -5642,14 +5642,14 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-build"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"yazi-tty",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "yazi-cli"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
|
|
@ -5673,7 +5673,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-codegen"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"quote",
|
||||
"syn 2.0.114",
|
||||
|
|
@ -5681,7 +5681,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-config"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bitflags 2.10.0",
|
||||
|
|
@ -5705,7 +5705,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-core"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"crossterm 0.29.0",
|
||||
|
|
@ -5719,6 +5719,7 @@ dependencies = [
|
|||
"tracing",
|
||||
"unicode-width",
|
||||
"yazi-adapter",
|
||||
"yazi-binding",
|
||||
"yazi-config",
|
||||
"yazi-dds",
|
||||
"yazi-emulator",
|
||||
|
|
@ -5736,7 +5737,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-dds"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"hashbrown 0.16.1",
|
||||
|
|
@ -5762,7 +5763,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-emulator"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"crossterm 0.29.0",
|
||||
|
|
@ -5777,7 +5778,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-ffi"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"core-foundation-sys",
|
||||
|
|
@ -5788,7 +5789,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-fm"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"better-panic",
|
||||
|
|
@ -5830,7 +5831,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-fs"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arc-swap",
|
||||
|
|
@ -5862,15 +5863,15 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-macro"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
|
||||
[[package]]
|
||||
name = "yazi-packing"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
|
||||
[[package]]
|
||||
name = "yazi-parser"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bitflags 2.10.0",
|
||||
|
|
@ -5895,7 +5896,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-plugin"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"crossterm 0.29.0",
|
||||
|
|
@ -5941,9 +5942,10 @@ checksum = "33232d9116df6415ddfcdf72701b1b7439ce87f240a14723e8dd5d17e7ed5f98"
|
|||
|
||||
[[package]]
|
||||
name = "yazi-proxy"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"tokio",
|
||||
"yazi-binding",
|
||||
"yazi-config",
|
||||
"yazi-macro",
|
||||
"yazi-parser",
|
||||
|
|
@ -5953,7 +5955,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-scheduler"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-priority-channel",
|
||||
|
|
@ -5982,7 +5984,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-sftp"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"bitflags 2.10.0",
|
||||
"parking_lot",
|
||||
|
|
@ -5994,7 +5996,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-shared"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"crossterm 0.29.0",
|
||||
|
|
@ -6018,7 +6020,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-shim"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"crossterm 0.29.0",
|
||||
"twox-hash",
|
||||
|
|
@ -6027,7 +6029,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-term"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"crossterm 0.29.0",
|
||||
|
|
@ -6043,7 +6045,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-tty"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"parking_lot",
|
||||
|
|
@ -6055,7 +6057,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-vfs"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"deadpool",
|
||||
|
|
@ -6076,7 +6078,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-watcher"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"hashbrown 0.16.1",
|
||||
|
|
@ -6097,7 +6099,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yazi-widgets"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
|
|
@ -6118,18 +6120,18 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "zerocopy"
|
||||
version = "0.8.35"
|
||||
version = "0.8.37"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fdea86ddd5568519879b8187e1cf04e24fce28f7fe046ceecbce472ff19a2572"
|
||||
checksum = "7456cf00f0685ad319c5b1693f291a650eaf345e941d082fc4e03df8a03996ac"
|
||||
dependencies = [
|
||||
"zerocopy-derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zerocopy-derive"
|
||||
version = "0.8.35"
|
||||
version = "0.8.37"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0c15e1b46eff7c6c91195752e0eeed8ef040e391cdece7c25376957d5f15df22"
|
||||
checksum = "1328722bbf2115db7e19d69ebcc15e795719e2d66b60827c6a69a117365e37a0"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
|
@ -6158,9 +6160,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "zmij"
|
||||
version = "1.0.17"
|
||||
version = "1.0.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "02aae0f83f69aafc94776e879363e9771d7ecbffe2c7fbb6c14c5e00dfe88439"
|
||||
checksum = "1966f8ac2c1f76987d69a74d0e0f929241c10e78136434e3be70ff7f58f64214"
|
||||
|
||||
[[package]]
|
||||
name = "zune-core"
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ ansi-to-tui = "8.0.1"
|
|||
anyhow = "1.0.100"
|
||||
base64 = "0.22.1"
|
||||
bitflags = { version = "2.10.0", features = [ "serde" ] }
|
||||
clap = { version = "4.5.55", features = [ "derive" ] }
|
||||
clap = { version = "4.5.56", features = [ "derive" ] }
|
||||
core-foundation-sys = "0.8.7"
|
||||
crossterm = { version = "0.29.0", features = [ "event-stream" ] }
|
||||
dirs = "6.0.0"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-actor"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -16,24 +16,24 @@ default = [ "vendored-lua" ]
|
|||
vendored-lua = [ "mlua/vendored" ]
|
||||
|
||||
[dependencies]
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.1.22" }
|
||||
yazi-boot = { path = "../yazi-boot", version = "26.1.22" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-core = { path = "../yazi-core", version = "26.1.22" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.1.22" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.1.22" }
|
||||
yazi-plugin = { path = "../yazi-plugin", version = "26.1.22" }
|
||||
yazi-proxy = { path = "../yazi-proxy", version = "26.1.22" }
|
||||
yazi-scheduler = { path = "../yazi-scheduler", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-term = { path = "../yazi-term", version = "26.1.22" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.1.22" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.1.22" }
|
||||
yazi-watcher = { path = "../yazi-watcher", version = "26.1.22" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.1.22" }
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.2.2" }
|
||||
yazi-boot = { path = "../yazi-boot", version = "26.2.2" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-core = { path = "../yazi-core", version = "26.2.2" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.2.2" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.2.2" }
|
||||
yazi-plugin = { path = "../yazi-plugin", version = "26.2.2" }
|
||||
yazi-proxy = { path = "../yazi-proxy", version = "26.2.2" }
|
||||
yazi-scheduler = { path = "../yazi-scheduler", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-term = { path = "../yazi-term", version = "26.2.2" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.2.2" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.2.2" }
|
||||
yazi-watcher = { path = "../yazi-watcher", version = "26.2.2" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ impl Actor for PluginDo {
|
|||
let blocking = runtime_mut!(LUA)?.critical_push(&opt.id, true);
|
||||
defer! { _ = runtime_mut!(LUA).map(|mut r| r.critical_pop(blocking)) }
|
||||
|
||||
let plugin = match LOADER.load_with(&LUA, &opt.id, chunk) {
|
||||
let plugin = match LOADER.load_chunk(&LUA, &opt.id, chunk) {
|
||||
Ok(t) => t,
|
||||
Err(e) => succ!(warn!("{e}")),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ use super::{Lives, PtrCell};
|
|||
pub(super) struct Which {
|
||||
inner: PtrCell<yazi_core::which::Which>,
|
||||
|
||||
v_tx: Option<Value>,
|
||||
v_cands: Option<Value>,
|
||||
}
|
||||
|
||||
|
|
@ -19,12 +20,13 @@ impl Deref for Which {
|
|||
|
||||
impl Which {
|
||||
pub(super) fn make(inner: &yazi_core::which::Which) -> mlua::Result<AnyUserData> {
|
||||
Lives::scoped_userdata(Self { inner: inner.into(), v_cands: None })
|
||||
Lives::scoped_userdata(Self { inner: inner.into(), v_tx: None, v_cands: None })
|
||||
}
|
||||
}
|
||||
|
||||
impl UserData for Which {
|
||||
fn add_fields<F: UserDataFields<Self>>(fields: &mut F) {
|
||||
cached_field!(fields, tx, |_, me| Ok(me.tx.clone().map(yazi_binding::MpscUnboundedTx)));
|
||||
fields.add_field_method_get("times", |_, me| Ok(me.inner.times));
|
||||
cached_field!(fields, cands, |lua, me| {
|
||||
lua.create_sequence_from(me.inner.cands.iter().cloned().map(yazi_binding::ChordCow))
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ impl Actor for Activate {
|
|||
}
|
||||
|
||||
let which = &mut cx.which;
|
||||
which.tx = opt.tx;
|
||||
which.times = opt.times;
|
||||
which.cands = opt.cands;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
use anyhow::Result;
|
||||
use yazi_macro::succ;
|
||||
use yazi_parser::which::CallbackOpt;
|
||||
use yazi_shared::data::Data;
|
||||
|
||||
use crate::{Actor, Ctx};
|
||||
|
||||
pub struct Callback;
|
||||
|
||||
impl Actor for Callback {
|
||||
type Options = CallbackOpt;
|
||||
|
||||
const NAME: &str = "callback";
|
||||
|
||||
fn act(_: &mut Ctx, opt: Self::Options) -> Result<Data> {
|
||||
opt.tx.send(opt.idx)?;
|
||||
succ!();
|
||||
}
|
||||
}
|
||||
18
yazi-actor/src/which/dismiss.rs
Normal file
18
yazi-actor/src/which/dismiss.rs
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
use anyhow::Result;
|
||||
use yazi_macro::succ;
|
||||
use yazi_parser::VoidOpt;
|
||||
use yazi_shared::data::Data;
|
||||
|
||||
use crate::{Actor, Ctx};
|
||||
|
||||
pub struct Dismiss;
|
||||
|
||||
impl Actor for Dismiss {
|
||||
type Options = VoidOpt;
|
||||
|
||||
const NAME: &str = "dismiss";
|
||||
|
||||
fn act(cx: &mut Ctx, _: Self::Options) -> Result<Data> {
|
||||
succ!(cx.which.dismiss(None));
|
||||
}
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
yazi_macro::mod_flat!(activate callback);
|
||||
yazi_macro::mod_flat!(activate dismiss);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-adapter"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,12 +12,12 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.1.22" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
ansi-to-tui = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-binding"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -16,14 +16,14 @@ default = [ "vendored-lua" ]
|
|||
vendored-lua = [ "mlua/vendored" ]
|
||||
|
||||
[dependencies]
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.1.22" }
|
||||
yazi-codegen = { path = "../yazi-codegen", version = "26.1.22" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.1.22" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.1.22" }
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.2.2" }
|
||||
yazi-codegen = { path = "../yazi-codegen", version = "26.2.2" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.2.2" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
ansi-to-tui = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,14 +1,16 @@
|
|||
use mlua::{ExternalError, IntoLuaMulti, UserData, Value};
|
||||
use mlua::{ExternalError, FromLua, IntoLua, IntoLuaMulti, UserData, Value};
|
||||
use yazi_codegen::FromLuaOwned;
|
||||
|
||||
use crate::Error;
|
||||
|
||||
pub struct MpscTx(pub tokio::sync::mpsc::Sender<Value>);
|
||||
pub struct MpscRx(pub tokio::sync::mpsc::Receiver<Value>);
|
||||
#[derive(FromLuaOwned)]
|
||||
pub struct MpscTx<T: FromLua + 'static>(pub tokio::sync::mpsc::Sender<T>);
|
||||
pub struct MpscRx<T: IntoLua + 'static>(pub tokio::sync::mpsc::Receiver<T>);
|
||||
|
||||
impl UserData for MpscTx {
|
||||
impl<T: FromLua> UserData for MpscTx<T> {
|
||||
fn add_methods<M: mlua::UserDataMethods<Self>>(methods: &mut M) {
|
||||
methods.add_async_method("send", |lua, me, value: Value| async move {
|
||||
match me.0.send(value).await {
|
||||
match me.0.send(T::from_lua(value, &lua)?).await {
|
||||
Ok(()) => true.into_lua_multi(&lua),
|
||||
Err(e) => (false, Error::custom(e.to_string())).into_lua_multi(&lua),
|
||||
}
|
||||
|
|
@ -16,7 +18,7 @@ impl UserData for MpscTx {
|
|||
}
|
||||
}
|
||||
|
||||
impl UserData for MpscRx {
|
||||
impl<T: IntoLua + 'static> UserData for MpscRx<T> {
|
||||
fn add_methods<M: mlua::UserDataMethods<Self>>(methods: &mut M) {
|
||||
methods.add_async_method_mut("recv", |lua, mut me, ()| async move {
|
||||
match me.0.recv().await {
|
||||
|
|
@ -27,19 +29,20 @@ impl UserData for MpscRx {
|
|||
}
|
||||
}
|
||||
|
||||
pub struct MpscUnboundedTx(pub tokio::sync::mpsc::UnboundedSender<Value>);
|
||||
pub struct MpscUnboundedRx(pub tokio::sync::mpsc::UnboundedReceiver<Value>);
|
||||
#[derive(FromLuaOwned)]
|
||||
pub struct MpscUnboundedTx<T: FromLua + 'static>(pub tokio::sync::mpsc::UnboundedSender<T>);
|
||||
pub struct MpscUnboundedRx<T: IntoLua + 'static>(pub tokio::sync::mpsc::UnboundedReceiver<T>);
|
||||
|
||||
impl UserData for MpscUnboundedTx {
|
||||
impl<T: FromLua> UserData for MpscUnboundedTx<T> {
|
||||
fn add_methods<M: mlua::UserDataMethods<Self>>(methods: &mut M) {
|
||||
methods.add_method("send", |lua, me, value: Value| match me.0.send(value) {
|
||||
methods.add_method("send", |lua, me, value: Value| match me.0.send(T::from_lua(value, lua)?) {
|
||||
Ok(()) => true.into_lua_multi(lua),
|
||||
Err(e) => (false, Error::custom(e.to_string())).into_lua_multi(lua),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
impl UserData for MpscUnboundedRx {
|
||||
impl<T: IntoLua + 'static> UserData for MpscUnboundedRx<T> {
|
||||
fn add_methods<M: mlua::UserDataMethods<Self>>(methods: &mut M) {
|
||||
methods.add_async_method_mut("recv", |lua, mut me, ()| async move {
|
||||
match me.0.recv().await {
|
||||
|
|
@ -50,16 +53,17 @@ impl UserData for MpscUnboundedRx {
|
|||
}
|
||||
}
|
||||
|
||||
pub struct OneshotTx(pub Option<tokio::sync::oneshot::Sender<Value>>);
|
||||
pub struct OneshotRx(pub Option<tokio::sync::oneshot::Receiver<Value>>);
|
||||
#[derive(FromLuaOwned)]
|
||||
pub struct OneshotTx<T: FromLua + 'static>(pub Option<tokio::sync::oneshot::Sender<T>>);
|
||||
pub struct OneshotRx<T: IntoLua + 'static>(pub Option<tokio::sync::oneshot::Receiver<T>>);
|
||||
|
||||
impl UserData for OneshotTx {
|
||||
impl<T: FromLua> UserData for OneshotTx<T> {
|
||||
fn add_methods<M: mlua::UserDataMethods<Self>>(methods: &mut M) {
|
||||
methods.add_method_mut("send", |lua, me, value: Value| {
|
||||
let Some(tx) = me.0.take() else {
|
||||
return Err("Oneshot sender already used".into_lua_err());
|
||||
};
|
||||
match tx.send(value) {
|
||||
match tx.send(T::from_lua(value, lua)?) {
|
||||
Ok(()) => true.into_lua_multi(lua),
|
||||
Err(_) => (false, Error::custom("Oneshot receiver closed")).into_lua_multi(lua),
|
||||
}
|
||||
|
|
@ -67,7 +71,7 @@ impl UserData for OneshotTx {
|
|||
}
|
||||
}
|
||||
|
||||
impl UserData for OneshotRx {
|
||||
impl<T: IntoLua + 'static> UserData for OneshotRx<T> {
|
||||
fn add_methods<M: mlua::UserDataMethods<Self>>(methods: &mut M) {
|
||||
methods.add_async_method_mut("recv", |lua, mut me, ()| async move {
|
||||
let Some(rx) = me.0.take() else {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,10 @@ use yazi_codegen::FromLuaOwned;
|
|||
#[derive(Clone, FromLuaOwned)]
|
||||
pub struct ChordCow(pub yazi_config::keymap::ChordCow);
|
||||
|
||||
impl From<yazi_config::keymap::ChordCow> for ChordCow {
|
||||
fn from(value: yazi_config::keymap::ChordCow) -> Self { Self(value) }
|
||||
}
|
||||
|
||||
impl From<ChordCow> for yazi_config::keymap::ChordCow {
|
||||
fn from(value: ChordCow) -> Self { value.0 }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-boot"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,13 +12,13 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.1.22" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.1.22" }
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.2.2" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
clap = { workspace = true }
|
||||
|
|
@ -27,7 +27,7 @@ hashbrown = { workspace = true }
|
|||
regex = { workspace = true }
|
||||
|
||||
[build-dependencies]
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
clap = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-build"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -18,7 +18,7 @@ panic = "abort"
|
|||
strip = true
|
||||
|
||||
[build-dependencies]
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.1.22" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.2.2" }
|
||||
|
||||
[[bin]]
|
||||
name = "yazi-build"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-cli"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -22,12 +22,12 @@ inherits = "release"
|
|||
panic = "unwind"
|
||||
|
||||
[dependencies]
|
||||
yazi-boot = { path = "../yazi-boot", version = "26.1.22" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-shim = { path = "../yazi-shim", version = "26.1.22" }
|
||||
yazi-boot = { path = "../yazi-boot", version = "26.2.2" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-shim = { path = "../yazi-shim", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
@ -40,7 +40,7 @@ toml = { workspace = true }
|
|||
twox-hash = { workspace = true }
|
||||
|
||||
[build-dependencies]
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
|
||||
# External build dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-codegen"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-config"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,11 +12,11 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-codegen = { path = "../yazi-codegen", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.1.22" }
|
||||
yazi-codegen = { path = "../yazi-codegen", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-core"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,20 +12,21 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.1.22" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.1.22" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.1.22" }
|
||||
yazi-plugin = { path = "../yazi-plugin", version = "26.1.22" }
|
||||
yazi-proxy = { path = "../yazi-proxy", version = "26.1.22" }
|
||||
yazi-scheduler = { path = "../yazi-scheduler", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.1.22" }
|
||||
yazi-watcher = { path = "../yazi-watcher", version = "26.1.22" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.1.22" }
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.2.2" }
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.2.2" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.2.2" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.2.2" }
|
||||
yazi-plugin = { path = "../yazi-plugin", version = "26.2.2" }
|
||||
yazi-proxy = { path = "../yazi-proxy", version = "26.2.2" }
|
||||
yazi-scheduler = { path = "../yazi-scheduler", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.2.2" }
|
||||
yazi-watcher = { path = "../yazi-watcher", version = "26.2.2" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
use tokio::sync::mpsc;
|
||||
use yazi_config::keymap::{ChordCow, Key};
|
||||
use yazi_macro::{emit, render_and};
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct Which {
|
||||
pub tx: Option<mpsc::UnboundedSender<Option<yazi_binding::ChordCow>>>,
|
||||
pub times: usize,
|
||||
pub cands: Vec<ChordCow>,
|
||||
|
||||
|
|
@ -17,23 +19,30 @@ impl Which {
|
|||
self.times += 1;
|
||||
|
||||
if self.cands.is_empty() {
|
||||
self.reset();
|
||||
self.dismiss(None);
|
||||
} else if self.cands.len() == 1 {
|
||||
emit!(Seq(self.cands.remove(0).into_seq()));
|
||||
self.reset();
|
||||
let chord = self.cands.remove(0);
|
||||
self.dismiss(Some(chord));
|
||||
} else if let Some(i) = self.cands.iter().position(|c| c.on.len() == self.times) {
|
||||
emit!(Seq(self.cands.remove(i).into_seq()));
|
||||
self.reset();
|
||||
let chord = self.cands.remove(i);
|
||||
self.dismiss(Some(chord));
|
||||
}
|
||||
|
||||
render_and!(true)
|
||||
}
|
||||
|
||||
fn reset(&mut self) {
|
||||
pub fn dismiss(&mut self, chord: Option<ChordCow>) {
|
||||
self.times = 0;
|
||||
self.cands.clear();
|
||||
|
||||
self.active = false;
|
||||
self.silent = false;
|
||||
|
||||
if let Some(tx) = self.tx.take() {
|
||||
_ = tx.send(chord.clone().map(Into::into));
|
||||
}
|
||||
if let Some(chord) = chord {
|
||||
emit!(Seq(chord.into_seq()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-dds"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -16,13 +16,13 @@ default = [ "vendored-lua" ]
|
|||
vendored-lua = [ "mlua/vendored" ]
|
||||
|
||||
[dependencies]
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.1.22" }
|
||||
yazi-boot = { path = "../yazi-boot", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.1.22" }
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.2.2" }
|
||||
yazi-boot = { path = "../yazi-boot", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -147,8 +147,8 @@ pub enum Spark<'a> {
|
|||
TasksUpdateSucceed(yazi_parser::tasks::UpdateSucceedOpt),
|
||||
|
||||
// Which
|
||||
WhichCallback(yazi_parser::which::CallbackOpt),
|
||||
WhichActivate(yazi_parser::which::ActivateOpt),
|
||||
WhichDismiss(yazi_parser::VoidOpt),
|
||||
}
|
||||
|
||||
impl<'a> Spark<'a> {
|
||||
|
|
@ -318,8 +318,8 @@ impl<'a> IntoLua for Spark<'a> {
|
|||
Self::TasksUpdateSucceed(b) => b.into_lua(lua),
|
||||
|
||||
// Which
|
||||
Self::WhichCallback(b) => b.into_lua(lua),
|
||||
Self::WhichActivate(b) => b.into_lua(lua),
|
||||
Self::WhichDismiss(b) => b.into_lua(lua),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -343,7 +343,8 @@ try_from_spark!(
|
|||
mgr:search_stop,
|
||||
mgr:suspend,
|
||||
mgr:unyank,
|
||||
mgr:watch
|
||||
mgr:watch,
|
||||
which:dismiss
|
||||
);
|
||||
|
||||
// App
|
||||
|
|
@ -415,7 +416,6 @@ try_from_spark!(yazi_parser::spot::CopyOpt, spot:copy);
|
|||
try_from_spark!(yazi_parser::tasks::ProcessOpenOpt, tasks:process_open);
|
||||
try_from_spark!(yazi_parser::tasks::UpdateSucceedOpt, tasks:update_succeed);
|
||||
try_from_spark!(yazi_parser::which::ActivateOpt, which:activate);
|
||||
try_from_spark!(yazi_parser::which::CallbackOpt, which:callback);
|
||||
try_from_spark!(yazi_widgets::input::parser::BackspaceOpt, input:backspace);
|
||||
try_from_spark!(yazi_widgets::input::parser::BackwardOpt, input:backward);
|
||||
try_from_spark!(yazi_widgets::input::parser::CompleteOpt, input:complete);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-emulator"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,9 +12,9 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-ffi"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,7 +12,7 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-fm"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -26,25 +26,25 @@ default = [ "vendored-lua" ]
|
|||
vendored-lua = [ "mlua/vendored" ]
|
||||
|
||||
[dependencies]
|
||||
yazi-actor = { path = "../yazi-actor", version = "26.1.22" }
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.1.22" }
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.1.22" }
|
||||
yazi-boot = { path = "../yazi-boot", version = "26.1.22" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-core = { path = "../yazi-core", version = "26.1.22" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.1.22" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.1.22" }
|
||||
yazi-plugin = { path = "../yazi-plugin", version = "26.1.22" }
|
||||
yazi-proxy = { path = "../yazi-proxy", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-term = { path = "../yazi-term", version = "26.1.22" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.1.22" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.1.22" }
|
||||
yazi-watcher = { path = "../yazi-watcher", version = "26.1.22" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.1.22" }
|
||||
yazi-actor = { path = "../yazi-actor", version = "26.2.2" }
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.2.2" }
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.2.2" }
|
||||
yazi-boot = { path = "../yazi-boot", version = "26.2.2" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-core = { path = "../yazi-core", version = "26.2.2" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.2.2" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.2.2" }
|
||||
yazi-plugin = { path = "../yazi-plugin", version = "26.2.2" }
|
||||
yazi-proxy = { path = "../yazi-proxy", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-term = { path = "../yazi-term", version = "26.2.2" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.2.2" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.2.2" }
|
||||
yazi-watcher = { path = "../yazi-watcher", version = "26.2.2" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -352,7 +352,7 @@ impl<'a> Executor<'a> {
|
|||
}
|
||||
|
||||
on!(activate);
|
||||
on!(callback);
|
||||
on!(dismiss);
|
||||
|
||||
succ!();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-fs"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,10 +12,10 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-ffi = { path = "../yazi-ffi", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-shim = { path = "../yazi-shim", version = "26.1.22" }
|
||||
yazi-ffi = { path = "../yazi-ffi", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-shim = { path = "../yazi-shim", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-macro"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-packing"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-parser"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -16,14 +16,14 @@ default = [ "vendored-lua" ]
|
|||
vendored-lua = [ "mlua/vendored" ]
|
||||
|
||||
[dependencies]
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.1.22" }
|
||||
yazi-boot = { path = "../yazi-boot", version = "26.1.22" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.1.22" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.1.22" }
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.2.2" }
|
||||
yazi-boot = { path = "../yazi-boot", version = "26.2.2" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.2.2" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
use mlua::{ExternalError, FromLua, IntoLua, Lua, Table, Value};
|
||||
use tokio::sync::mpsc;
|
||||
use yazi_config::{KEYMAP, keymap::{ChordCow, Key}};
|
||||
use yazi_shared::{Layer, event::CmdCow};
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct ActivateOpt {
|
||||
pub tx: Option<mpsc::UnboundedSender<Option<yazi_binding::ChordCow>>>,
|
||||
pub cands: Vec<ChordCow>,
|
||||
pub silent: bool,
|
||||
pub times: usize,
|
||||
|
|
@ -18,6 +20,7 @@ impl TryFrom<CmdCow> for ActivateOpt {
|
|||
}
|
||||
|
||||
Ok(Self {
|
||||
tx: c.take_any2("tx").transpose()?,
|
||||
cands: c.take_any_iter::<yazi_binding::ChordCow>().map(Into::into).collect(),
|
||||
silent: c.bool("silent"),
|
||||
times: c.get("times").unwrap_or(0),
|
||||
|
|
@ -28,6 +31,7 @@ impl TryFrom<CmdCow> for ActivateOpt {
|
|||
impl From<(Layer, Key)> for ActivateOpt {
|
||||
fn from((layer, key): (Layer, Key)) -> Self {
|
||||
Self {
|
||||
tx: None,
|
||||
cands: KEYMAP
|
||||
.get(layer)
|
||||
.iter()
|
||||
|
|
@ -47,6 +51,7 @@ impl FromLua for ActivateOpt {
|
|||
};
|
||||
|
||||
Ok(Self {
|
||||
tx: t.raw_get::<yazi_binding::MpscUnboundedTx<_>>("tx").ok().map(|t| t.0),
|
||||
cands: t
|
||||
.raw_get::<Table>("cands")?
|
||||
.sequence_values::<yazi_binding::ChordCow>()
|
||||
|
|
@ -63,6 +68,7 @@ impl IntoLua for ActivateOpt {
|
|||
fn into_lua(self, lua: &Lua) -> mlua::Result<Value> {
|
||||
lua
|
||||
.create_table_from([
|
||||
("tx", self.tx.map(yazi_binding::MpscUnboundedTx).into_lua(lua)?),
|
||||
("cands", lua.create_sequence_from(self.cands.into_iter().map(yazi_binding::ChordCow))?.into_lua(lua)?),
|
||||
("times", self.times.into_lua(lua)?),
|
||||
("silent", self.silent.into_lua(lua)?),
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
use anyhow::bail;
|
||||
use mlua::{ExternalError, FromLua, IntoLua, Lua, Value};
|
||||
use tokio::sync::mpsc;
|
||||
use yazi_shared::event::CmdCow;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct CallbackOpt {
|
||||
pub tx: mpsc::UnboundedSender<usize>,
|
||||
pub idx: usize,
|
||||
}
|
||||
|
||||
impl TryFrom<CmdCow> for CallbackOpt {
|
||||
type Error = anyhow::Error;
|
||||
|
||||
fn try_from(mut c: CmdCow) -> Result<Self, Self::Error> {
|
||||
let Some(tx) = c.take_any("tx") else {
|
||||
bail!("Invalid 'tx' in CallbackOpt");
|
||||
};
|
||||
|
||||
let Ok(idx) = c.first() else {
|
||||
bail!("Invalid 'idx' in CallbackOpt");
|
||||
};
|
||||
|
||||
Ok(Self { tx, idx })
|
||||
}
|
||||
}
|
||||
|
||||
impl FromLua for CallbackOpt {
|
||||
fn from_lua(_: Value, _: &Lua) -> mlua::Result<Self> { Err("unsupported".into_lua_err()) }
|
||||
}
|
||||
|
||||
impl IntoLua for CallbackOpt {
|
||||
fn into_lua(self, _: &Lua) -> mlua::Result<Value> { Err("unsupported".into_lua_err()) }
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
yazi_macro::mod_flat!(activate callback);
|
||||
yazi_macro::mod_flat!(activate);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-plugin"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -16,20 +16,20 @@ default = [ "vendored-lua" ]
|
|||
vendored-lua = [ "mlua/vendored" ]
|
||||
|
||||
[dependencies]
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.1.22" }
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.1.22" }
|
||||
yazi-boot = { path = "../yazi-boot", version = "26.1.22" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.1.22" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.1.22" }
|
||||
yazi-proxy = { path = "../yazi-proxy", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-shim = { path = "../yazi-shim", version = "26.1.22" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.1.22" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.1.22" }
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.2.2" }
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.2.2" }
|
||||
yazi-boot = { path = "../yazi-boot", version = "26.2.2" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.2.2" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.2.2" }
|
||||
yazi-proxy = { path = "../yazi-proxy", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-shim = { path = "../yazi-shim", version = "26.2.2" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.2.2" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -13,9 +13,8 @@ pub async fn entry(opt: PluginOpt) -> mlua::Result<()> {
|
|||
let lua = slim_lua(&opt.id)?;
|
||||
let job = lua.create_table_from([("args", Sendable::args_to_table(&lua, opt.args)?)])?;
|
||||
|
||||
Handle::current().block_on(async {
|
||||
LOADER.load_once(&lua, &opt.id).await?.call_async_method("entry", job).await
|
||||
})
|
||||
Handle::current()
|
||||
.block_on(async { LOADER.load(&lua, &opt.id).await?.call_async_method("entry", job).await })
|
||||
})
|
||||
.await
|
||||
.into_lua_err()?
|
||||
|
|
|
|||
|
|
@ -23,9 +23,8 @@ pub async fn fetch(
|
|||
("files", lua.create_sequence_from(files.into_iter().map(File::new))?.into_lua(&lua)?),
|
||||
])?;
|
||||
|
||||
Handle::current().block_on(async {
|
||||
LOADER.load_once(&lua, &cmd.name).await?.call_async_method("fetch", job).await
|
||||
})
|
||||
Handle::current()
|
||||
.block_on(async { LOADER.load(&lua, &cmd.name).await?.call_async_method("fetch", job).await })
|
||||
})
|
||||
.await
|
||||
.into_lua_err()?
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ fn peek_async(
|
|||
},
|
||||
)?;
|
||||
|
||||
let plugin = LOADER.load_once(&lua, &cmd.name).await?;
|
||||
let plugin = LOADER.load(&lua, &cmd.name).await?;
|
||||
let job = lua.create_table_from([
|
||||
("area", Rect::from(LAYOUT.get().preview).into_lua(&lua)?),
|
||||
("args", Sendable::args_to_table_ref(&lua, &cmd.args)?.into_lua(&lua)?),
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ pub async fn preload(
|
|||
},
|
||||
)?;
|
||||
|
||||
let plugin = LOADER.load_once(&lua, &cmd.name).await?;
|
||||
let plugin = LOADER.load(&lua, &cmd.name).await?;
|
||||
let job = lua.create_table_from([
|
||||
("area", Rect::from(LAYOUT.get().preview).into_lua(&lua)?),
|
||||
("args", Sendable::args_to_table_ref(&lua, &cmd.args)?.into_lua(&lua)?),
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ pub fn spot(
|
|||
},
|
||||
)?;
|
||||
|
||||
let plugin = LOADER.load_once(&lua, &cmd.name).await?;
|
||||
let plugin = LOADER.load(&lua, &cmd.name).await?;
|
||||
let job = lua.create_table_from([
|
||||
("id", Id(IDS.next()).into_lua(&lua)?),
|
||||
("args", Sendable::args_to_table_ref(&lua, &cmd.args)?.into_lua(&lua)?),
|
||||
|
|
|
|||
|
|
@ -105,14 +105,14 @@ impl Loader {
|
|||
return Ok(t);
|
||||
}
|
||||
|
||||
let t = self.load_once(lua, id).await?;
|
||||
let t = self.load_new(lua, id).await?;
|
||||
t.raw_set("_id", lua.create_string(id)?)?;
|
||||
|
||||
loaded.raw_set(id, t.clone())?;
|
||||
Ok(t)
|
||||
}
|
||||
|
||||
pub async fn load_once(&self, lua: &Lua, id: &str) -> mlua::Result<Table> {
|
||||
async fn load_new(&self, lua: &Lua, id: &str) -> mlua::Result<Table> {
|
||||
let (id, ..) = Self::normalize_id(id)?;
|
||||
|
||||
let mut mode = ChunkMode::Text;
|
||||
|
|
@ -135,12 +135,7 @@ impl Loader {
|
|||
f.call_async(()).await
|
||||
}
|
||||
|
||||
pub fn try_load(&self, lua: &Lua, id: &str) -> mlua::Result<Table> {
|
||||
let (id, ..) = Self::normalize_id(id)?;
|
||||
lua.globals().raw_get::<Table>("package")?.raw_get::<Table>("loaded")?.raw_get(id)
|
||||
}
|
||||
|
||||
pub fn load_with(&self, lua: &Lua, id: &str, chunk: &Chunk) -> mlua::Result<Table> {
|
||||
pub fn load_chunk(&self, lua: &Lua, id: &str, chunk: &Chunk) -> mlua::Result<Table> {
|
||||
let (id, ..) = Self::normalize_id(id)?;
|
||||
|
||||
let loaded: Table = lua.globals().raw_get::<Table>("package")?.raw_get("loaded")?;
|
||||
|
|
@ -155,6 +150,11 @@ impl Loader {
|
|||
Ok(t)
|
||||
}
|
||||
|
||||
pub fn try_load(&self, lua: &Lua, id: &str) -> mlua::Result<Table> {
|
||||
let (id, ..) = Self::normalize_id(id)?;
|
||||
lua.globals().raw_get::<Table>("package")?.raw_get::<Table>("loaded")?.raw_get(id)
|
||||
}
|
||||
|
||||
pub fn compatible_or_error(id: &str, chunk: &Chunk) -> Result<()> {
|
||||
if chunk.compatible() {
|
||||
return Ok(());
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
use std::{str::FromStr, time::Duration};
|
||||
|
||||
use mlua::{ExternalError, ExternalResult, Function, IntoLuaMulti, Lua, Table, Value};
|
||||
use tokio::sync::mpsc;
|
||||
use tokio_stream::wrappers::UnboundedReceiverStream;
|
||||
use yazi_binding::{InputRx, elements::{Line, Pos, Text}, runtime};
|
||||
use yazi_config::{keymap::{Chord, ChordCow, Key}, popup::{ConfirmCfg, InputCfg}};
|
||||
use yazi_macro::relay;
|
||||
use yazi_parser::{notify::PushOpt, which::ActivateOpt};
|
||||
use yazi_parser::notify::PushOpt;
|
||||
use yazi_proxy::{ConfirmProxy, InputProxy, NotifyProxy, WhichProxy};
|
||||
use yazi_shared::Debounce;
|
||||
use yazi_shared::{Debounce, Layer};
|
||||
|
||||
use super::Utils;
|
||||
|
||||
|
|
@ -19,7 +18,6 @@ impl Utils {
|
|||
return Err("Cannot call `ya.which()` while main thread is blocked".into_lua_err());
|
||||
}
|
||||
|
||||
let (tx, mut rx) = mpsc::unbounded_channel::<usize>();
|
||||
let cands: Vec<_> = t
|
||||
.raw_get::<Table>("cands")?
|
||||
.sequence_values::<Table>()
|
||||
|
|
@ -28,17 +26,21 @@ impl Utils {
|
|||
let cand = cand?;
|
||||
Ok(ChordCow::Owned(Chord {
|
||||
on: Self::parse_keys(cand.raw_get("on")?)?,
|
||||
run: vec![relay!(which:callback, [i]).with_any("tx", tx.clone())],
|
||||
run: vec![relay!(which:callback, [i + 1])],
|
||||
desc: cand.raw_get("desc").ok(),
|
||||
r#for: None,
|
||||
}))
|
||||
})
|
||||
.collect::<mlua::Result<_>>()?;
|
||||
|
||||
drop(tx);
|
||||
WhichProxy::activate(ActivateOpt { cands, times: 0, silent: t.raw_get("silent")? });
|
||||
let idx: Option<usize> = WhichProxy::activate(cands, t.raw_get("silent")?)
|
||||
.await
|
||||
.iter()
|
||||
.flat_map(|chord| &chord.run)
|
||||
.find(|cmd| cmd.layer == Layer::Which && cmd.name == "callback")
|
||||
.and_then(|cmd| cmd.first().ok());
|
||||
|
||||
Ok(rx.recv().await.map(|idx| idx + 1))
|
||||
Ok(idx)
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-proxy"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,11 +12,12 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.1.22" }
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.2.2" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-widgets = { path = "../yazi-widgets", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
tokio = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,10 +1,19 @@
|
|||
use tokio::sync::mpsc;
|
||||
use yazi_config::keymap::ChordCow;
|
||||
use yazi_macro::{emit, relay};
|
||||
use yazi_parser::which::ActivateOpt;
|
||||
|
||||
pub struct WhichProxy;
|
||||
|
||||
impl WhichProxy {
|
||||
pub fn activate(opt: ActivateOpt) {
|
||||
emit!(Call(relay!(which:activate).with_any("opt", opt)));
|
||||
pub async fn activate(cands: Vec<ChordCow>, silent: bool) -> Option<ChordCow> {
|
||||
let (tx, mut rx) = mpsc::unbounded_channel();
|
||||
emit!(Call(relay!(which:activate).with_any("opt", ActivateOpt {
|
||||
tx: Some(tx),
|
||||
cands,
|
||||
silent,
|
||||
times: 0,
|
||||
})));
|
||||
Some(rx.recv().await??.0)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-scheduler"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,16 +12,16 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.1.22" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.1.22" }
|
||||
yazi-plugin = { path = "../yazi-plugin", version = "26.1.22" }
|
||||
yazi-proxy = { path = "../yazi-proxy", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.1.22" }
|
||||
yazi-binding = { path = "../yazi-binding", version = "26.2.2" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-parser = { path = "../yazi-parser", version = "26.2.2" }
|
||||
yazi-plugin = { path = "../yazi-plugin", version = "26.2.2" }
|
||||
yazi-proxy = { path = "../yazi-proxy", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-sftp"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "AspectUnk", "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-shared"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -13,7 +13,7 @@ rust-version = "1.92.0"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-shim"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,7 +12,7 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
crossterm = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-term"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,12 +12,12 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-shim = { path = "../yazi-shim", version = "26.1.22" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.1.22" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-emulator = { path = "../yazi-emulator", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-shim = { path = "../yazi-shim", version = "26.2.2" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-tty"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,8 +12,8 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
parking_lot = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-vfs"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,11 +12,11 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-sftp = { path = "../yazi-sftp", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-sftp = { path = "../yazi-sftp", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-watcher"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,13 +12,13 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.1.22" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.1.22" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-proxy = { path = "../yazi-proxy", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.1.22" }
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.2.2" }
|
||||
yazi-dds = { path = "../yazi-dds", version = "26.2.2" }
|
||||
yazi-fs = { path = "../yazi-fs", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-proxy = { path = "../yazi-proxy", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-vfs = { path = "../yazi-vfs", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "yazi-widgets"
|
||||
version = "26.1.22"
|
||||
version = "26.2.2"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = [ "sxyazi <sxyazi@gmail.com>" ]
|
||||
|
|
@ -12,11 +12,11 @@ repository = "https://github.com/sxyazi/yazi"
|
|||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.1.22" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.1.22" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.1.22" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.1.22" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.1.22" }
|
||||
yazi-adapter = { path = "../yazi-adapter", version = "26.2.2" }
|
||||
yazi-config = { path = "../yazi-config", version = "26.2.2" }
|
||||
yazi-macro = { path = "../yazi-macro", version = "26.2.2" }
|
||||
yazi-shared = { path = "../yazi-shared", version = "26.2.2" }
|
||||
yazi-tty = { path = "../yazi-tty", version = "26.2.2" }
|
||||
|
||||
# External dependencies
|
||||
anyhow = { workspace = true }
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue