Move type_str and replace_str to type and replace commands

This commit is contained in:
sxyazi 2025-01-04 10:43:58 +08:00
parent a652aab632
commit ca0cdc0bbb
No known key found for this signature in database
4 changed files with 26 additions and 26 deletions

View file

@ -13,4 +13,15 @@ impl Input {
render!();
}
}
pub fn replace_str(&mut self, s: &str) {
let snap = self.snaps.current_mut();
let start = snap.idx(snap.cursor).unwrap();
let end = snap.idx(snap.cursor + 1).unwrap();
snap.value.replace_range(start..end, s);
self.flush_value();
render!();
}
}

View file

@ -1,4 +1,5 @@
use yazi_config::keymap::Key;
use yazi_macro::render;
use yazi_shared::event::CmdCow;
use crate::input::{Input, InputMode};
@ -34,4 +35,17 @@ impl Input {
false
}
pub fn type_str(&mut self, s: &str) {
let snap = self.snaps.current_mut();
if snap.cursor < 1 {
snap.value.insert_str(0, s);
} else {
snap.value.insert_str(snap.idx(snap.cursor).unwrap(), s);
}
self.move_(s.chars().count() as isize);
self.flush_value();
render!();
}
}

View file

@ -33,30 +33,6 @@ impl Input {
self.position.offset.width.saturating_sub(INPUT.border()) as usize
}
pub fn type_str(&mut self, s: &str) {
let snap = self.snaps.current_mut();
if snap.cursor < 1 {
snap.value.insert_str(0, s);
} else {
snap.value.insert_str(snap.idx(snap.cursor).unwrap(), s);
}
self.move_(s.chars().count() as isize);
self.flush_value();
render!();
}
pub fn replace_str(&mut self, s: &str) {
let snap = self.snaps.current_mut();
let start = snap.idx(snap.cursor).unwrap();
let end = snap.idx(snap.cursor + 1).unwrap();
snap.value.replace_range(start..end, s);
self.flush_value();
render!();
}
pub(super) fn handle_op(&mut self, cursor: usize, include: bool) -> bool {
let old = self.snap().clone();
let snap = self.snaps.current_mut();

View file

@ -92,8 +92,7 @@ impl App {
let input = &mut self.cx.input;
if input.mode() == InputMode::Insert {
input.type_str(&str);
}
if input.mode() == InputMode::Replace {
} else if input.mode() == InputMode::Replace {
input.replace_str(&str);
}
}