Fix <Enter> to go to non-whitespace character

Fixes: zed-industries/community#831
This commit is contained in:
Conrad Irwin 2023-08-18 12:24:39 -06:00
parent 5029587e3b
commit 93461d366c
2 changed files with 15 additions and 1 deletions

View File

@ -651,7 +651,10 @@ fn find_backward(
fn next_line_start(map: &DisplaySnapshot, point: DisplayPoint, times: usize) -> DisplayPoint {
let new_row = (point.row() + times as u32).min(map.max_buffer_row());
map.clip_point(DisplayPoint::new(new_row, 0), Bias::Left)
first_non_whitespace(
map,
map.clip_point(DisplayPoint::new(new_row, 0), Bias::Left),
)
}
#[cfg(test)]
@ -799,4 +802,12 @@ mod test {
cx.simulate_shared_keystrokes([","]).await;
cx.assert_shared_state("one two thˇree four").await;
}
#[gpui::test]
async fn test_next_line_start(cx: &mut gpui::TestAppContext) {
let mut cx = NeovimBackedTestContext::new(cx).await;
cx.set_shared_state("ˇone\n two\nthree").await;
cx.simulate_shared_keystrokes(["enter"]).await;
cx.assert_shared_state("one\n ˇtwo\nthree").await;
}
}

View File

@ -0,0 +1,3 @@
{"Put":{"state":"ˇone\n two\nthree"}}
{"Key":"enter"}
{"Get":{"state":"one\n ˇtwo\nthree","mode":"Normal"}}