Fix the tests

This commit is contained in:
Kirill Bulatov 2024-01-16 10:56:57 +02:00
parent fbb363e83a
commit 25abe8f981
2 changed files with 32 additions and 29 deletions

View File

@ -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::<String>());
}
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::<String>();
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::<String>());
}
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::<String>();
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::<String>();
let is_empty = query.is_empty();
let select_state = SelectNextState {
query: AhoCorasick::new(&[query])?,
query: AhoCorasick::new(&[query.chars().rev().collect::<String>()])?,
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::<String>()])?,
wordwise: false,
done: false,
});

View File

@ -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]