mirror of
https://github.com/helix-editor/helix.git
synced 2025-04-03 19:07:44 +03:00
add node boundary movement
This commit is contained in:
parent
1d702ea191
commit
93acb53812
5 changed files with 329 additions and 1 deletions
|
@ -2,6 +2,7 @@ use helix_term::application::Application;
|
|||
|
||||
use super::*;
|
||||
|
||||
mod movement;
|
||||
mod write;
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
|
|
199
helix-term/tests/test/commands/movement.rs
Normal file
199
helix-term/tests/test/commands/movement.rs
Normal file
|
@ -0,0 +1,199 @@
|
|||
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(())
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue