Skip to content

Commit aef3ab4

Browse files
committed
Separation of namespace interfaces
1 parent 8abeb57 commit aef3ab4

File tree

2 files changed

+16
-6
lines changed
  • packages/cli/src/languagePlugins/csharp

2 files changed

+16
-6
lines changed

packages/cli/src/languagePlugins/csharp/namespaceMapper/index.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
import Parser from "tree-sitter";
2-
import { NamespaceResolver, Namespace } from "../namespaceResolver";
2+
import {
3+
NamespaceResolver,
4+
Namespace,
5+
ExportedSymbol,
6+
} from "../namespaceResolver";
7+
8+
export interface NamespaceNode {
9+
name: string;
10+
exports: ExportedSymbol[];
11+
childrenNamespaces: NamespaceNode[];
12+
}
313

414
export class NamespaceMapper {
515
#files: Map<string, { path: string; rootNode: Parser.SyntaxNode }>;
@@ -14,7 +24,7 @@ export class NamespaceMapper {
1424
}
1525

1626
// Adds a namespace to the final tree.
17-
#addNamespaceToTree(namespace: Namespace, tree: Namespace) {
27+
#addNamespaceToTree(namespace: NamespaceNode, tree: NamespaceNode) {
1828
// Deconstruct the namespace's name, so that A.B
1929
// becomes B, child of A.
2030
const parts = namespace.name.split(".");
@@ -47,7 +57,7 @@ export class NamespaceMapper {
4757

4858
// Assigns namespaces to classes, used for ambiguity resolution.
4959
// check 2Namespaces1File.cs for an example.
50-
#assignNamespacesToClasses(tree: Namespace, parentNamespace = "") {
60+
#assignNamespacesToClasses(tree: NamespaceNode, parentNamespace = "") {
5161
const fullNamespace = parentNamespace
5262
? `${parentNamespace}.${tree.name}`
5363
: tree.name;
@@ -62,8 +72,8 @@ export class NamespaceMapper {
6272
}
6373

6474
// Builds a tree of namespaces from the parsed files.
65-
buildNamespaceTree(): Namespace {
66-
const namespaceTree: Namespace = {
75+
buildNamespaceTree(): NamespaceNode {
76+
const namespaceTree: NamespaceNode = {
6777
name: "",
6878
exports: [],
6979
childrenNamespaces: [],

packages/cli/src/languagePlugins/csharp/namespaceResolver/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export interface ExportedSymbol {
3030

3131
export interface Namespace {
3232
name: string;
33-
node?: Parser.SyntaxNode; // Optional because some namespaces are merely theoretical
33+
node: Parser.SyntaxNode;
3434
identifierNode?: Parser.SyntaxNode; // Optional because the root namespace doesn't have an identifier
3535
exports: ExportedSymbol[];
3636
childrenNamespaces: Namespace[];

0 commit comments

Comments
 (0)