Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/syntax/src/parsing/reparsing.rs')
-rw-r--r--crates/syntax/src/parsing/reparsing.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/crates/syntax/src/parsing/reparsing.rs b/crates/syntax/src/parsing/reparsing.rs
index e9567a838c..a6abe3cccf 100644
--- a/crates/syntax/src/parsing/reparsing.rs
+++ b/crates/syntax/src/parsing/reparsing.rs
@@ -10,7 +10,7 @@ use parser::Reparser;
use text_edit::Indel;
use crate::{
- parsing::text_tree_sink::TextTreeSink,
+ parsing::text_tree_sink::build_tree,
syntax_node::{GreenNode, GreenToken, NodeOrToken, SyntaxElement, SyntaxNode},
SyntaxError,
SyntaxKind::*,
@@ -89,16 +89,14 @@ fn reparse_block(
let text = get_text_after_edit(node.clone().into(), edit);
let lexed = parser::LexedStr::new(text.as_str());
- let parser_tokens = lexed.to_tokens();
+ let parser_input = lexed.to_input();
if !is_balanced(&lexed) {
return None;
}
- let mut tree_sink = TextTreeSink::new(lexed);
+ let tree_traversal = reparser.parse(&parser_input);
- reparser.parse(&parser_tokens, &mut tree_sink);
-
- let (green, new_parser_errors) = tree_sink.finish();
+ let (green, new_parser_errors, _eof) = build_tree(lexed, tree_traversal, false);
Some((node.replace_with(green), new_parser_errors, node.text_range()))
}