Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/syntax_tree.rs')
| -rw-r--r-- | crates/ide/src/syntax_tree.rs | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/crates/ide/src/syntax_tree.rs b/crates/ide/src/syntax_tree.rs index 05cdf430ef..e241cb82bd 100644 --- a/crates/ide/src/syntax_tree.rs +++ b/crates/ide/src/syntax_tree.rs @@ -1,7 +1,5 @@ -use ide_db::{ - base_db::{FileId, SourceDatabase}, - RootDatabase, -}; +use hir::Semantics; +use ide_db::{FileId, RootDatabase}; use syntax::{ AstNode, NodeOrToken, SourceFile, SyntaxKind::STRING, SyntaxToken, TextRange, TextSize, }; @@ -22,9 +20,10 @@ pub(crate) fn syntax_tree( file_id: FileId, text_range: Option<TextRange>, ) -> String { - let parse = db.parse(file_id); + let sema = Semantics::new(db); + let parse = sema.parse_guess_edition(file_id); if let Some(text_range) = text_range { - let node = match parse.tree().syntax().covering_element(text_range) { + let node = match parse.syntax().covering_element(text_range) { NodeOrToken::Node(node) => node, NodeOrToken::Token(token) => { if let Some(tree) = syntax_tree_for_string(&token, text_range) { @@ -36,7 +35,7 @@ pub(crate) fn syntax_tree( format!("{node:#?}") } else { - format!("{:#?}", parse.tree().syntax()) + format!("{:#?}", parse.syntax()) } } @@ -88,7 +87,7 @@ fn syntax_tree_for_token(node: &SyntaxToken, text_range: TextRange) -> Option<St // Remove custom markers .replace("$0", ""); - let parsed = SourceFile::parse(&text, span::Edition::CURRENT); + let parsed = SourceFile::parse(&text, span::Edition::CURRENT_FIXME); // If the "file" parsed without errors, // return its syntax |