mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
Some checks failed
Cachix / Publish Flake (push) Has been cancelled
Check / clippy (push) Has been cancelled
Check / rustfmt (push) Has been cancelled
Check / stylua (push) Has been cancelled
Draft / build-unix (gcc-aarch64-linux-gnu, ubuntu-latest, aarch64-unknown-linux-gnu) (push) Has been cancelled
Draft / build-unix (gcc-i686-linux-gnu, ubuntu-latest, i686-unknown-linux-gnu) (push) Has been cancelled
Draft / build-unix (gcc-riscv64-linux-gnu, ubuntu-latest, riscv64gc-unknown-linux-gnu) (push) Has been cancelled
Draft / build-unix (gcc-sparc64-linux-gnu, ubuntu-latest, sparc64-unknown-linux-gnu) (push) Has been cancelled
Draft / build-unix (macos-latest, aarch64-apple-darwin) (push) Has been cancelled
Draft / build-unix (macos-latest, x86_64-apple-darwin) (push) Has been cancelled
Draft / build-unix (ubuntu-latest, x86_64-unknown-linux-gnu) (push) Has been cancelled
Draft / build-windows (windows-latest, aarch64-pc-windows-msvc) (push) Has been cancelled
Draft / build-windows (windows-latest, x86_64-pc-windows-msvc) (push) Has been cancelled
Draft / build-musl (aarch64-unknown-linux-musl) (push) Has been cancelled
Draft / build-musl (x86_64-unknown-linux-musl) (push) Has been cancelled
Draft / build-snap (amd64, ubuntu-latest) (push) Has been cancelled
Draft / build-snap (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Test / test (macos-latest) (push) Has been cancelled
Test / test (ubuntu-latest) (push) Has been cancelled
Test / test (windows-latest) (push) Has been cancelled
Draft / snap (push) Has been cancelled
Draft / draft (push) Has been cancelled
Draft / nightly (push) Has been cancelled
24 lines
659 B
Rust
24 lines
659 B
Rust
use anyhow::Result;
|
|
use yazi_core::mgr::CdSource;
|
|
use yazi_fs::path::clean_url;
|
|
use yazi_macro::{act, succ};
|
|
use yazi_parser::VoidForm;
|
|
use yazi_shared::{data::Data, url::UrlLike};
|
|
|
|
use crate::{Actor, Ctx};
|
|
|
|
pub struct Follow;
|
|
|
|
impl Actor for Follow {
|
|
type Form = VoidForm;
|
|
|
|
const NAME: &str = "follow";
|
|
|
|
fn act(cx: &mut Ctx, _: Self::Form) -> Result<Data> {
|
|
let Some(file) = cx.hovered() else { succ!() };
|
|
let Some(link_to) = file.extra.link_to() else { succ!() };
|
|
let Some(parent) = file.url.parent() else { succ!() };
|
|
let Ok(joined) = parent.try_join(link_to) else { succ!() };
|
|
act!(mgr:reveal, cx, (clean_url(joined), CdSource::Follow))
|
|
}
|
|
}
|