aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/matching_brace.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-07-21 11:28:58 +0100
committerAleksey Kladov <[email protected]>2019-07-21 11:28:58 +0100
commitd52ee59a712932bc381d8c690dc2f681598760fe (patch)
treef1fd1615203dd5552172cc35e0b6c5c9b76104c2 /crates/ra_ide_api/src/matching_brace.rs
parent62be91b82d6368a20a40893b199bc4f7a35a2223 (diff)
streamline API
Diffstat (limited to 'crates/ra_ide_api/src/matching_brace.rs')
-rw-r--r--crates/ra_ide_api/src/matching_brace.rs6
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 @@
1use ra_syntax::{algo::find_token_at_offset, ast::AstNode, SourceFile, SyntaxKind, TextUnit, T}; 1use ra_syntax::{ast::AstNode, SourceFile, SyntaxKind, TextUnit, T};
2 2
3pub fn matching_brace(file: &SourceFile, offset: TextUnit) -> Option<TextUnit> { 3pub 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))