aboutsummaryrefslogtreecommitdiff
path: root/src/command.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/command.rs')
-rw-r--r--src/command.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/command.rs b/src/command.rs
index f5a24c9..383389e 100644
--- a/src/command.rs
+++ b/src/command.rs
@@ -30,6 +30,32 @@ impl CommandBox {
30 self.cursor = 0; 30 self.cursor = 0;
31 } 31 }
32 32
33 pub fn cursor_back_word(&mut self) {
34 let mut prev_word_idx = 0;
35 {
36 let sl = &self.text[0..self.cursor];
37 let idx = sl.rfind(|c: char| !c.is_alphanumeric() && c != '_');
38 if let Some(i) = idx {
39 prev_word_idx = i;
40 }
41 }
42 self.cursor = prev_word_idx;
43 }
44
45 pub fn cursor_forward_word(&mut self) {
46 let mut next_word_idx = self.cursor;
47 {
48 if self.cursor != self.text.len() {
49 let sl = &self.text[self.cursor..];
50 let idx = sl.find(|c: char| !c.is_alphanumeric() && c != '_');
51 if let Some(i) = idx {
52 next_word_idx = i;
53 }
54 }
55 }
56 self.cursor = next_word_idx;
57 }
58
33 pub fn backward(&mut self) { 59 pub fn backward(&mut self) {
34 self.cursor = self.cursor.saturating_sub(1); 60 self.cursor = self.cursor.saturating_sub(1);
35 } 61 }