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