From 9f699d073714c89deab154b055c3e912cba87de2 Mon Sep 17 00:00:00 2001 From: Jordan MacDonald Date: Sun, 7 Apr 2024 23:43:05 -0400 Subject: [PATCH] Use reset pattern for all modes --- src/commands/application.rs | 8 ++++---- src/models/application/modes/line_jump.rs | 4 ++++ src/models/application/modes/search.rs | 4 ++++ src/models/application/modes/select.rs | 4 ++++ src/models/application/modes/select_line.rs | 4 ++++ 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/commands/application.rs b/src/commands/application.rs index a2c141e8..95384f6e 100644 --- a/src/commands/application.rs +++ b/src/commands/application.rs @@ -73,7 +73,7 @@ pub fn switch_to_line_jump_mode(app: &mut Application) -> Result { if app.workspace.current_buffer.is_some() { app.switch_to(ModeKey::LineJump); if let Mode::LineJump(ref mut mode) = app.mode { - mode.input = String::new() + mode.reset(); } } else { bail!(BUFFER_MISSING); @@ -163,7 +163,7 @@ pub fn switch_to_select_mode(app: &mut Application) -> Result { app.switch_to(ModeKey::Select); if let Mode::Select(ref mut mode) = app.mode { - mode.anchor = position + mode.reset(position); } Ok(()) @@ -180,7 +180,7 @@ pub fn switch_to_select_line_mode(app: &mut Application) -> Result { app.switch_to(ModeKey::SelectLine); if let Mode::SelectLine(ref mut mode) = app.mode { - mode.anchor = line + mode.reset(line); } Ok(()) @@ -190,7 +190,7 @@ pub fn switch_to_search_mode(app: &mut Application) -> Result { if app.workspace.current_buffer.is_some() { app.switch_to(ModeKey::Search); if let Mode::Search(ref mut mode) = app.mode { - mode.insert = true + mode.reset(); } } else { bail!(BUFFER_MISSING); diff --git a/src/models/application/modes/line_jump.rs b/src/models/application/modes/line_jump.rs index f46c07fd..860daac5 100644 --- a/src/models/application/modes/line_jump.rs +++ b/src/models/application/modes/line_jump.rs @@ -7,4 +7,8 @@ impl LineJumpMode { pub fn new() -> LineJumpMode { LineJumpMode::default() } + + pub fn reset(&mut self) { + self.input = String::new(); + } } diff --git a/src/models/application/modes/search.rs b/src/models/application/modes/search.rs index d21de0e1..864604ca 100644 --- a/src/models/application/modes/search.rs +++ b/src/models/application/modes/search.rs @@ -18,6 +18,10 @@ impl SearchMode { } } + pub fn reset(&mut self) { + self.insert = true; + } + pub fn insert_mode(&self) -> bool { self.insert } diff --git a/src/models/application/modes/select.rs b/src/models/application/modes/select.rs index 604125c0..77314b6d 100644 --- a/src/models/application/modes/select.rs +++ b/src/models/application/modes/select.rs @@ -8,4 +8,8 @@ impl SelectMode { pub fn new(anchor: Position) -> SelectMode { SelectMode { anchor } } + + pub fn reset(&mut self, anchor: Position) { + self.anchor = anchor; + } } diff --git a/src/models/application/modes/select_line.rs b/src/models/application/modes/select_line.rs index bab71a54..428c91bd 100644 --- a/src/models/application/modes/select_line.rs +++ b/src/models/application/modes/select_line.rs @@ -9,6 +9,10 @@ impl SelectLineMode { SelectLineMode { anchor } } + pub fn reset(&mut self, anchor: usize) { + self.anchor = anchor; + } + pub fn to_range(&self, cursor: &Position) -> Range { LineRange::new(self.anchor, cursor.line).to_inclusive_range() }