rust-lang/rust-analyzer

matching_brace function not correct when jumping from open brace to close brace

Open

#1942 opened on Oct 2, 2019

View on GitHub
 (8 comments) (0 reactions) (0 assignees)Rust (14,924 stars) (1,726 forks)batch import
E-has-instructionsE-mediumS-actionablegood first issue

Description

https://github.com/rust-analyzer/rust-analyzer/blob/31f22d85491d9e7eaadf5fd4f9754c83fc0f3ea6/crates/ra_ide_api/src/matching_brace.rs#L41

swap the order of do_check parameters the makes the test case failed

do_check("struct Foo <|>{ a: i32, }", "struct Foo { a: i32, }<|>");

this matching behavior should be symmetrical

https://github.com/rust-analyzer/rust-analyzer/blob/31f22d85491d9e7eaadf5fd4f9754c83fc0f3ea6/crates/ra_ide_api/src/matching_brace.rs#L18-L19

if the matching node is a left brace, we use start(), if the matching node is a right brace, we should use end()

Contributor guide