Files
zed/crates/vim/test_data
Dino d7de3e4cff vim: Make end of line infallible (#48867)
When using `$` to move to the end of line (`vim::EndOfLine`), the
`vim::motion::Motion.move_point` method checks whether the new point,
that is, the point after the motion is applied is different from the
point that was passed as a method argument. If the point is not
different, the point and selection goals are only updated if
`vim::motion::Motion.infallible` returns true for the motion in
question.

In short, this means that, if the cursor was already at the end of the
line, and it got there using `vim::Right`, for example, the selection
goal wouldn't actually be set to
`SelectionGoal::HorizontalPosition(f64::INFINITY)`, so when the cursor
was moved to a shorter line, it wouldn't be set at the end of that line,
even though `$` had been used.

This commit updates `vim::motion::Motion.infallible` to ensure that, for
`vim::motion::Motion::EndOfLine`, it returns `true`, so that the
selection goal is always updated, regardless of whether the cursor is
already at the end of the line.

Closes #48855 

- [X] Tests or screenshots needed?
- [X] Code Reviewed
- [X] Manual QA

Release Notes:

- vim: Fixed `$` not sticking to end-of-line on vertical motions
(`j`/`k`) when the cursor was already at the end of the line via `l` or
arrow keys
2026-02-10 10:33:50 +00:00
..
2024-06-14 10:16:59 -06:00
2024-05-11 14:04:05 -04:00
2024-05-09 21:18:56 -06:00
2024-05-09 21:18:56 -06:00
2023-09-12 09:56:23 -06:00
2024-01-21 22:00:35 -07:00
2023-09-20 20:44:41 -06:00
2025-04-16 17:24:24 +00:00
2023-09-27 23:09:09 -06:00
2024-05-09 21:18:56 -06:00
2023-09-12 09:56:23 -06:00
2024-05-11 14:04:05 -04:00
2024-05-09 21:18:56 -06:00
2024-09-20 13:02:39 -06:00
2024-06-14 10:16:59 -06:00
2023-09-27 19:49:31 -06:00
2023-10-09 21:48:50 -06:00
2024-01-21 22:00:35 -07:00
2024-06-14 10:16:59 -06:00
2024-05-11 14:04:05 -04:00
2024-05-11 14:04:05 -04:00
2024-05-11 14:04:05 -04:00
2024-03-13 23:12:12 -06:00
2023-08-15 10:00:45 -06:00
2023-08-17 17:13:23 -06:00
2023-09-12 09:56:23 -06:00