mirror of https://github.com/helix-editor/helix
60 lines
1.5 KiB
Rust
60 lines
1.5 KiB
Rust
use super::*;
|
|
|
|
use helix_core::hashmap;
|
|
use helix_term::keymap;
|
|
use helix_view::document::Mode;
|
|
|
|
#[tokio::test(flavor = "multi_thread")]
|
|
async fn paste_all_selections() -> anyhow::Result<()> {
|
|
let mut config = Config::default();
|
|
config.keys.insert(
|
|
Mode::Normal,
|
|
keymap!({"Normal Mode"
|
|
"A-P" => paste_all_selections_before,
|
|
"A-p" => paste_all_selections_after,
|
|
}),
|
|
);
|
|
|
|
// Test paste_all_selections_before
|
|
// Selection direction matches paste target selections.
|
|
test_with_config(
|
|
AppBuilder::new().with_config(config.clone()),
|
|
(
|
|
indoc! {"\
|
|
#(|one)#_cat
|
|
#(|two)#_dog
|
|
#[|three]#_cow
|
|
"},
|
|
"y<A-P>",
|
|
indoc! {"\
|
|
#(|one)##(|two)##(|three)#one_cat
|
|
#(|one)##(|two)##(|three)#two_dog
|
|
#(|one)##(|two)##[|three]#three_cow
|
|
"},
|
|
),
|
|
)
|
|
.await?;
|
|
|
|
// Test paste_all_selections_after
|
|
// Primary selection is last selection pasted for previous primary.
|
|
test_with_config(
|
|
AppBuilder::new().with_config(config.clone()),
|
|
(
|
|
indoc! {"\
|
|
#(one|)#_cat
|
|
#[two|]#_dog
|
|
#(three|)#_cow
|
|
"},
|
|
"y<A-p>",
|
|
indoc! {"\
|
|
one#(one|)##(two|)##(three|)#_cat
|
|
two#(one|)##(two|)##[three|]#_dog
|
|
three#(one|)##(two|)##(three|)#_cow
|
|
"},
|
|
),
|
|
)
|
|
.await?;
|
|
|
|
Ok(())
|
|
}
|