diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index ae02b814745473124645f631b0fceed93f6e625b..504790f30d7633e921d09652893e4ecdcc16086e 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -3410,28 +3410,30 @@ impl EditorElement { return None; } - if let (true, Some((range, _))) = (single_line, edits.first()) { - let mut element = inline_completion_tab_indicator("Accept", None, cx); + if all_edits_insertions_or_deletions(edits, &editor_snapshot.buffer_snapshot) { + if *single_line { + let range = &edits.first()?.0; + let target_display_point = range.end.to_display_point(editor_snapshot); - let target_display_point = range.end.to_display_point(editor_snapshot); - let target_line_end = DisplayPoint::new( - target_display_point.row(), - editor_snapshot.line_len(target_display_point.row()), - ); - let origin = self.editor.update(cx, |editor, cx| { - editor.display_to_pixel_point(target_line_end, editor_snapshot, cx) - })?; + let target_line_end = DisplayPoint::new( + target_display_point.row(), + editor_snapshot.line_len(target_display_point.row()), + ); + let origin = self.editor.update(cx, |editor, cx| { + editor.display_to_pixel_point(target_line_end, editor_snapshot, cx) + })?; - element.prepaint_as_root( - text_bounds.origin + origin + point(PADDING_X, px(0.)), - AvailableSpace::min_size(), - cx, - ); + let mut element = inline_completion_tab_indicator("Accept", None, cx); - return Some(element); - } + element.prepaint_as_root( + text_bounds.origin + origin + point(PADDING_X, px(0.)), + AvailableSpace::min_size(), + cx, + ); + + return Some(element); + } - if all_edits_insertions_or_deletions(edits, &editor_snapshot.buffer_snapshot) { return None; }