diff --git a/crates/editor/src/split.rs b/crates/editor/src/split.rs index 14174306946acbbed78ed17cef34ffc7a054a3b1..cff98f474487b52e55ab3f53bff250de24cf2d80 100644 --- a/crates/editor/src/split.rs +++ b/crates/editor/src/split.rs @@ -1106,13 +1106,11 @@ impl SplittableEditor { SearchToken::new(self.focused_side() as u64) } - fn editor_for_token(&self, token: SearchToken) -> &Entity { + fn editor_for_token(&self, token: SearchToken) -> Option<&Entity> { if token.value() == SplitSide::Left as u64 { - if let Some(lhs) = &self.lhs { - return &lhs.editor; - } + return self.lhs.as_ref().map(|lhs| &lhs.editor); } - &self.rhs_editor + Some(&self.rhs_editor) } fn companion(&self, cx: &App) -> Option> { @@ -1883,7 +1881,10 @@ impl SearchableItem for SplittableEditor { window: &mut Window, cx: &mut Context, ) { - self.editor_for_token(token).update(cx, |editor, cx| { + let Some(target) = self.editor_for_token(token) else { + return; + }; + target.update(cx, |editor, cx| { editor.update_matches(matches, active_match_index, token, window, cx); }); } @@ -1929,7 +1930,10 @@ impl SearchableItem for SplittableEditor { window: &mut Window, cx: &mut Context, ) { - self.editor_for_token(token).update(cx, |editor, cx| { + let Some(target) = self.editor_for_token(token) else { + return; + }; + target.update(cx, |editor, cx| { editor.activate_match(index, matches, token, window, cx); }); } @@ -1941,7 +1945,10 @@ impl SearchableItem for SplittableEditor { window: &mut Window, cx: &mut Context, ) { - self.editor_for_token(token).update(cx, |editor, cx| { + let Some(target) = self.editor_for_token(token) else { + return; + }; + target.update(cx, |editor, cx| { editor.select_matches(matches, token, window, cx); }); } @@ -1954,7 +1961,10 @@ impl SearchableItem for SplittableEditor { window: &mut Window, cx: &mut Context, ) { - self.editor_for_token(token).update(cx, |editor, cx| { + let Some(target) = self.editor_for_token(token) else { + return; + }; + target.update(cx, |editor, cx| { editor.replace(identifier, query, token, window, cx); }); } @@ -1998,7 +2008,7 @@ impl SearchableItem for SplittableEditor { window: &mut Window, cx: &mut Context, ) -> Option { - self.editor_for_token(token).update(cx, |editor, cx| { + self.editor_for_token(token)?.update(cx, |editor, cx| { editor.active_match_index(direction, matches, token, window, cx) }) }