mirror of
https://github.com/zed-industries/zed.git
synced 2024-09-20 02:47:34 +03:00
Fix the tests
This commit is contained in:
parent
fbb363e83a
commit
25abe8f981
@ -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,
|
||||
});
|
||||
|
@ -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]
|
||||
|
Loading…
Reference in New Issue
Block a user