Adjust left movement when soft_wrap mode is used (#10464)

Hans created

Release Notes:

- Added/Fixed #10350

Change summary

crates/editor/src/movement.rs | 6 ++++++
1 file changed, 6 insertions(+)

Detailed changes

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)
 }