mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-26 19:33:30 +04:00
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(())
|
||
|
}
|