mirror of https://github.com/helix-editor/helix
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
200 lines
5.4 KiB
Rust
200 lines
5.4 KiB
Rust
use super::*;
|
|
|
|
#[tokio::test(flavor = "multi_thread")]
|
|
async fn test_move_parent_node_end() -> anyhow::Result<()> {
|
|
let tests = vec![
|
|
// single cursor stays single cursor, first goes to end of current
|
|
// node, then parent
|
|
(
|
|
helpers::platform_line(indoc! {r##"
|
|
fn foo() {
|
|
let result = if true {
|
|
"yes"
|
|
} else {
|
|
"no#["|]#
|
|
}
|
|
}
|
|
"##}),
|
|
"<A-e>",
|
|
helpers::platform_line(indoc! {"\
|
|
fn foo() {
|
|
let result = if true {
|
|
\"yes\"
|
|
} else {
|
|
\"no\"#[\n|]#
|
|
}
|
|
}
|
|
"}),
|
|
),
|
|
(
|
|
helpers::platform_line(indoc! {"\
|
|
fn foo() {
|
|
let result = if true {
|
|
\"yes\"
|
|
} else {
|
|
\"no\"#[\n|]#
|
|
}
|
|
}
|
|
"}),
|
|
"<A-e>",
|
|
helpers::platform_line(indoc! {"\
|
|
fn foo() {
|
|
let result = if true {
|
|
\"yes\"
|
|
} else {
|
|
\"no\"
|
|
}#[\n|]#
|
|
}
|
|
"}),
|
|
),
|
|
// select mode extends
|
|
(
|
|
helpers::platform_line(indoc! {r##"
|
|
fn foo() {
|
|
let result = if true {
|
|
"yes"
|
|
} else {
|
|
#["no"|]#
|
|
}
|
|
}
|
|
"##}),
|
|
"v<A-e><A-e>",
|
|
helpers::platform_line(indoc! {"\
|
|
fn foo() {
|
|
let result = if true {
|
|
\"yes\"
|
|
} else {
|
|
#[\"no\"
|
|
}\n|]#
|
|
}
|
|
"}),
|
|
),
|
|
];
|
|
|
|
for test in tests {
|
|
test_with_config(AppBuilder::new().with_file("foo.rs", None), test).await?;
|
|
}
|
|
|
|
Ok(())
|
|
}
|
|
|
|
#[tokio::test(flavor = "multi_thread")]
|
|
async fn test_move_parent_node_start() -> anyhow::Result<()> {
|
|
let tests = vec![
|
|
// single cursor stays single cursor, first goes to end of current
|
|
// node, then parent
|
|
(
|
|
helpers::platform_line(indoc! {r##"
|
|
fn foo() {
|
|
let result = if true {
|
|
"yes"
|
|
} else {
|
|
"no#["|]#
|
|
}
|
|
}
|
|
"##}),
|
|
"<A-b>",
|
|
helpers::platform_line(indoc! {"\
|
|
fn foo() {
|
|
let result = if true {
|
|
\"yes\"
|
|
} else {
|
|
#[\"|]#no\"
|
|
}
|
|
}
|
|
"}),
|
|
),
|
|
(
|
|
helpers::platform_line(indoc! {"\
|
|
fn foo() {
|
|
let result = if true {
|
|
\"yes\"
|
|
} else {
|
|
\"no\"#[\n|]#
|
|
}
|
|
}
|
|
"}),
|
|
"<A-b>",
|
|
helpers::platform_line(indoc! {"\
|
|
fn foo() {
|
|
let result = if true {
|
|
\"yes\"
|
|
} else #[{|]#
|
|
\"no\"
|
|
}
|
|
}
|
|
"}),
|
|
),
|
|
(
|
|
helpers::platform_line(indoc! {"\
|
|
fn foo() {
|
|
let result = if true {
|
|
\"yes\"
|
|
} else #[{|]#
|
|
\"no\"
|
|
}
|
|
}
|
|
"}),
|
|
"<A-b>",
|
|
helpers::platform_line(indoc! {"\
|
|
fn foo() {
|
|
let result = if true {
|
|
\"yes\"
|
|
} #[e|]#lse {
|
|
\"no\"
|
|
}
|
|
}
|
|
"}),
|
|
),
|
|
// select mode extends
|
|
(
|
|
helpers::platform_line(indoc! {r##"
|
|
fn foo() {
|
|
let result = if true {
|
|
"yes"
|
|
} else {
|
|
#["no"|]#
|
|
}
|
|
}
|
|
"##}),
|
|
"v<A-b><A-b>",
|
|
helpers::platform_line(indoc! {"\
|
|
fn foo() {
|
|
let result = if true {
|
|
\"yes\"
|
|
} else #[|{
|
|
]#\"no\"
|
|
}
|
|
}
|
|
"}),
|
|
),
|
|
(
|
|
helpers::platform_line(indoc! {r##"
|
|
fn foo() {
|
|
let result = if true {
|
|
"yes"
|
|
} else {
|
|
#["no"|]#
|
|
}
|
|
}
|
|
"##}),
|
|
"v<A-b><A-b><A-b>",
|
|
helpers::platform_line(indoc! {"\
|
|
fn foo() {
|
|
let result = if true {
|
|
\"yes\"
|
|
} #[|else {
|
|
]#\"no\"
|
|
}
|
|
}
|
|
"}),
|
|
),
|
|
];
|
|
|
|
for test in tests {
|
|
test_with_config(AppBuilder::new().with_file("foo.rs", None), test).await?;
|
|
}
|
|
|
|
Ok(())
|
|
}
|