diff options
author | Kirill Bulatov <[email protected]> | 2019-07-21 22:10:29 +0100 |
---|---|---|
committer | Kirill Bulatov <[email protected]> | 2019-07-21 22:10:29 +0100 |
commit | 31aef808d96b779dbc8ce41e27857965e79bd96f (patch) | |
tree | 254d69a1ec3abe6d70b2dd9737ef699f33f88f62 /crates/ra_syntax/src/parsing | |
parent | ba76017d2eb1b7606106c15478ac658dc32b6dbd (diff) | |
parent | d690249bc81bc265cb3d1836c2922325f4fdb8af (diff) |
Merge branch 'master' into add-type-lenses
Diffstat (limited to 'crates/ra_syntax/src/parsing')
-rw-r--r-- | crates/ra_syntax/src/parsing/reparsing.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/crates/ra_syntax/src/parsing/reparsing.rs b/crates/ra_syntax/src/parsing/reparsing.rs index 2f388bdfe..65b8aa10d 100644 --- a/crates/ra_syntax/src/parsing/reparsing.rs +++ b/crates/ra_syntax/src/parsing/reparsing.rs | |||
@@ -16,7 +16,7 @@ use crate::{ | |||
16 | text_token_source::TextTokenSource, | 16 | text_token_source::TextTokenSource, |
17 | text_tree_sink::TextTreeSink, | 17 | text_tree_sink::TextTreeSink, |
18 | }, | 18 | }, |
19 | syntax_node::{GreenNode, GreenToken, SyntaxElement, SyntaxNode}, | 19 | syntax_node::{GreenNode, GreenToken, NodeOrToken, SyntaxElement, SyntaxNode}, |
20 | SyntaxError, | 20 | SyntaxError, |
21 | SyntaxKind::*, | 21 | SyntaxKind::*, |
22 | TextRange, TextUnit, T, | 22 | TextRange, TextUnit, T, |
@@ -70,7 +70,8 @@ fn reparse_token<'node>( | |||
70 | } | 70 | } |
71 | } | 71 | } |
72 | 72 | ||
73 | let new_token = GreenToken::new(rowan::SyntaxKind(token.kind().into()), text.into()); | 73 | let new_token = |
74 | GreenToken::new(rowan::cursor::SyntaxKind(token.kind().into()), text.into()); | ||
74 | Some((token.replace_with(new_token), token.text_range())) | 75 | Some((token.replace_with(new_token), token.text_range())) |
75 | } | 76 | } |
76 | _ => None, | 77 | _ => None, |
@@ -98,8 +99,8 @@ fn get_text_after_edit(element: SyntaxElement, edit: &AtomTextEdit) -> String { | |||
98 | let edit = | 99 | let edit = |
99 | AtomTextEdit::replace(edit.delete - element.text_range().start(), edit.insert.clone()); | 100 | AtomTextEdit::replace(edit.delete - element.text_range().start(), edit.insert.clone()); |
100 | let text = match element { | 101 | let text = match element { |
101 | SyntaxElement::Token(token) => token.text().to_string(), | 102 | NodeOrToken::Token(token) => token.text().to_string(), |
102 | SyntaxElement::Node(node) => node.text().to_string(), | 103 | NodeOrToken::Node(node) => node.text().to_string(), |
103 | }; | 104 | }; |
104 | edit.apply(text) | 105 | edit.apply(text) |
105 | } | 106 | } |
@@ -114,8 +115,8 @@ fn is_contextual_kw(text: &str) -> bool { | |||
114 | fn find_reparsable_node(node: &SyntaxNode, range: TextRange) -> Option<(SyntaxNode, Reparser)> { | 115 | fn find_reparsable_node(node: &SyntaxNode, range: TextRange) -> Option<(SyntaxNode, Reparser)> { |
115 | let node = algo::find_covering_element(node, range); | 116 | let node = algo::find_covering_element(node, range); |
116 | let mut ancestors = match node { | 117 | let mut ancestors = match node { |
117 | SyntaxElement::Token(it) => it.parent().ancestors(), | 118 | NodeOrToken::Token(it) => it.parent().ancestors(), |
118 | SyntaxElement::Node(it) => it.ancestors(), | 119 | NodeOrToken::Node(it) => it.ancestors(), |
119 | }; | 120 | }; |
120 | ancestors.find_map(|node| { | 121 | ancestors.find_map(|node| { |
121 | let first_child = node.first_child_or_token().map(|it| it.kind()); | 122 | let first_child = node.first_child_or_token().map(|it| it.kind()); |