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