vim: Fix space not handling non-ascii characters (#27053)

Closes #26806

Changes: Clips the new point with `Bias::Right` like in
`saturating_right`

Release Notes:

- vim: Fixed `space` not handling non-ascii characters
This commit is contained in:
5brian 2025-03-19 09:28:50 -04:00 committed by GitHub
parent ac5dafc6b2
commit 84a8d48178
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 0 deletions

View file

@ -1322,6 +1322,7 @@ fn wrapping_right_single(map: &DisplaySnapshot, mut point: DisplayPoint) -> Disp
let max_column = map.line_len(point.row()).saturating_sub(1);
if point.column() < max_column {
*point.column_mut() += 1;
point = map.clip_point(point, Bias::Right);
} else if point.row() < map.max_point().row() {
*point.row_mut() += 1;
*point.column_mut() = 0;
@ -3598,4 +3599,13 @@ mod test {
fox jumps over
the »azy dog"});
}
#[gpui::test]
async fn test_space_non_ascii(cx: &mut gpui::TestAppContext) {
let mut cx = NeovimBackedTestContext::new(cx).await;
cx.set_shared_state("ˇπππππ").await;
cx.simulate_shared_keystrokes("3 space").await;
cx.shared_state().await.assert_eq("πππˇππ");
}
}

View file

@ -0,0 +1,4 @@
{"Put":{"state":"ˇπππππ"}}
{"Key":"3"}
{"Key":"space"}
{"Get":{"state":"πππˇππ","mode":"Normal"}}