about summary refs log tree commit diff
path: root/src/tools/rust-analyzer
diff options
context:
space:
mode:
authorLastExceed <chris20194@googlemail.com>2024-10-16 21:39:38 +0200
committerLastExceed <chris20194@googlemail.com>2024-10-27 23:29:14 +0100
commit47e5759da9a3b289935c81f4d2d1f37cdbb55a92 (patch)
tree5abbce83da33980e47c39ad6a47516ed6edb873c /src/tools/rust-analyzer
parent14607bae1d7fccf3ac1050b61d220c004a1f7de5 (diff)
downloadrust-47e5759da9a3b289935c81f4d2d1f37cdbb55a92.tar.gz
rust-47e5759da9a3b289935c81f4d2d1f37cdbb55a92.zip
add LetStmt arm
Diffstat (limited to 'src/tools/rust-analyzer')
-rw-r--r--src/tools/rust-analyzer/crates/ide/src/file_structure.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/crates/ide/src/file_structure.rs b/src/tools/rust-analyzer/crates/ide/src/file_structure.rs
index 92458185849..7b296b27013 100644
--- a/src/tools/rust-analyzer/crates/ide/src/file_structure.rs
+++ b/src/tools/rust-analyzer/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,
         }