From 25abe8f981f20b480bc43e8c705db9640ed83662 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Tue, 16 Jan 2024 10:56:57 +0200 Subject: [PATCH] Fix the tests --- crates/editor/src/editor.rs | 55 +++++++++++++++---------------- crates/editor/src/editor_tests.rs | 6 +++- 2 files changed, 32 insertions(+), 29 deletions(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 55c31cfa8074734343dd62bb6e138129d77b0d9b..4856170b321fcf6dcdb5907a40c5e578a5d6e5c6 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -6469,8 +6469,8 @@ impl Editor { self.select_next_state = Some(select_next_state); } else { let mut only_carets = true; - let mut same_letters_selected = true; - let mut selection_query = None; + let mut same_text_selected = true; + let mut selected_text = None; let mut selections_iter = selections.iter().peekable(); while let Some(selection) = selections_iter.next() { @@ -6478,24 +6478,24 @@ impl Editor { only_carets = false; } - if same_letters_selected { - if selection_query.is_none() { - selection_query = + if same_text_selected { + if selected_text.is_none() { + selected_text = Some(buffer.text_for_range(selection.range()).collect::()); } if let Some(next_selection) = selections_iter.peek() { if next_selection.range().len() == selection.range().len() { - let next_query = buffer + let next_selected_text = buffer .text_for_range(next_selection.range()) .collect::(); - if Some(next_query) != selection_query { - same_letters_selected = false; - selection_query = None; + if Some(next_selected_text) != selected_text { + same_text_selected = false; + selected_text = None; } } else { - same_letters_selected = false; - selection_query = None; + same_text_selected = false; + selected_text = None; } } } @@ -6537,9 +6537,9 @@ impl Editor { } else { self.select_next_state = None; } - } else if let Some(query) = selection_query { + } else if let Some(selected_text) = selected_text { self.select_next_state = Some(SelectNextState { - query: AhoCorasick::new(&[query])?, + query: AhoCorasick::new(&[selected_text])?, wordwise: false, done: false, }); @@ -6585,7 +6585,6 @@ impl Editor { Ok(()) } - // TODO kb test both select_next and select_previous pub fn select_previous( &mut self, action: &SelectPrevious, @@ -6646,8 +6645,8 @@ impl Editor { self.select_prev_state = Some(select_prev_state); } else { let mut only_carets = true; - let mut same_letters_selected = true; - let mut selection_query = None; + let mut same_text_selected = true; + let mut selected_text = None; let mut selections_iter = selections.iter().peekable(); while let Some(selection) = selections_iter.next() { @@ -6655,24 +6654,24 @@ impl Editor { only_carets = false; } - if same_letters_selected { - if selection_query.is_none() { - selection_query = + if same_text_selected { + if selected_text.is_none() { + selected_text = Some(buffer.text_for_range(selection.range()).collect::()); } if let Some(next_selection) = selections_iter.peek() { if next_selection.range().len() == selection.range().len() { - let next_query = buffer + let next_selected_text = buffer .text_for_range(next_selection.range()) .collect::(); - if Some(next_query) != selection_query { - same_letters_selected = false; - selection_query = None; + if Some(next_selected_text) != selected_text { + same_text_selected = false; + selected_text = None; } } else { - same_letters_selected = false; - selection_query = None; + same_text_selected = false; + selected_text = None; } } } @@ -6698,7 +6697,7 @@ impl Editor { .collect::(); let is_empty = query.is_empty(); let select_state = SelectNextState { - query: AhoCorasick::new(&[query])?, + query: AhoCorasick::new(&[query.chars().rev().collect::()])?, wordwise: true, done: is_empty, }; @@ -6716,9 +6715,9 @@ impl Editor { self.change_selections(Some(Autoscroll::newest()), cx, |s| { s.select(selections); }); - } else if let Some(query) = selection_query { + } else if let Some(selected_text) = selected_text { self.select_prev_state = Some(SelectNextState { - query: AhoCorasick::new(&[query])?, + query: AhoCorasick::new(&[selected_text.chars().rev().collect::()])?, wordwise: false, done: false, }); diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index 8add11b963b269b11aedcfb8af4d6e063d18e240..a6e3d19995c2126e57b698178e8d0cac1bc264c5 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -3882,7 +3882,11 @@ async fn test_select_previous_with_single_caret(cx: &mut gpui::TestAppContext) { cx.update_editor(|e, cx| e.select_previous(&SelectPrevious::default(), cx)) .unwrap(); - cx.assert_editor_state("«abcˇ»\n«abcˇ» «abcˇ»\ndefabc\n«abcˇ»"); + cx.assert_editor_state("«abcˇ»\n«abcˇ» abc\ndef«abcˇ»\n«abcˇ»"); + + cx.update_editor(|e, cx| e.select_previous(&SelectPrevious::default(), cx)) + .unwrap(); + cx.assert_editor_state("«abcˇ»\n«abcˇ» «abcˇ»\ndef«abcˇ»\n«abcˇ»"); } #[gpui::test]