diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index c82d5a4b82090596bde58afb6b047e7c7fb11a85..15a016200889b0439fdd242bad042644d32df6af 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -709,18 +709,24 @@ impl EditorElement { let Some(hub) = editor.collaboration_hub() else { return; }; - let range = DisplayPoint::new(point.row(), point.column().saturating_sub(1)) - ..DisplayPoint::new( + let start = snapshot.display_snapshot.clip_point( + DisplayPoint::new(point.row(), point.column().saturating_sub(1)), + Bias::Left, + ); + let end = snapshot.display_snapshot.clip_point( + DisplayPoint::new( point.row(), (point.column() + 1).min(snapshot.line_len(point.row())), - ); + ), + Bias::Right, + ); let range = snapshot .buffer_snapshot - .anchor_at(range.start.to_point(&snapshot.display_snapshot), Bias::Left) + .anchor_at(start.to_point(&snapshot.display_snapshot), Bias::Left) ..snapshot .buffer_snapshot - .anchor_at(range.end.to_point(&snapshot.display_snapshot), Bias::Right); + .anchor_at(end.to_point(&snapshot.display_snapshot), Bias::Right); let Some(selection) = snapshot.remote_selections_in_range(&range, hub, cx).next() else { return;