diff options
author | Aleksey Kladov <[email protected]> | 2019-07-18 17:23:05 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-07-19 11:16:24 +0100 |
commit | d402974aa0af6de290245a9d2a69a5d56c4fa610 (patch) | |
tree | df4a0e38e548f9f74592e00a2c5a7d37bab3c4c2 /crates/ra_syntax/src/algo.rs | |
parent | 58d4983ba5745975446d60f2886d96f8d2adf0f2 (diff) |
migrate ra_syntax to the new rowan API
Diffstat (limited to 'crates/ra_syntax/src/algo.rs')
-rw-r--r-- | crates/ra_syntax/src/algo.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/crates/ra_syntax/src/algo.rs b/crates/ra_syntax/src/algo.rs index fad8da132..e2de5e0e3 100644 --- a/crates/ra_syntax/src/algo.rs +++ b/crates/ra_syntax/src/algo.rs | |||
@@ -9,8 +9,8 @@ pub use rowan::TokenAtOffset; | |||
9 | pub fn find_token_at_offset(node: &SyntaxNode, offset: TextUnit) -> TokenAtOffset<SyntaxToken> { | 9 | pub fn find_token_at_offset(node: &SyntaxNode, offset: TextUnit) -> TokenAtOffset<SyntaxToken> { |
10 | match node.0.token_at_offset(offset) { | 10 | match node.0.token_at_offset(offset) { |
11 | TokenAtOffset::None => TokenAtOffset::None, | 11 | TokenAtOffset::None => TokenAtOffset::None, |
12 | TokenAtOffset::Single(n) => TokenAtOffset::Single(n.into()), | 12 | TokenAtOffset::Single(n) => TokenAtOffset::Single(SyntaxToken(n)), |
13 | TokenAtOffset::Between(l, r) => TokenAtOffset::Between(l.into(), r.into()), | 13 | TokenAtOffset::Between(l, r) => TokenAtOffset::Between(SyntaxToken(l), SyntaxToken(r)), |
14 | } | 14 | } |
15 | } | 15 | } |
16 | 16 | ||
@@ -22,7 +22,7 @@ pub fn find_token_at_offset(node: &SyntaxNode, offset: TextUnit) -> TokenAtOffse | |||
22 | pub fn ancestors_at_offset( | 22 | pub fn ancestors_at_offset( |
23 | node: &SyntaxNode, | 23 | node: &SyntaxNode, |
24 | offset: TextUnit, | 24 | offset: TextUnit, |
25 | ) -> impl Iterator<Item = &SyntaxNode> { | 25 | ) -> impl Iterator<Item = SyntaxNode> { |
26 | find_token_at_offset(node, offset) | 26 | find_token_at_offset(node, offset) |
27 | .map(|token| token.parent().ancestors()) | 27 | .map(|token| token.parent().ancestors()) |
28 | .kmerge_by(|node1, node2| node1.range().len() < node2.range().len()) | 28 | .kmerge_by(|node1, node2| node1.range().len() < node2.range().len()) |
@@ -37,7 +37,7 @@ pub fn ancestors_at_offset( | |||
37 | /// ``` | 37 | /// ``` |
38 | /// | 38 | /// |
39 | /// then the shorter node will be silently preferred. | 39 | /// then the shorter node will be silently preferred. |
40 | pub fn find_node_at_offset<N: AstNode>(syntax: &SyntaxNode, offset: TextUnit) -> Option<&N> { | 40 | pub fn find_node_at_offset<N: AstNode>(syntax: &SyntaxNode, offset: TextUnit) -> Option<N> { |
41 | ancestors_at_offset(syntax, offset).find_map(N::cast) | 41 | ancestors_at_offset(syntax, offset).find_map(N::cast) |
42 | } | 42 | } |
43 | 43 | ||
@@ -59,5 +59,5 @@ pub fn non_trivia_sibling(element: SyntaxElement, direction: Direction) -> Optio | |||
59 | } | 59 | } |
60 | 60 | ||
61 | pub fn find_covering_element(root: &SyntaxNode, range: TextRange) -> SyntaxElement { | 61 | pub fn find_covering_element(root: &SyntaxNode, range: TextRange) -> SyntaxElement { |
62 | root.0.covering_node(range).into() | 62 | SyntaxElement::new(root.0.covering_node(range)) |
63 | } | 63 | } |