Skip to content
This repository was archived by the owner on Sep 9, 2025. It is now read-only.

Commit 7887c30

Browse files
author
Hendrik van Antwerpen
authored
Merge pull request #168 from github/explicit-builtins-import
[TypeScript] Scope everything within projects
2 parents d76841f + 85e67b5 commit 7887c30

File tree

5 files changed

+203
-150
lines changed

5 files changed

+203
-150
lines changed

languages/tree-sitter-stack-graphs-typescript/rust/npm_package.rs

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,7 @@ impl FileAnalyzer for NpmPackageAnalyzer {
3131
_cancellation_flag: &dyn tree_sitter_stack_graphs::CancellationFlag,
3232
) -> Result<(), tree_sitter_stack_graphs::LoadError> {
3333
// read globals
34-
let proj_name = globals
35-
.get(crate::PROJECT_NAME_VAR)
36-
.map(String::as_str)
37-
.unwrap_or("");
34+
let proj_name = globals.get(crate::PROJECT_NAME_VAR).map(String::as_str);
3835

3936
// parse source
4037
let npm_pkg: NpmPackage =
@@ -44,31 +41,37 @@ impl FileAnalyzer for NpmPackageAnalyzer {
4441
let root = StackGraph::root_node();
4542

4643
// project scope
47-
let proj_scope_id = graph.new_node_id(file);
48-
let proj_scope = graph.add_scope_node(proj_scope_id, false).unwrap();
49-
add_debug_name(graph, proj_scope, "npm_package.proj_scope");
44+
let proj_scope = if let Some(proj_name) = proj_name {
45+
let proj_scope_id = graph.new_node_id(file);
46+
let proj_scope = graph.add_scope_node(proj_scope_id, false).unwrap();
47+
add_debug_name(graph, proj_scope, "npm_package.proj_scope");
5048

51-
// project definition
52-
let proj_def = add_ns_pop(
53-
graph,
54-
file,
55-
root,
56-
PROJ_NS,
57-
proj_name,
58-
"npm_package.proj_def",
59-
);
60-
add_edge(graph, proj_def, proj_scope, 0);
49+
// project definition
50+
let proj_def = add_ns_pop(
51+
graph,
52+
file,
53+
root,
54+
PROJ_NS,
55+
proj_name,
56+
"npm_package.proj_def",
57+
);
58+
add_edge(graph, proj_def, proj_scope, 0);
6159

62-
// project reference
63-
let proj_ref = add_ns_push(
64-
graph,
65-
file,
66-
root,
67-
PROJ_NS,
68-
proj_name,
69-
"npm_package.proj_ref",
70-
);
71-
add_edge(graph, proj_scope, proj_ref, 0);
60+
// project reference
61+
let proj_ref = add_ns_push(
62+
graph,
63+
file,
64+
root,
65+
PROJ_NS,
66+
proj_name,
67+
"npm_package.proj_ref",
68+
);
69+
add_edge(graph, proj_scope, proj_ref, 0);
70+
71+
proj_scope
72+
} else {
73+
root
74+
};
7275

7376
// package definition
7477
let pkg_def = add_module_pops(

languages/tree-sitter-stack-graphs-typescript/rust/tsconfig.rs

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,7 @@ impl FileAnalyzer for TsConfigAnalyzer {
3333
_cancellation_flag: &dyn tree_sitter_stack_graphs::CancellationFlag,
3434
) -> Result<(), tree_sitter_stack_graphs::LoadError> {
3535
// read globals
36-
let proj_name = globals
37-
.get(crate::PROJECT_NAME_VAR)
38-
.map(String::as_str)
39-
.unwrap_or("");
36+
let proj_name = globals.get(crate::PROJECT_NAME_VAR).map(String::as_str);
4037

4138
// parse source
4239
let tsc = TsConfig::parse_str(path, source).map_err(|_| LoadError::ParseError)?;
@@ -45,17 +42,23 @@ impl FileAnalyzer for TsConfigAnalyzer {
4542
let root = StackGraph::root_node();
4643

4744
// project scope
48-
let proj_scope_id = graph.new_node_id(file);
49-
let proj_scope = graph.add_scope_node(proj_scope_id, false).unwrap();
50-
add_debug_name(graph, proj_scope, "tsconfig.proj_scope");
45+
let proj_scope = if let Some(proj_name) = proj_name {
46+
let proj_scope_id = graph.new_node_id(file);
47+
let proj_scope = graph.add_scope_node(proj_scope_id, false).unwrap();
48+
add_debug_name(graph, proj_scope, "tsconfig.proj_scope");
5149

52-
// project definition
53-
let proj_def = add_ns_pop(graph, file, root, PROJ_NS, proj_name, "tsconfig.proj_def");
54-
add_edge(graph, proj_def, proj_scope, 0);
50+
// project definition
51+
let proj_def = add_ns_pop(graph, file, root, PROJ_NS, proj_name, "tsconfig.proj_def");
52+
add_edge(graph, proj_def, proj_scope, 0);
5553

56-
// project reference
57-
let proj_ref = add_ns_push(graph, file, root, PROJ_NS, proj_name, "tsconfig.proj_ref");
58-
add_edge(graph, proj_scope, proj_ref, 0);
54+
// project reference
55+
let proj_ref = add_ns_push(graph, file, root, PROJ_NS, proj_name, "tsconfig.proj_ref");
56+
add_edge(graph, proj_scope, proj_ref, 0);
57+
58+
proj_scope
59+
} else {
60+
root
61+
};
5962

6063
// root directory
6164
let pkg_def = add_pop(graph, file, proj_scope, PKG_M_NS, "tsconfig.pkg_def");
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
[globals]
2+
PROJECT_NAME=<builtins>

0 commit comments

Comments
 (0)