switch to new rowan

This commit is contained in:
Aleksey Kladov 2019-03-30 13:25:53 +03:00
parent dec9bde108
commit 9e213385c9
50 changed files with 1026 additions and 1227 deletions

View file

@ -1,6 +1,6 @@
use ra_syntax::{
SourceFile, TextUnit,
algo::find_leaf_at_offset,
algo::find_token_at_offset,
SyntaxKind::{self, *},
ast::AstNode,
};
@ -8,15 +8,15 @@ use ra_syntax::{
pub fn matching_brace(file: &SourceFile, offset: TextUnit) -> Option<TextUnit> {
const BRACES: &[SyntaxKind] =
&[L_CURLY, R_CURLY, L_BRACK, R_BRACK, L_PAREN, R_PAREN, L_ANGLE, R_ANGLE];
let (brace_node, brace_idx) = find_leaf_at_offset(file.syntax(), offset)
let (brace_node, brace_idx) = find_token_at_offset(file.syntax(), offset)
.filter_map(|node| {
let idx = BRACES.iter().position(|&brace| brace == node.kind())?;
Some((node, idx))
})
.next()?;
let parent = brace_node.parent()?;
let parent = brace_node.parent();
let matching_kind = BRACES[brace_idx ^ 1];
let matching_node = parent.children().find(|node| node.kind() == matching_kind)?;
let matching_node = parent.children_with_tokens().find(|node| node.kind() == matching_kind)?;
Some(matching_node.range().start())
}
@ -41,5 +41,4 @@ mod tests {
do_check("struct Foo { a: i32, }<|>", "struct Foo <|>{ a: i32, }");
}
}