+9
-12
src/languages/rust.tsg
+9
-12
src/languages/rust.tsg
···
156
157
;; type parameters
158
(type_parameters
159
-
(type_identifier) @cap)
160
{
161
(def @cap)
162
}
163
(type_parameters
164
-
(lifetime) @cap)
165
-
{
166
-
(def @cap)
167
-
}
168
-
(constrained_type_parameter
169
-
left: (type_identifier) @cap)
170
{
171
(def @cap)
172
}
···
189
190
;; 'outer: loop { .. }
191
(loop_expression
192
-
(loop_label) @cap)
193
{
194
(def @cap)
195
}
···
200
{
201
(def @cap)
202
}
203
-
(for_expression (loop_label) @cap)
204
{
205
(def @cap)
206
}
207
208
;; 'label: while cond { .. }
209
(while_expression
210
-
(loop_label) @cap)
211
{
212
(def @cap)
213
}
···
312
(break_expression (identifier) @cap)
313
314
;; break 'label
315
-
(break_expression (loop_label) @cap)
316
317
;; continue 'label;
318
-
(continue_expression (loop_label) @cap)
319
320
;; yield x;
321
(yield_expression (identifier) @cap)
···
156
157
;; type parameters
158
(type_parameters
159
+
(type_parameter
160
+
(type_identifier) @cap))
161
{
162
(def @cap)
163
}
164
(type_parameters
165
+
(lifetime_parameter
166
+
(lifetime) @cap))
167
{
168
(def @cap)
169
}
···
186
187
;; 'outer: loop { .. }
188
(loop_expression
189
+
(label) @cap)
190
{
191
(def @cap)
192
}
···
197
{
198
(def @cap)
199
}
200
+
(for_expression (label) @cap)
201
{
202
(def @cap)
203
}
204
205
;; 'label: while cond { .. }
206
(while_expression
207
+
(label) @cap)
208
{
209
(def @cap)
210
}
···
309
(break_expression (identifier) @cap)
310
311
;; break 'label
312
+
(break_expression (label) @cap)
313
314
;; continue 'label;
315
+
(continue_expression (label) @cap)
316
317
;; yield x;
318
(yield_expression (identifier) @cap)
+3
-3
src/stag.rs
+3
-3
src/stag.rs
···
489
pub fn find_node_by_name(&self, src: &[u8], name: &[u8]) -> Option<NodeIndex> {
490
self.graph.node_indices().find(|idx| {
491
matches!(
492
-
&self.graph[*idx],
493
NodeKind::Def(d) if d.name(src) == name)
494
})
495
}
···
625
let sg = build_graph(src);
626
let nodes = sg.graph.node_weights();
627
628
-
nodes.fold((0, 0, 0, 0), |(s, d, r, i), node| match node {
629
NodeKind::Scope(_) => (s + 1, d, r, i),
630
NodeKind::Def(_) => (s, d + 1, r, i),
631
NodeKind::Ref(_) => (s, d, r + 1, i),
···
643
StagBuilder::default()
644
.with_source(src)
645
.with_stag_file(crate::RUST)
646
-
.with_language(tree_sitter_rust::language())
647
.execute()
648
.unwrap()
649
}
···
489
pub fn find_node_by_name(&self, src: &[u8], name: &[u8]) -> Option<NodeIndex> {
490
self.graph.node_indices().find(|idx| {
491
matches!(
492
+
&self.graph[*idx].kind,
493
NodeKind::Def(d) if d.name(src) == name)
494
})
495
}
···
625
let sg = build_graph(src);
626
let nodes = sg.graph.node_weights();
627
628
+
nodes.fold((0, 0, 0, 0), |(s, d, r, i), node| match node.kind {
629
NodeKind::Scope(_) => (s + 1, d, r, i),
630
NodeKind::Def(_) => (s, d + 1, r, i),
631
NodeKind::Ref(_) => (s, d, r + 1, i),
···
643
StagBuilder::default()
644
.with_source(src)
645
.with_stag_file(crate::RUST)
646
+
.with_language(tree_sitter_rust::LANGUAGE.into())
647
.execute()
648
.unwrap()
649
}