@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 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 Ruby
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, Kotlin, Scala, and Markdown.
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;AA2BrD;;;;GAIG;AACH,eAAO,MAAM,YAAY,gGAUf,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"}
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":"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"}
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;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,CAAC,UAAU,EAC3B,QAAQ,CAAC,EAAE,iBAAiB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,EAAE,CAGV;AA+CD;;;;;;;;;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"}
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"}
@@ -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 child of rootNode.namedChildren) {
36
- if (!nodeTypeSet.has(child.type))
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.namedChildren) {
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;
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/ast/symbols.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/ast/symbols.ts"],"names":[],"mappings":"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"}
@@ -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;AAmDD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAUlF"}
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"}
@@ -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.46.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",