diff options
Diffstat (limited to 'crates/ra_ide_api/src/matching_brace.rs')
-rw-r--r-- | crates/ra_ide_api/src/matching_brace.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/crates/ra_ide_api/src/matching_brace.rs b/crates/ra_ide_api/src/matching_brace.rs index 1e2fac848..e802d01e4 100644 --- a/crates/ra_ide_api/src/matching_brace.rs +++ b/crates/ra_ide_api/src/matching_brace.rs | |||
@@ -1,9 +1,11 @@ | |||
1 | use ra_syntax::{algo::find_token_at_offset, ast::AstNode, SourceFile, SyntaxKind, TextUnit, T}; | 1 | use ra_syntax::{ast::AstNode, SourceFile, SyntaxKind, TextUnit, T}; |
2 | 2 | ||
3 | pub fn matching_brace(file: &SourceFile, offset: TextUnit) -> Option<TextUnit> { | 3 | pub fn matching_brace(file: &SourceFile, offset: TextUnit) -> Option<TextUnit> { |
4 | const BRACES: &[SyntaxKind] = | 4 | const BRACES: &[SyntaxKind] = |
5 | &[T!['{'], T!['}'], T!['['], T![']'], T!['('], T![')'], T![<], T![>]]; | 5 | &[T!['{'], T!['}'], T!['['], T![']'], T!['('], T![')'], T![<], T![>]]; |
6 | let (brace_node, brace_idx) = find_token_at_offset(file.syntax(), offset) | 6 | let (brace_node, brace_idx) = file |
7 | .syntax() | ||
8 | .token_at_offset(offset) | ||
7 | .filter_map(|node| { | 9 | .filter_map(|node| { |
8 | let idx = BRACES.iter().position(|&brace| brace == node.kind())?; | 10 | let idx = BRACES.iter().position(|&brace| brace == node.kind())?; |
9 | Some((node, idx)) | 11 | Some((node, idx)) |