working a and i commands perfectly well
This commit is contained in:
@@ -92,14 +92,27 @@ impl Config {
|
||||
None
|
||||
}
|
||||
|
||||
pub fn is_enter_edit_mode(&self, key: KeyCode, modifiers: KeyModifiers) -> bool {
|
||||
if let Some(bindings) = self.keybindings.get("enter_edit_mode") {
|
||||
pub fn is_enter_edit_mode_before(&self, key: KeyCode, modifiers: KeyModifiers) -> bool {
|
||||
if let Some(bindings) = self.keybindings.get("enter_edit_mode_before") {
|
||||
bindings.iter().any(|b| Self::matches_keybinding(b, key, modifiers))
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
pub fn is_enter_edit_mode_after(&self, key: KeyCode, modifiers: KeyModifiers) -> bool {
|
||||
if let Some(bindings) = self.keybindings.get("enter_edit_mode_after") {
|
||||
bindings.iter().any(|b| Self::matches_keybinding(b, key, modifiers))
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
pub fn is_enter_edit_mode(&self, key: KeyCode, modifiers: KeyModifiers) -> bool {
|
||||
self.is_enter_edit_mode_before(key, modifiers) ||
|
||||
self.is_enter_edit_mode_after(key, modifiers)
|
||||
}
|
||||
|
||||
pub fn is_exit_edit_mode(&self, key: KeyCode, modifiers: KeyModifiers) -> bool {
|
||||
if let Some(bindings) = self.keybindings.get("exit_edit_mode") {
|
||||
bindings.iter().any(|b| Self::matches_keybinding(b, key, modifiers))
|
||||
|
||||
@@ -47,8 +47,9 @@ impl EventHandler {
|
||||
) -> Result<(bool, String), Box<dyn std::error::Error>> {
|
||||
if let Event::Key(key) = event {
|
||||
if !self.is_edit_mode && config.is_enter_edit_mode(key.code, key.modifiers) {
|
||||
if key.code == KeyCode::Char('a') {
|
||||
// Move cursor position one character to the right (after current character)
|
||||
// Determine which type of edit mode we're entering
|
||||
if config.is_enter_edit_mode_after(key.code, key.modifiers) {
|
||||
// For 'a' (append) mode: Move cursor position one character to the right
|
||||
let current_input = form_state.get_current_input();
|
||||
if !current_input.is_empty() && form_state.current_cursor_pos < current_input.len() {
|
||||
form_state.current_cursor_pos += 1;
|
||||
|
||||
Reference in New Issue
Block a user