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