yazi_widgets/input/commands/
visual.rs

1use anyhow::Result;
2use yazi_macro::{act, render, succ};
3use yazi_parser::VoidOpt;
4use yazi_shared::data::Data;
5
6use crate::input::{Input, InputMode, op::InputOp};
7
8impl Input {
9	pub fn visual(&mut self, _: VoidOpt) -> Result<Data> {
10		if self.snap().mode != InputMode::Normal {
11			act!(escape, self)?;
12		}
13
14		let snap = self.snap_mut();
15		if let InputOp::Select(_) = snap.op {
16			succ!();
17		}
18
19		if !snap.value.is_empty() {
20			snap.op = InputOp::Select(snap.cursor);
21			render!();
22		}
23
24		succ!();
25	}
26}