Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/file_structure.rs')
-rw-r--r--crates/ide/src/file_structure.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/crates/ide/src/file_structure.rs b/crates/ide/src/file_structure.rs
index 9245818584..7b296b2701 100644
--- a/crates/ide/src/file_structure.rs
+++ b/crates/ide/src/file_structure.rs
@@ -187,6 +187,24 @@ fn structure_node(node: &SyntaxNode) -> Option<StructureNode> {
};
Some(node)
},
+ ast::LetStmt(it) => {
+ let pat = it.pat()?;
+
+ let mut label = String::new();
+ collapse_ws(pat.syntax(), &mut label);
+
+ let node = StructureNode {
+ parent: None,
+ label,
+ navigation_range: pat.syntax().text_range(),
+ node_range: it.syntax().text_range(),
+ kind: StructureNodeKind::SymbolKind(SymbolKind::Local),
+ detail: it.ty().map(|ty| ty.to_string()),
+ deprecated: false,
+ };
+
+ Some(node)
+ },
ast::Macro(it) => decl(it, StructureNodeKind::SymbolKind(SymbolKind::Macro)),
_ => None,
}