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.rs | 10 |
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())) } |