yazi_widgets/input/actor/
escape.rs1use anyhow::Result;
2use yazi_macro::{act, succ};
3use yazi_shared::data::Data;
4
5use crate::input::{Input, InputMode, op::InputOp};
6
7impl Input {
8 pub fn escape(&mut self, _: ()) -> Result<Data> {
9 let snap = self.snap_mut();
10 match snap.mode {
11 InputMode::Normal => {
12 snap.op = InputOp::None;
13 }
14 InputMode::Insert => {
15 snap.mode = InputMode::Normal;
16 act!(r#move, self, -1)?;
17 }
18 InputMode::Replace => {
19 snap.mode = InputMode::Normal;
20 }
21 }
22 self.snaps.tag(self.limit);
23 succ!();
24 }
25}