Extract a use declaration (import statement).
(state: &mut ExtractionState, node: TsNode<'_>)
| 671 | |
| 672 | /// Extract a use declaration (import statement). |
| 673 | fn visit_use_declaration(state: &mut ExtractionState, node: TsNode<'_>) { |
| 674 | // use_declaration contains use_instead_of or namespace_use_clause children. |
| 675 | let mut cursor = node.walk(); |
| 676 | if cursor.goto_first_child() { |
| 677 | loop { |
| 678 | let child = cursor.node(); |
| 679 | match child.kind() { |
| 680 | "namespace_use_clause" => { |
| 681 | Self::visit_use_clause(state, child, node); |
| 682 | } |
| 683 | "namespace_use_group" => { |
| 684 | Self::visit_use_group(state, child, node); |
| 685 | } |
| 686 | "qualified_name" | "name" => { |
| 687 | let name = state.node_text(child); |
| 688 | Self::create_use_node(state, &name, node); |
| 689 | } |
| 690 | _ => {} |
| 691 | } |
| 692 | if !cursor.goto_next_sibling() { |
| 693 | break; |
| 694 | } |
| 695 | } |
| 696 | } |
| 697 | } |
| 698 | |
| 699 | /// Extract a single use clause (e.g., `Foo\Bar as Baz`). |
| 700 | fn visit_use_clause(state: &mut ExtractionState, clause: TsNode<'_>, use_node: TsNode<'_>) { |