Fix ReplaceWithRegister with proper dot repeat (#24932)

Release Notes:

- Fixed ReplaceWithRegister with proper dot repeat
This commit is contained in:
xzbdmw 2025-02-15 12:32:21 +08:00 committed by GitHub
parent 1b38b9f61d
commit 14289b5a6e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 32 additions and 0 deletions

View file

@ -850,4 +850,35 @@ mod test {
let clipboard: Register = cx.read_from_clipboard().unwrap().into();
assert_eq!(clipboard.text, "fish");
}
#[gpui::test]
async fn test_replace_with_register_dot_repeat(cx: &mut gpui::TestAppContext) {
let mut cx = VimTestContext::new(cx, true).await;
cx.set_state(
indoc! {"
ˇfish one
two three
"},
Mode::Normal,
);
cx.simulate_keystrokes("y i w");
cx.simulate_keystrokes("w");
cx.simulate_keystrokes("g r i w");
cx.assert_state(
indoc! {"
fish fisˇh
two three
"},
Mode::Normal,
);
cx.simulate_keystrokes("j .");
cx.assert_state(
indoc! {"
fish fish
two fisˇh
"},
Mode::Normal,
);
}
}

View file

@ -825,6 +825,7 @@ impl Vim {
| Operator::Uppercase
| Operator::OppositeCase
| Operator::ToggleComments
| Operator::ReplaceWithRegister
) {
self.start_recording(cx)
};