yazi_widgets/input/commands/
yank.rs1use anyhow::Result;
2use yazi_macro::{act, render, succ};
3use yazi_parser::VoidOpt;
4use yazi_shared::data::Data;
5
6use crate::input::{Input, op::InputOp};
7
8impl Input {
9 pub fn yank(&mut self, _: VoidOpt) -> Result<Data> {
10 match self.snap().op {
11 InputOp::None => {
12 self.snap_mut().op = InputOp::Yank(self.snap().cursor);
13 }
14 InputOp::Select(start) => {
15 self.snap_mut().op = InputOp::Yank(start);
16 render!(self.handle_op(self.snap().cursor, true));
17 act!(r#move, self)?;
18 }
19 InputOp::Yank(_) => {
20 self.snap_mut().op = InputOp::Yank(0);
21 act!(r#move, self, self.snap().len() as isize)?;
22 }
23 _ => {}
24 }
25 succ!();
26 }
27}