diff --git a/crates/editor/src/movement.rs b/crates/editor/src/movement.rs index 3758657c5f..397b33705f 100644 --- a/crates/editor/src/movement.rs +++ b/crates/editor/src/movement.rs @@ -47,6 +47,12 @@ pub fn left(map: &DisplaySnapshot, mut point: DisplayPoint) -> DisplayPoint { pub fn saturating_left(map: &DisplaySnapshot, mut point: DisplayPoint) -> DisplayPoint { if point.column() > 0 { *point.column_mut() -= 1; + } else if point.column() == 0 { + // If the current sofr_wrap mode is used, the column corresponding to the display is 0, + // which does not necessarily mean that the actual beginning of a paragraph + if map.display_point_to_fold_point(point, Bias::Left).column() > 0 { + return left(map, point); + } } map.clip_point(point, Bias::Left) }