mirror of
https://github.com/zed-industries/zed.git
synced 2024-09-16 00:47:39 +03:00
vim: Fix blackhole register (#17419)
Closes: #17306 Release Notes: - vim: Fixed `"_` register writes overwriting `"` register.
This commit is contained in:
parent
1e09884a22
commit
a7c46206de
@ -218,23 +218,25 @@ impl VimGlobals {
|
||||
let yanked = current.clone();
|
||||
self.registers.insert('"', yanked);
|
||||
} else {
|
||||
self.registers.insert('"', content.clone());
|
||||
match lower {
|
||||
'_' | ':' | '.' | '%' | '#' | '=' | '/' => {}
|
||||
'+' => {
|
||||
self.registers.insert('"', content.clone());
|
||||
cx.write_to_clipboard(content.into());
|
||||
}
|
||||
'*' => {
|
||||
self.registers.insert('"', content.clone());
|
||||
#[cfg(target_os = "linux")]
|
||||
cx.write_to_primary(content.into());
|
||||
#[cfg(not(target_os = "linux"))]
|
||||
cx.write_to_clipboard(content.into());
|
||||
}
|
||||
'"' => {
|
||||
self.registers.insert('0', content.clone());
|
||||
self.registers.insert('"', content);
|
||||
self.registers.insert('"', content.clone());
|
||||
self.registers.insert('0', content);
|
||||
}
|
||||
_ => {
|
||||
self.registers.insert('"', content.clone());
|
||||
self.registers.insert(lower, content);
|
||||
}
|
||||
}
|
||||
|
@ -1424,7 +1424,17 @@ async fn test_record_replay_recursion(cx: &mut gpui::TestAppContext) {
|
||||
cx.simulate_shared_keystrokes(".").await;
|
||||
cx.simulate_shared_keystrokes(".").await;
|
||||
cx.simulate_shared_keystrokes(".").await;
|
||||
cx.shared_state().await.assert_eq("ˇhello world"); // takes a _long_ time
|
||||
cx.shared_state().await.assert_eq("ˇhello world");
|
||||
}
|
||||
|
||||
#[gpui::test]
|
||||
async fn test_blackhole_register(cx: &mut gpui::TestAppContext) {
|
||||
let mut cx = NeovimBackedTestContext::new(cx).await;
|
||||
|
||||
cx.set_shared_state("ˇhello world").await;
|
||||
cx.simulate_shared_keystrokes("d i w \" _ d a w").await;
|
||||
cx.simulate_shared_keystrokes("p").await;
|
||||
cx.shared_state().await.assert_eq("hellˇo");
|
||||
}
|
||||
|
||||
#[gpui::test]
|
||||
|
11
crates/vim/test_data/test_blackhole_register.json
Normal file
11
crates/vim/test_data/test_blackhole_register.json
Normal file
@ -0,0 +1,11 @@
|
||||
{"Put":{"state":"ˇhello world"}}
|
||||
{"Key":"d"}
|
||||
{"Key":"i"}
|
||||
{"Key":"w"}
|
||||
{"Key":"\""}
|
||||
{"Key":"_"}
|
||||
{"Key":"d"}
|
||||
{"Key":"a"}
|
||||
{"Key":"w"}
|
||||
{"Key":"p"}
|
||||
{"Get":{"state":"hellˇo","mode":"Normal"}}
|
Loading…
Reference in New Issue
Block a user