vim: Fix `'t'` motion to start of soft wrapped line (#29303)

AidanV created

Closes #28853

Release Notes:

- Fixes `'t'` motion going on top of character that is at the beginning
of soft wrapped line instead of before

Change summary

crates/vim/src/motion.rs | 4 ++++
1 file changed, 4 insertions(+)

Detailed changes

crates/vim/src/motion.rs 🔗

@@ -2401,6 +2401,10 @@ fn find_forward(
         if before && to.column() > 0 {
             *to.column_mut() -= 1;
             Some(map.clip_point(to, Bias::Left))
+        } else if before && to.row().0 > 0 {
+            *to.row_mut() -= 1;
+            *to.column_mut() = map.line(to.row()).len() as u32;
+            Some(map.clip_point(to, Bias::Left))
         } else {
             Some(to)
         }