feat: add linewise Visual selection and paste
This commit is contained in:
@@ -1527,6 +1527,39 @@ end
|
||||
assert_eq!(session.editor().lines(), &["base"]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn configured_linewise_change_and_paste_preserve_rows_and_one_replacement_history() {
|
||||
let fixture = Fixture::new();
|
||||
fixture.file("buffer.txt", " alpha\n界beta\ntail");
|
||||
let mut session = fixture.open(
|
||||
r#"
|
||||
Vamp.configure do |config|
|
||||
config.clipboard_mode = "separate"
|
||||
config.bind "V", nil
|
||||
config.bind "s", config.core.select_linewise
|
||||
config.bind "s", config.core.select_linewise, mode: config.modes.visual
|
||||
config.bind "r", config.core.change, mode: config.modes.visual
|
||||
end
|
||||
"#,
|
||||
);
|
||||
for key in "llsjrnew".chars() {
|
||||
session.handle(Input::Char(key));
|
||||
}
|
||||
session.handle(Input::Escape);
|
||||
assert_eq!(session.editor().lines(), &["new", "tail"]);
|
||||
session.handle(Input::Char('p'));
|
||||
assert_eq!(
|
||||
session.editor().lines(),
|
||||
&["new", " alpha", "界beta", "tail"]
|
||||
);
|
||||
session.handle(Input::Char('u'));
|
||||
assert_eq!(session.editor().lines(), &["new", "tail"]);
|
||||
session.handle(Input::Char('u'));
|
||||
assert_eq!(session.editor().lines(), &[" alpha", "界beta", "tail"]);
|
||||
session.handle(Input::Char('U'));
|
||||
assert_eq!(session.editor().lines(), &["new", "tail"]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn configured_selection_actions_edit_together_and_invoke_plugins_once() {
|
||||
let fixture = Fixture::new();
|
||||
|
||||
Reference in New Issue
Block a user