@liendev/parser 0.46.0 → 0.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/ast/languages/kotlin.d.ts +83 -0
- package/dist/ast/languages/kotlin.d.ts.map +1 -0
- package/dist/ast/languages/kotlin.js +506 -0
- package/dist/ast/languages/kotlin.js.map +1 -0
- package/dist/ast/languages/registry.d.ts +1 -1
- package/dist/ast/languages/registry.d.ts.map +1 -1
- package/dist/ast/languages/registry.js +3 -0
- package/dist/ast/languages/registry.js.map +1 -1
- package/dist/ast/symbols.d.ts.map +1 -1
- package/dist/ast/symbols.js +28 -7
- package/dist/ast/symbols.js.map +1 -1
- package/dist/symbol-extractor.d.ts.map +1 -1
- package/dist/symbol-extractor.js +45 -0
- package/dist/symbol-extractor.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ This package provides the core parsing and analysis capabilities used by Lien's
|
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
- **AST Parsing** — Tree-sitter-based parsing for TypeScript, JavaScript, Python, PHP, Rust, Go, Java, C#, and
|
|
9
|
+
- **AST Parsing** — Tree-sitter-based parsing for TypeScript, JavaScript, Python, PHP, Rust, Go, Java, C#, Ruby, and Kotlin
|
|
10
10
|
- **Semantic Chunking** — Split code into meaningful chunks respecting function/class boundaries
|
|
11
11
|
- **Complexity Analysis** — Cyclomatic, cognitive, and Halstead complexity metrics
|
|
12
12
|
- **Dependency Analysis** — Import/export tracking with transitive dependent resolution
|
|
@@ -27,8 +27,9 @@ This package provides the core parsing and analysis capabilities used by Lien's
|
|
|
27
27
|
| Java | Yes | Yes | Yes |
|
|
28
28
|
| C# | Yes | Yes | Yes |
|
|
29
29
|
| Ruby | Yes | Yes | Yes |
|
|
30
|
+
| Kotlin | Yes | Yes | Yes |
|
|
30
31
|
|
|
31
|
-
Line-based chunking and symbol extraction are available for additional languages including Vue, Liquid, C/C++, Swift,
|
|
32
|
+
Line-based chunking and symbol extraction are available for additional languages including Vue, Liquid, C/C++, Swift, Scala, and Markdown.
|
|
32
33
|
|
|
33
34
|
## Usage
|
|
34
35
|
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type Parser from 'tree-sitter';
|
|
2
|
+
import type { SymbolInfo } from '../types.js';
|
|
3
|
+
import type { LanguageDefinition } from './types.js';
|
|
4
|
+
import type { LanguageTraverser, DeclarationFunctionInfo } from '../traversers/types.js';
|
|
5
|
+
import type { LanguageExportExtractor, LanguageImportExtractor, LanguageSymbolExtractor } from '../extractors/types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Kotlin AST traverser.
|
|
8
|
+
*
|
|
9
|
+
* Methods live inside `class_declaration` / `object_declaration` bodies
|
|
10
|
+
* (`class_body` / `enum_class_body`). `companion_object` is transparent — its
|
|
11
|
+
* members are traversed so their methods are captured (attributed to the
|
|
12
|
+
* enclosing class). Lambdas can appear in property initializers
|
|
13
|
+
* (`val f = { … }`).
|
|
14
|
+
*/
|
|
15
|
+
export declare class KotlinTraverser implements LanguageTraverser {
|
|
16
|
+
targetNodeTypes: string[];
|
|
17
|
+
containerTypes: string[];
|
|
18
|
+
declarationTypes: string[];
|
|
19
|
+
functionTypes: string[];
|
|
20
|
+
shouldExtractChildren(node: Parser.SyntaxNode): boolean;
|
|
21
|
+
isDeclarationWithFunction(node: Parser.SyntaxNode): boolean;
|
|
22
|
+
getContainerBody(node: Parser.SyntaxNode): Parser.SyntaxNode | null;
|
|
23
|
+
shouldTraverseChildren(node: Parser.SyntaxNode): boolean;
|
|
24
|
+
findParentContainerName(node: Parser.SyntaxNode): string | undefined;
|
|
25
|
+
findFunctionInDeclaration(node: Parser.SyntaxNode): DeclarationFunctionInfo;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Kotlin export extractor.
|
|
29
|
+
*
|
|
30
|
+
* Kotlin has no `export` keyword and is `public` by default — top-level
|
|
31
|
+
* declarations and (non-private/internal) members are importable. Interface
|
|
32
|
+
* members are implicitly public.
|
|
33
|
+
*/
|
|
34
|
+
export declare class KotlinExportExtractor implements LanguageExportExtractor {
|
|
35
|
+
extractExports(rootNode: Parser.SyntaxNode): string[];
|
|
36
|
+
private extractFromNode;
|
|
37
|
+
private extractMembers;
|
|
38
|
+
private propertyName;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Kotlin import extractor.
|
|
42
|
+
*
|
|
43
|
+
* Handles `import a.b.C`, wildcard `import a.b.*`, and aliased
|
|
44
|
+
* `import a.b.C as D`. The grammar nests `import_header` nodes inside an
|
|
45
|
+
* `import_list`; the engine's import scan descends one level to reach them
|
|
46
|
+
* (see `collectImportNodes` in ast/symbols.ts). Standard-library imports
|
|
47
|
+
* (kotlin.*, kotlinx.*, java.*, javax.*) are filtered out.
|
|
48
|
+
*/
|
|
49
|
+
export declare class KotlinImportExtractor implements LanguageImportExtractor {
|
|
50
|
+
readonly importNodeTypes: string[];
|
|
51
|
+
extractImportPath(node: Parser.SyntaxNode): string | null;
|
|
52
|
+
processImportSymbols(node: Parser.SyntaxNode): {
|
|
53
|
+
importPath: string;
|
|
54
|
+
symbols: string[];
|
|
55
|
+
} | null;
|
|
56
|
+
private getImportPath;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Kotlin symbol extractor.
|
|
60
|
+
*
|
|
61
|
+
* Handles `function_declaration`, `class_declaration` (class / interface / enum
|
|
62
|
+
* variants — distinguished by the keyword token), and `object_declaration`.
|
|
63
|
+
* `SymbolInfo.type` only has `function|method|class|interface`, so objects and
|
|
64
|
+
* enums map to `class` (keeping the keyword in the signature).
|
|
65
|
+
*
|
|
66
|
+
* Call sites: `call_expression` — `foo()` (simple_identifier) and `a.b.c()`
|
|
67
|
+
* (the member is the `simple_identifier` inside the trailing `navigation_suffix`).
|
|
68
|
+
*/
|
|
69
|
+
export declare class KotlinSymbolExtractor implements LanguageSymbolExtractor {
|
|
70
|
+
readonly symbolNodeTypes: string[];
|
|
71
|
+
extractSymbol(node: Parser.SyntaxNode, content: string, parentClass?: string): SymbolInfo | null;
|
|
72
|
+
extractCallSite(node: Parser.SyntaxNode): {
|
|
73
|
+
symbol: string;
|
|
74
|
+
line: number;
|
|
75
|
+
key: string;
|
|
76
|
+
} | null;
|
|
77
|
+
private extractFunctionInfo;
|
|
78
|
+
private extractClassInfo;
|
|
79
|
+
private extractObjectInfo;
|
|
80
|
+
private makeSymbol;
|
|
81
|
+
}
|
|
82
|
+
export declare const kotlinDefinition: LanguageDefinition;
|
|
83
|
+
//# sourceMappingURL=kotlin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../src/ast/languages/kotlin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AA+HhC;;;;;;;;GAQG;AACH,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,eAAe,WAA4B;IAE3C,cAAc,WAA+C;IAE7D,gBAAgB,WAA4B;IAE5C,aAAa,WAA4C;IAEzD,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO;IAIvD,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO;IAI3D,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI;IAKnE,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO;IASxD,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS;IAWpE,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,uBAAuB;CAS5E;AAMD;;;;;;GAMG;AACH,qBAAa,qBAAsB,YAAW,uBAAuB;IACnE,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,EAAE;IAgBrD,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,YAAY;CAKrB;AAmBD;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,YAAW,uBAAuB;IACnE,QAAQ,CAAC,eAAe,WAAqB;IAE7C,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,IAAI;IAMzD,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI;IAoB/F,OAAO,CAAC,aAAa;CAMtB;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,qBAAsB,YAAW,uBAAuB;IACnE,QAAQ,CAAC,eAAe,WAAuE;IAE/F,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAahG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAoB9F,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,UAAU;CAcnB;AAMD,eAAO,MAAM,gBAAgB,EAAE,kBAoH9B,CAAC"}
|
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
import Kotlin from 'tree-sitter-kotlin';
|
|
2
|
+
import { calculateComplexity } from '../complexity/index.js';
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// HELPERS
|
|
5
|
+
//
|
|
6
|
+
// The tree-sitter-kotlin grammar (fwcd) does NOT assign field names, so unlike
|
|
7
|
+
// the Java definition we locate children by node TYPE rather than via
|
|
8
|
+
// `childForFieldName`. These helpers centralize that.
|
|
9
|
+
// =============================================================================
|
|
10
|
+
/** First named child of a given type. */
|
|
11
|
+
function childByType(node, type) {
|
|
12
|
+
return node.namedChildren.find(child => child.type === type) ?? null;
|
|
13
|
+
}
|
|
14
|
+
/** Whether a node has a child token of a given type (incl. anonymous keyword tokens). */
|
|
15
|
+
function hasTokenChild(node, type) {
|
|
16
|
+
return node.children.some(child => child.type === type);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The function-valued initializer of a property, if the property's initializer
|
|
20
|
+
* is *directly* a lambda or anonymous function (`val f = { … }`). Checks the
|
|
21
|
+
* initializer (the last named child) rather than any descendant, so a lambda
|
|
22
|
+
* passed as a call argument (`val n = xs.count { it > 0 }`) is NOT treated as a
|
|
23
|
+
* function-valued property.
|
|
24
|
+
*/
|
|
25
|
+
function propertyInitializerFunction(node) {
|
|
26
|
+
const initializer = node.namedChildren.at(-1);
|
|
27
|
+
if (!initializer)
|
|
28
|
+
return null;
|
|
29
|
+
return initializer.type === 'lambda_literal' || initializer.type === 'anonymous_function'
|
|
30
|
+
? initializer
|
|
31
|
+
: null;
|
|
32
|
+
}
|
|
33
|
+
/** The `function_body` child of a function_declaration ({ … } block OR `= expr`). */
|
|
34
|
+
function functionBody(node) {
|
|
35
|
+
return childByType(node, 'function_body');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The function name: the first direct `simple_identifier` child of a
|
|
39
|
+
* function_declaration. (Extension-function receivers are `user_type` nodes, so
|
|
40
|
+
* the bare simple_identifier is the name in the common case.)
|
|
41
|
+
*/
|
|
42
|
+
function functionName(node) {
|
|
43
|
+
return childByType(node, 'simple_identifier')?.text;
|
|
44
|
+
}
|
|
45
|
+
/** The declared name of a class/object declaration (`type_identifier`). */
|
|
46
|
+
function declarationName(node) {
|
|
47
|
+
return childByType(node, 'type_identifier')?.text;
|
|
48
|
+
}
|
|
49
|
+
const SIGNATURE_MAX = 200;
|
|
50
|
+
function clamp(signature) {
|
|
51
|
+
return signature.length > SIGNATURE_MAX
|
|
52
|
+
? signature.slice(0, SIGNATURE_MAX - 3) + '...'
|
|
53
|
+
: signature;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Function signature, bounded by where the body begins. `function_body` covers
|
|
57
|
+
* both block bodies (`{ … }`) and expression bodies (`= expr`, which starts at
|
|
58
|
+
* the `=`), so slicing up to its start yields a clean `fun foo(a: Int): Int`
|
|
59
|
+
* for both. Abstract/interface methods have no body — use the whole node.
|
|
60
|
+
*/
|
|
61
|
+
function functionSignature(node, content) {
|
|
62
|
+
const body = functionBody(node);
|
|
63
|
+
const end = body ? body.startIndex : node.endIndex;
|
|
64
|
+
const signature = content
|
|
65
|
+
.slice(node.startIndex, end)
|
|
66
|
+
.replace(/\s+/g, ' ')
|
|
67
|
+
.replace(/(\{|=)\s*$/, '') // drop a trailing block-opener / expression `=` if captured
|
|
68
|
+
.trim();
|
|
69
|
+
return clamp(signature);
|
|
70
|
+
}
|
|
71
|
+
/** Parameter texts from a function's `function_value_parameters`. */
|
|
72
|
+
function functionParameters(node) {
|
|
73
|
+
const params = childByType(node, 'function_value_parameters');
|
|
74
|
+
if (!params)
|
|
75
|
+
return [];
|
|
76
|
+
return params.namedChildren.filter(p => p.text.trim()).map(p => p.text);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Return type: the type node that sits between the parameter list and the body.
|
|
80
|
+
* Kotlin's grammar emits it as `user_type` / `nullable_type` / `function_type`.
|
|
81
|
+
*/
|
|
82
|
+
function functionReturnType(node) {
|
|
83
|
+
const children = node.namedChildren;
|
|
84
|
+
const paramsIndex = children.findIndex(c => c.type === 'function_value_parameters');
|
|
85
|
+
if (paramsIndex === -1)
|
|
86
|
+
return undefined;
|
|
87
|
+
for (let i = paramsIndex + 1; i < children.length; i++) {
|
|
88
|
+
const c = children[i];
|
|
89
|
+
if (c.type === 'function_body')
|
|
90
|
+
break;
|
|
91
|
+
if (c.type === 'user_type' || c.type === 'nullable_type' || c.type === 'function_type') {
|
|
92
|
+
return c.text;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
/** Visibility modifier text (`private` / `internal` / `protected` / `public`), if any. */
|
|
98
|
+
function visibilityModifier(node) {
|
|
99
|
+
const modifiers = childByType(node, 'modifiers');
|
|
100
|
+
if (!modifiers)
|
|
101
|
+
return null;
|
|
102
|
+
return modifiers.namedChildren.find(c => c.type === 'visibility_modifier')?.text ?? null;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Kotlin declarations are `public` by default. We treat a declaration as
|
|
106
|
+
* "exported" (importable / part of the API) unless it is explicitly `private`
|
|
107
|
+
* or `internal`. `protected` members stay visible to subclasses, so we keep
|
|
108
|
+
* them. (Inverse of Java's "has a `public` modifier" check.)
|
|
109
|
+
*/
|
|
110
|
+
function isExported(node) {
|
|
111
|
+
const visibility = visibilityModifier(node);
|
|
112
|
+
return visibility !== 'private' && visibility !== 'internal';
|
|
113
|
+
}
|
|
114
|
+
// =============================================================================
|
|
115
|
+
// TRAVERSER
|
|
116
|
+
// =============================================================================
|
|
117
|
+
/**
|
|
118
|
+
* Kotlin AST traverser.
|
|
119
|
+
*
|
|
120
|
+
* Methods live inside `class_declaration` / `object_declaration` bodies
|
|
121
|
+
* (`class_body` / `enum_class_body`). `companion_object` is transparent — its
|
|
122
|
+
* members are traversed so their methods are captured (attributed to the
|
|
123
|
+
* enclosing class). Lambdas can appear in property initializers
|
|
124
|
+
* (`val f = { … }`).
|
|
125
|
+
*/
|
|
126
|
+
export class KotlinTraverser {
|
|
127
|
+
targetNodeTypes = ['function_declaration'];
|
|
128
|
+
containerTypes = ['class_declaration', 'object_declaration'];
|
|
129
|
+
declarationTypes = ['property_declaration'];
|
|
130
|
+
functionTypes = ['lambda_literal', 'anonymous_function'];
|
|
131
|
+
shouldExtractChildren(node) {
|
|
132
|
+
return this.containerTypes.includes(node.type);
|
|
133
|
+
}
|
|
134
|
+
isDeclarationWithFunction(node) {
|
|
135
|
+
return node.type === 'property_declaration' && propertyInitializerFunction(node) !== null;
|
|
136
|
+
}
|
|
137
|
+
getContainerBody(node) {
|
|
138
|
+
if (!this.containerTypes.includes(node.type))
|
|
139
|
+
return null;
|
|
140
|
+
return childByType(node, 'class_body') ?? childByType(node, 'enum_class_body');
|
|
141
|
+
}
|
|
142
|
+
shouldTraverseChildren(node) {
|
|
143
|
+
return (node.type === 'source_file' ||
|
|
144
|
+
node.type === 'class_body' ||
|
|
145
|
+
node.type === 'enum_class_body' ||
|
|
146
|
+
node.type === 'companion_object');
|
|
147
|
+
}
|
|
148
|
+
findParentContainerName(node) {
|
|
149
|
+
let current = node.parent;
|
|
150
|
+
while (current) {
|
|
151
|
+
if (current.type === 'class_declaration' || current.type === 'object_declaration') {
|
|
152
|
+
return declarationName(current);
|
|
153
|
+
}
|
|
154
|
+
current = current.parent;
|
|
155
|
+
}
|
|
156
|
+
return undefined;
|
|
157
|
+
}
|
|
158
|
+
findFunctionInDeclaration(node) {
|
|
159
|
+
if (node.type !== 'property_declaration') {
|
|
160
|
+
return { hasFunction: false, functionNode: null };
|
|
161
|
+
}
|
|
162
|
+
const fn = propertyInitializerFunction(node);
|
|
163
|
+
return fn
|
|
164
|
+
? { hasFunction: true, functionNode: fn }
|
|
165
|
+
: { hasFunction: false, functionNode: null };
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// =============================================================================
|
|
169
|
+
// EXPORT EXTRACTOR
|
|
170
|
+
// =============================================================================
|
|
171
|
+
/**
|
|
172
|
+
* Kotlin export extractor.
|
|
173
|
+
*
|
|
174
|
+
* Kotlin has no `export` keyword and is `public` by default — top-level
|
|
175
|
+
* declarations and (non-private/internal) members are importable. Interface
|
|
176
|
+
* members are implicitly public.
|
|
177
|
+
*/
|
|
178
|
+
export class KotlinExportExtractor {
|
|
179
|
+
extractExports(rootNode) {
|
|
180
|
+
const exports = [];
|
|
181
|
+
const seen = new Set();
|
|
182
|
+
const addExport = (name) => {
|
|
183
|
+
if (name && !seen.has(name)) {
|
|
184
|
+
seen.add(name);
|
|
185
|
+
exports.push(name);
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
rootNode.namedChildren.forEach(child => this.extractFromNode(child, addExport));
|
|
189
|
+
return exports;
|
|
190
|
+
}
|
|
191
|
+
extractFromNode(node, addExport) {
|
|
192
|
+
switch (node.type) {
|
|
193
|
+
case 'function_declaration':
|
|
194
|
+
if (isExported(node))
|
|
195
|
+
addExport(functionName(node));
|
|
196
|
+
break;
|
|
197
|
+
case 'property_declaration':
|
|
198
|
+
if (isExported(node))
|
|
199
|
+
addExport(this.propertyName(node));
|
|
200
|
+
break;
|
|
201
|
+
case 'class_declaration':
|
|
202
|
+
case 'object_declaration':
|
|
203
|
+
// A private/internal container exposes nothing — skip it and its members.
|
|
204
|
+
if (isExported(node)) {
|
|
205
|
+
addExport(declarationName(node));
|
|
206
|
+
this.extractMembers(node, addExport);
|
|
207
|
+
}
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
extractMembers(container, addExport) {
|
|
212
|
+
const body = childByType(container, 'class_body') ?? childByType(container, 'enum_class_body');
|
|
213
|
+
if (!body)
|
|
214
|
+
return;
|
|
215
|
+
const isInterface = hasTokenChild(container, 'interface');
|
|
216
|
+
body.namedChildren.forEach(member => {
|
|
217
|
+
if (member.type === 'function_declaration') {
|
|
218
|
+
if (isInterface || isExported(member))
|
|
219
|
+
addExport(functionName(member));
|
|
220
|
+
}
|
|
221
|
+
else if (member.type === 'property_declaration') {
|
|
222
|
+
if (isInterface || isExported(member))
|
|
223
|
+
addExport(this.propertyName(member));
|
|
224
|
+
}
|
|
225
|
+
else if (member.type === 'companion_object') {
|
|
226
|
+
// Companion members are reached via the enclosing class name → part of its API.
|
|
227
|
+
member.namedChildren
|
|
228
|
+
.filter(m => m.type === 'class_body')
|
|
229
|
+
.forEach(cb => cb.namedChildren
|
|
230
|
+
.filter(m => m.type === 'function_declaration' && isExported(m))
|
|
231
|
+
.forEach(m => addExport(functionName(m))));
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
propertyName(node) {
|
|
236
|
+
// property_declaration → variable_declaration → simple_identifier
|
|
237
|
+
const variable = childByType(node, 'variable_declaration');
|
|
238
|
+
return (variable ? childByType(variable, 'simple_identifier') : null)?.text;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// =============================================================================
|
|
242
|
+
// IMPORT EXTRACTOR
|
|
243
|
+
// =============================================================================
|
|
244
|
+
/**
|
|
245
|
+
* Kotlin/JVM standard-library prefixes that aren't useful as dependency edges.
|
|
246
|
+
* Note: `kotlinx.*` (coroutines, serialization, …) are separate external
|
|
247
|
+
* libraries, not the stdlib, so they are kept as real import edges.
|
|
248
|
+
*/
|
|
249
|
+
function isKotlinStdLib(importPath) {
|
|
250
|
+
return (importPath.startsWith('kotlin.') ||
|
|
251
|
+
importPath.startsWith('java.') ||
|
|
252
|
+
importPath.startsWith('javax.'));
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Kotlin import extractor.
|
|
256
|
+
*
|
|
257
|
+
* Handles `import a.b.C`, wildcard `import a.b.*`, and aliased
|
|
258
|
+
* `import a.b.C as D`. The grammar nests `import_header` nodes inside an
|
|
259
|
+
* `import_list`; the engine's import scan descends one level to reach them
|
|
260
|
+
* (see `collectImportNodes` in ast/symbols.ts). Standard-library imports
|
|
261
|
+
* (kotlin.*, kotlinx.*, java.*, javax.*) are filtered out.
|
|
262
|
+
*/
|
|
263
|
+
export class KotlinImportExtractor {
|
|
264
|
+
importNodeTypes = ['import_header'];
|
|
265
|
+
extractImportPath(node) {
|
|
266
|
+
const path = this.getImportPath(node);
|
|
267
|
+
if (!path || isKotlinStdLib(path))
|
|
268
|
+
return null;
|
|
269
|
+
return path;
|
|
270
|
+
}
|
|
271
|
+
processImportSymbols(node) {
|
|
272
|
+
const path = this.getImportPath(node);
|
|
273
|
+
if (!path || isKotlinStdLib(path))
|
|
274
|
+
return null;
|
|
275
|
+
const parts = path.split('.');
|
|
276
|
+
const lastPart = parts[parts.length - 1];
|
|
277
|
+
if (lastPart === '*') {
|
|
278
|
+
const packagePath = parts.slice(0, -1).join('.');
|
|
279
|
+
const packageName = parts[parts.length - 2];
|
|
280
|
+
return { importPath: packagePath, symbols: packageName ? [packageName] : [] };
|
|
281
|
+
}
|
|
282
|
+
// `import a.b.C as D` — the imported symbol is the alias name when present.
|
|
283
|
+
// import_alias wraps the alias as a `type_identifier` (its text is `as D`).
|
|
284
|
+
const alias = childByType(node, 'import_alias');
|
|
285
|
+
const aliasName = alias ? childByType(alias, 'type_identifier')?.text : undefined;
|
|
286
|
+
return { importPath: path, symbols: [aliasName ?? lastPart] };
|
|
287
|
+
}
|
|
288
|
+
getImportPath(node) {
|
|
289
|
+
const identifier = childByType(node, 'identifier');
|
|
290
|
+
if (!identifier)
|
|
291
|
+
return null;
|
|
292
|
+
const hasWildcard = hasTokenChild(node, 'wildcard_import');
|
|
293
|
+
return hasWildcard ? `${identifier.text}.*` : identifier.text;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
// =============================================================================
|
|
297
|
+
// SYMBOL EXTRACTOR
|
|
298
|
+
// =============================================================================
|
|
299
|
+
/**
|
|
300
|
+
* Kotlin symbol extractor.
|
|
301
|
+
*
|
|
302
|
+
* Handles `function_declaration`, `class_declaration` (class / interface / enum
|
|
303
|
+
* variants — distinguished by the keyword token), and `object_declaration`.
|
|
304
|
+
* `SymbolInfo.type` only has `function|method|class|interface`, so objects and
|
|
305
|
+
* enums map to `class` (keeping the keyword in the signature).
|
|
306
|
+
*
|
|
307
|
+
* Call sites: `call_expression` — `foo()` (simple_identifier) and `a.b.c()`
|
|
308
|
+
* (the member is the `simple_identifier` inside the trailing `navigation_suffix`).
|
|
309
|
+
*/
|
|
310
|
+
export class KotlinSymbolExtractor {
|
|
311
|
+
symbolNodeTypes = ['function_declaration', 'class_declaration', 'object_declaration'];
|
|
312
|
+
extractSymbol(node, content, parentClass) {
|
|
313
|
+
switch (node.type) {
|
|
314
|
+
case 'function_declaration':
|
|
315
|
+
return this.extractFunctionInfo(node, content, parentClass);
|
|
316
|
+
case 'class_declaration':
|
|
317
|
+
return this.extractClassInfo(node);
|
|
318
|
+
case 'object_declaration':
|
|
319
|
+
return this.extractObjectInfo(node);
|
|
320
|
+
default:
|
|
321
|
+
return null;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
extractCallSite(node) {
|
|
325
|
+
if (node.type !== 'call_expression')
|
|
326
|
+
return null;
|
|
327
|
+
const line = node.startPosition.row + 1;
|
|
328
|
+
const callee = node.namedChild(0);
|
|
329
|
+
if (!callee)
|
|
330
|
+
return null;
|
|
331
|
+
let name;
|
|
332
|
+
if (callee.type === 'simple_identifier') {
|
|
333
|
+
name = callee.text; // foo()
|
|
334
|
+
}
|
|
335
|
+
else if (callee.type === 'navigation_expression') {
|
|
336
|
+
// a.b.c() — the called member is the simple_identifier in the last navigation_suffix
|
|
337
|
+
const suffix = callee.namedChildren.filter(c => c.type === 'navigation_suffix').at(-1);
|
|
338
|
+
name = (suffix ? childByType(suffix, 'simple_identifier') : null)?.text;
|
|
339
|
+
}
|
|
340
|
+
if (!name)
|
|
341
|
+
return null;
|
|
342
|
+
return { symbol: name, line, key: `${name}:${line}` };
|
|
343
|
+
}
|
|
344
|
+
extractFunctionInfo(node, content, parentClass) {
|
|
345
|
+
const name = functionName(node);
|
|
346
|
+
if (!name)
|
|
347
|
+
return null;
|
|
348
|
+
return {
|
|
349
|
+
name,
|
|
350
|
+
type: parentClass ? 'method' : 'function',
|
|
351
|
+
startLine: node.startPosition.row + 1,
|
|
352
|
+
endLine: node.endPosition.row + 1,
|
|
353
|
+
parentClass,
|
|
354
|
+
signature: functionSignature(node, content),
|
|
355
|
+
parameters: functionParameters(node),
|
|
356
|
+
returnType: functionReturnType(node),
|
|
357
|
+
complexity: calculateComplexity(node),
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
extractClassInfo(node) {
|
|
361
|
+
const name = declarationName(node);
|
|
362
|
+
if (!name)
|
|
363
|
+
return null;
|
|
364
|
+
if (hasTokenChild(node, 'interface')) {
|
|
365
|
+
return this.makeSymbol(node, name, 'interface', `interface ${name}`);
|
|
366
|
+
}
|
|
367
|
+
if (hasTokenChild(node, 'enum')) {
|
|
368
|
+
return this.makeSymbol(node, name, 'class', `enum class ${name}`);
|
|
369
|
+
}
|
|
370
|
+
return this.makeSymbol(node, name, 'class', `class ${name}`);
|
|
371
|
+
}
|
|
372
|
+
extractObjectInfo(node) {
|
|
373
|
+
const name = declarationName(node);
|
|
374
|
+
if (!name)
|
|
375
|
+
return null;
|
|
376
|
+
return this.makeSymbol(node, name, 'class', `object ${name}`);
|
|
377
|
+
}
|
|
378
|
+
makeSymbol(node, name, type, signature) {
|
|
379
|
+
return {
|
|
380
|
+
name,
|
|
381
|
+
type,
|
|
382
|
+
startLine: node.startPosition.row + 1,
|
|
383
|
+
endLine: node.endPosition.row + 1,
|
|
384
|
+
signature,
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
// =============================================================================
|
|
389
|
+
// LANGUAGE DEFINITION
|
|
390
|
+
// =============================================================================
|
|
391
|
+
export const kotlinDefinition = {
|
|
392
|
+
id: 'kotlin',
|
|
393
|
+
extensions: ['kt'],
|
|
394
|
+
grammar: Kotlin,
|
|
395
|
+
traverser: new KotlinTraverser(),
|
|
396
|
+
exportExtractor: new KotlinExportExtractor(),
|
|
397
|
+
importExtractor: new KotlinImportExtractor(),
|
|
398
|
+
symbolExtractor: new KotlinSymbolExtractor(),
|
|
399
|
+
complexity: {
|
|
400
|
+
decisionPoints: [
|
|
401
|
+
'if_expression',
|
|
402
|
+
'when_entry',
|
|
403
|
+
'for_statement',
|
|
404
|
+
'while_statement',
|
|
405
|
+
'do_while_statement',
|
|
406
|
+
'catch_block',
|
|
407
|
+
'elvis_expression',
|
|
408
|
+
'conjunction_expression', // &&
|
|
409
|
+
'disjunction_expression', // ||
|
|
410
|
+
],
|
|
411
|
+
nestingTypes: [
|
|
412
|
+
'if_expression',
|
|
413
|
+
'when_expression',
|
|
414
|
+
'for_statement',
|
|
415
|
+
'while_statement',
|
|
416
|
+
'do_while_statement',
|
|
417
|
+
'catch_block',
|
|
418
|
+
'lambda_literal',
|
|
419
|
+
'anonymous_function',
|
|
420
|
+
],
|
|
421
|
+
nonNestingTypes: ['when_entry', 'elvis_expression'],
|
|
422
|
+
lambdaTypes: ['lambda_literal', 'anonymous_function'],
|
|
423
|
+
operatorSymbols: new Set([
|
|
424
|
+
'+',
|
|
425
|
+
'-',
|
|
426
|
+
'*',
|
|
427
|
+
'/',
|
|
428
|
+
'%',
|
|
429
|
+
'==',
|
|
430
|
+
'!=',
|
|
431
|
+
'===',
|
|
432
|
+
'!==',
|
|
433
|
+
'<',
|
|
434
|
+
'>',
|
|
435
|
+
'<=',
|
|
436
|
+
'>=',
|
|
437
|
+
'=',
|
|
438
|
+
'+=',
|
|
439
|
+
'-=',
|
|
440
|
+
'*=',
|
|
441
|
+
'/=',
|
|
442
|
+
'%=',
|
|
443
|
+
'&&',
|
|
444
|
+
'||',
|
|
445
|
+
'!',
|
|
446
|
+
'?:',
|
|
447
|
+
'?.',
|
|
448
|
+
'.',
|
|
449
|
+
'::',
|
|
450
|
+
'->',
|
|
451
|
+
'..',
|
|
452
|
+
'(',
|
|
453
|
+
')',
|
|
454
|
+
'[',
|
|
455
|
+
']',
|
|
456
|
+
'{',
|
|
457
|
+
'}',
|
|
458
|
+
]),
|
|
459
|
+
operatorKeywords: new Set([
|
|
460
|
+
'if',
|
|
461
|
+
'else',
|
|
462
|
+
'when',
|
|
463
|
+
'for',
|
|
464
|
+
'while',
|
|
465
|
+
'do',
|
|
466
|
+
'return',
|
|
467
|
+
'break',
|
|
468
|
+
'continue',
|
|
469
|
+
'throw',
|
|
470
|
+
'try',
|
|
471
|
+
'catch',
|
|
472
|
+
'finally',
|
|
473
|
+
'fun',
|
|
474
|
+
'class',
|
|
475
|
+
'object',
|
|
476
|
+
'interface',
|
|
477
|
+
'enum',
|
|
478
|
+
'val',
|
|
479
|
+
'var',
|
|
480
|
+
'is',
|
|
481
|
+
'as',
|
|
482
|
+
'in',
|
|
483
|
+
'by',
|
|
484
|
+
'import',
|
|
485
|
+
'package',
|
|
486
|
+
'override',
|
|
487
|
+
'abstract',
|
|
488
|
+
'open',
|
|
489
|
+
'sealed',
|
|
490
|
+
'data',
|
|
491
|
+
'suspend',
|
|
492
|
+
'companion',
|
|
493
|
+
'private',
|
|
494
|
+
'internal',
|
|
495
|
+
'protected',
|
|
496
|
+
'public',
|
|
497
|
+
'this',
|
|
498
|
+
'super',
|
|
499
|
+
'null',
|
|
500
|
+
]),
|
|
501
|
+
},
|
|
502
|
+
symbols: {
|
|
503
|
+
callExpressionTypes: ['call_expression'],
|
|
504
|
+
},
|
|
505
|
+
};
|
|
506
|
+
//# sourceMappingURL=kotlin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../../src/ast/languages/kotlin.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import type { LanguageDefinition } from './types.js';
|
|
|
4
4
|
* SupportedLanguage type is derived from this array.
|
|
5
5
|
* To add a new language: add its ID here, then add its definition to `definitions` below.
|
|
6
6
|
*/
|
|
7
|
-
export declare const LANGUAGE_IDS: readonly ["typescript", "javascript", "php", "python", "rust", "go", "java", "csharp", "ruby"];
|
|
7
|
+
export declare const LANGUAGE_IDS: readonly ["typescript", "javascript", "php", "python", "rust", "go", "java", "csharp", "ruby", "kotlin"];
|
|
8
8
|
export type SupportedLanguage = (typeof LANGUAGE_IDS)[number];
|
|
9
9
|
/**
|
|
10
10
|
* Get the full language definition for a supported language.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/ast/languages/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/ast/languages/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA6BrD;;;;GAIG;AACH,eAAO,MAAM,YAAY,0GAWf,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAmC9D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,iBAAiB,GAAG,kBAAkB,CAM3E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAGzE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,kBAAkB,EAAE,CAE/D;AAQD,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAKjD"}
|
|
@@ -8,6 +8,7 @@ import { goDefinition } from './go.js';
|
|
|
8
8
|
import { javaDefinition } from './java.js';
|
|
9
9
|
import { csharpDefinition } from './csharp.js';
|
|
10
10
|
import { rubyDefinition } from './ruby.js';
|
|
11
|
+
import { kotlinDefinition } from './kotlin.js';
|
|
11
12
|
/**
|
|
12
13
|
* All registered language definitions.
|
|
13
14
|
* To add a new language, create a definition file and add it here.
|
|
@@ -22,6 +23,7 @@ const definitions = [
|
|
|
22
23
|
javaDefinition,
|
|
23
24
|
csharpDefinition,
|
|
24
25
|
rubyDefinition,
|
|
26
|
+
kotlinDefinition,
|
|
25
27
|
];
|
|
26
28
|
/**
|
|
27
29
|
* Canonical list of supported language IDs.
|
|
@@ -38,6 +40,7 @@ export const LANGUAGE_IDS = [
|
|
|
38
40
|
'java',
|
|
39
41
|
'csharp',
|
|
40
42
|
'ruby',
|
|
43
|
+
'kotlin',
|
|
41
44
|
];
|
|
42
45
|
/**
|
|
43
46
|
* Registry keyed by language id.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/ast/languages/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/ast/languages/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/ast/symbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOhE;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,UAAU,GAAG,IAAI,CAQnB;
|
|
1
|
+
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/ast/symbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOhE;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,UAAU,GAAG,IAAI,CAQnB;AAuDD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,CAAC,UAAU,EAC3B,QAAQ,CAAC,EAAE,iBAAiB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,EAAE,CAGV;AA6CD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,CAAC,UAAU,EAC3B,QAAQ,CAAC,EAAE,iBAAiB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAG1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,CAAC,UAAU,EAC3B,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,MAAM,EAAE,CAKV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAarE"}
|
package/dist/ast/symbols.js
CHANGED
|
@@ -19,6 +19,31 @@ export function extractSymbolInfo(node, content, parentClass, language) {
|
|
|
19
19
|
}
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Collect the import nodes to process from the root.
|
|
24
|
+
*
|
|
25
|
+
* Most grammars place import statements as direct children of the root node, but
|
|
26
|
+
* some wrap them in a container — e.g. Kotlin's `import_list` holds the
|
|
27
|
+
* `import_header` children. We therefore also descend one level into a
|
|
28
|
+
* non-matching direct child to find imports nested inside such a container. This
|
|
29
|
+
* is backward compatible: languages whose import nodes are already direct
|
|
30
|
+
* children match in the first branch and are never descended into.
|
|
31
|
+
*/
|
|
32
|
+
function collectImportNodes(rootNode, nodeTypeSet) {
|
|
33
|
+
const nodes = [];
|
|
34
|
+
for (const child of rootNode.namedChildren) {
|
|
35
|
+
if (nodeTypeSet.has(child.type)) {
|
|
36
|
+
nodes.push(child);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
for (const grandchild of child.namedChildren) {
|
|
40
|
+
if (nodeTypeSet.has(grandchild.type))
|
|
41
|
+
nodes.push(grandchild);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return nodes;
|
|
46
|
+
}
|
|
22
47
|
/**
|
|
23
48
|
* Extract import paths using the language-specific extractor.
|
|
24
49
|
*
|
|
@@ -32,10 +57,8 @@ function extractImportPaths(rootNode, importExtractor, filepath) {
|
|
|
32
57
|
return [];
|
|
33
58
|
const imports = [];
|
|
34
59
|
const nodeTypeSet = new Set(importExtractor.importNodeTypes);
|
|
35
|
-
for (const
|
|
36
|
-
|
|
37
|
-
continue;
|
|
38
|
-
const result = importExtractor.extractImportPath(child);
|
|
60
|
+
for (const node of collectImportNodes(rootNode, nodeTypeSet)) {
|
|
61
|
+
const result = importExtractor.extractImportPath(node);
|
|
39
62
|
if (result)
|
|
40
63
|
imports.push(filepath ? resolveRelativeImport(filepath, result) : result);
|
|
41
64
|
}
|
|
@@ -79,9 +102,7 @@ function extractSymbolsWithExtractor(rootNode, importExtractor, filepath) {
|
|
|
79
102
|
return {};
|
|
80
103
|
const importedSymbols = {};
|
|
81
104
|
const nodeTypeSet = new Set(importExtractor.importNodeTypes);
|
|
82
|
-
for (const node of rootNode
|
|
83
|
-
if (!nodeTypeSet.has(node.type))
|
|
84
|
-
continue;
|
|
105
|
+
for (const node of collectImportNodes(rootNode, nodeTypeSet)) {
|
|
85
106
|
const result = importExtractor.processImportSymbols(node);
|
|
86
107
|
if (result) {
|
|
87
108
|
const key = filepath ? resolveRelativeImport(filepath, result.importPath) : result.importPath;
|
package/dist/ast/symbols.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/ast/symbols.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAuB,EACvB,OAAe,EACf,WAAoB,EACpB,QAAiB;IAEjB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAA6B,CAAC,CAAC;QACpE,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CACzB,QAA2B,EAC3B,eAAsD,EACtD,QAAiB;IAEjB,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAE7D,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/ast/symbols.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAuB,EACvB,OAAe,EACf,WAAoB,EACpB,QAAiB;IAEjB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAA6B,CAAC,CAAC;QACpE,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CACzB,QAA2B,EAC3B,WAAwB;IAExB,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC3C,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC7C,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CACzB,QAA2B,EAC3B,eAAsD,EACtD,QAAiB;IAEjB,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAE7D,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,QAA2B,EAC3B,QAA4B,EAC5B,QAAiB;IAEjB,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,GAA6B,EAC7B,UAAkB,EAClB,OAAiB;IAEjB,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IACjC,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,2BAA2B,CAClC,QAA2B,EAC3B,eAAsD,EACtD,QAAiB;IAEjB,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,eAAe,GAA6B,EAAE,CAAC;IACrD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAE7D,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAC9F,eAAe,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAA2B,EAC3B,QAA4B,EAC5B,QAAiB;IAEjB,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,2BAA2B,CAAC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,cAAc,CAC5B,QAA2B,EAC3B,QAA4B;IAE5B,+EAA+E;IAC/E,MAAM,IAAI,GAAsB,QAAQ,IAAI,YAAY,CAAC;IACzD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAuB,EACvB,QAA4B;IAE5B,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEzB,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;IAC1C,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACnE,MAAM,SAAS,GAAwE,EAAE,CAAC;IAC1F,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IACtE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,kBAAkB,EAAE,wBAAwB;IAC5C,OAAO,EAAE,SAAS;IAClB,0BAA0B,EAAE,gBAAgB;CAC7C,CAAC,CAAC;AAEH,SAAS,oBAAoB,CAAC,QAA2B;IACvD,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACvC,IAAI,UAAU,KAAK,sBAAsB;YAAE,OAAO,KAAK,CAAC;QACxD,oEAAoE;QACpE,IAAI,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YACzB,SAAS;QACX,CAAC;QACD,MAAM;IACR,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,IAAuB,EACvB,SAA8E,EAC9E,IAAiB,EACjB,aAA0B,EAC1B,SAAkC;IAElC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,gBAAgB,EAAE,oBAAoB,CAAC,IAAI,CAAC;aAC7C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-extractor.d.ts","sourceRoot":"","sources":["../src/symbol-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"symbol-extractor.d.ts","sourceRoot":"","sources":["../src/symbol-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AA6DD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAUlF"}
|
package/dist/symbol-extractor.js
CHANGED
|
@@ -41,6 +41,16 @@ const LANGUAGE_EXTRACTORS = {
|
|
|
41
41
|
},
|
|
42
42
|
ruby: { functions: extractRubyFunctions, classes: extractRubyClasses },
|
|
43
43
|
rb: { functions: extractRubyFunctions, classes: extractRubyClasses },
|
|
44
|
+
kotlin: {
|
|
45
|
+
functions: extractKotlinFunctions,
|
|
46
|
+
classes: extractKotlinClasses,
|
|
47
|
+
interfaces: extractKotlinInterfaces,
|
|
48
|
+
},
|
|
49
|
+
kt: {
|
|
50
|
+
functions: extractKotlinFunctions,
|
|
51
|
+
classes: extractKotlinClasses,
|
|
52
|
+
interfaces: extractKotlinInterfaces,
|
|
53
|
+
},
|
|
44
54
|
rust: { functions: extractRustFunctions },
|
|
45
55
|
rs: { functions: extractRustFunctions },
|
|
46
56
|
};
|
|
@@ -280,6 +290,41 @@ function extractRubyClasses(content) {
|
|
|
280
290
|
}
|
|
281
291
|
return Array.from(names);
|
|
282
292
|
}
|
|
293
|
+
// Kotlin Functions
|
|
294
|
+
function extractKotlinFunctions(content) {
|
|
295
|
+
const names = new Set();
|
|
296
|
+
// Function definitions, capturing the name immediately before the parameter
|
|
297
|
+
// list. The lazy `[^(\n]*?` skips optional generic params (incl. bounds like
|
|
298
|
+
// `<T : Comparable<T>>`) and extension receivers (`fun String.slugify()`).
|
|
299
|
+
const functionMatches = content.matchAll(/\bfun\s+[^(\n]*?(\w+)\s*\(/g);
|
|
300
|
+
for (const match of functionMatches) {
|
|
301
|
+
names.add(match[1]);
|
|
302
|
+
}
|
|
303
|
+
return Array.from(names);
|
|
304
|
+
}
|
|
305
|
+
function extractKotlinClasses(content) {
|
|
306
|
+
const names = new Set();
|
|
307
|
+
// Class definitions: class Name, data/sealed/enum/abstract/open class Name
|
|
308
|
+
const classMatches = content.matchAll(/\b(?:data|sealed|enum|abstract|open)?\s*class\s+(\w+)/g);
|
|
309
|
+
for (const match of classMatches) {
|
|
310
|
+
names.add(match[1]);
|
|
311
|
+
}
|
|
312
|
+
// Object declarations (singletons): object Name
|
|
313
|
+
const objectMatches = content.matchAll(/\bobject\s+(\w+)/g);
|
|
314
|
+
for (const match of objectMatches) {
|
|
315
|
+
names.add(match[1]);
|
|
316
|
+
}
|
|
317
|
+
return Array.from(names);
|
|
318
|
+
}
|
|
319
|
+
function extractKotlinInterfaces(content) {
|
|
320
|
+
const names = new Set();
|
|
321
|
+
// Interface definitions: interface Name
|
|
322
|
+
const interfaceMatches = content.matchAll(/\binterface\s+(\w+)/g);
|
|
323
|
+
for (const match of interfaceMatches) {
|
|
324
|
+
names.add(match[1]);
|
|
325
|
+
}
|
|
326
|
+
return Array.from(names);
|
|
327
|
+
}
|
|
283
328
|
// Rust Functions
|
|
284
329
|
function extractRustFunctions(content) {
|
|
285
330
|
const names = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-extractor.js","sourceRoot":"","sources":["../src/symbol-extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"symbol-extractor.js","sourceRoot":"","sources":["../src/symbol-extractor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liendev/parser",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.47.0",
|
|
4
4
|
"description": "AST parsing, complexity analysis, and semantic chunking for Lien",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"tree-sitter-go": "^0.23.4",
|
|
28
28
|
"tree-sitter-java": "^0.23.5",
|
|
29
29
|
"tree-sitter-javascript": "0.23.1",
|
|
30
|
+
"tree-sitter-kotlin": "^0.3.8",
|
|
30
31
|
"tree-sitter-php": "^0.24.2",
|
|
31
32
|
"tree-sitter-python": "^0.25.0",
|
|
32
33
|
"tree-sitter-ruby": "^0.23.1",
|