Unnamed repository; edit this file 'description' to name the repository.
fix match bracket matching (#10777)
Krishan 2024-05-17
parent 889bbef · commit 2301430
-rw-r--r--helix-core/src/match_brackets.rs4
-rw-r--r--helix-term/tests/test/commands/movement.rs16
2 files changed, 18 insertions, 2 deletions
diff --git a/helix-core/src/match_brackets.rs b/helix-core/src/match_brackets.rs
index 0e08c489..5351b56d 100644
--- a/helix-core/src/match_brackets.rs
+++ b/helix-core/src/match_brackets.rs
@@ -87,13 +87,13 @@ fn find_pair(
(as_char(doc, &open), as_char(doc, &close))
{
if PAIRS.contains(&(open, close)) {
- if start_pos == pos_ {
+ if end_pos == pos_ {
return Some(start_pos);
}
// We return the end char if the cursor is either on the start char
// or at some arbitrary position between start and end char.
- if traverse_parents || end_pos == pos_ {
+ if traverse_parents || start_pos == pos_ {
return Some(end_pos);
}
}
diff --git a/helix-term/tests/test/commands/movement.rs b/helix-term/tests/test/commands/movement.rs
index ed698428..5868fa49 100644
--- a/helix-term/tests/test/commands/movement.rs
+++ b/helix-term/tests/test/commands/movement.rs
@@ -895,6 +895,22 @@ async fn match_bracket() -> anyhow::Result<()> {
}
"##},
),
+ // named node with 2 or more children
+ (
+ indoc! {r##"
+ use a::#[{|]#
+ b::{c, d, e, f, g},
+ h, i, j, k, l, m, n,
+ };
+ "##},
+ "mm",
+ indoc! {r##"
+ use a::{
+ b::{c, d, e, f, g},
+ h, i, j, k, l, m, n,
+ #[}|]#;
+ "##},
+ ),
];
let python_tests = vec![