@liendev/parser 0.45.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.
@@ -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"];
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;AAyBrD;;;;GAIG;AACH,eAAO,MAAM,YAAY,wFASf,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"}
@@ -7,6 +7,8 @@ import { rustDefinition } from './rust.js';
7
7
  import { goDefinition } from './go.js';
8
8
  import { javaDefinition } from './java.js';
9
9
  import { csharpDefinition } from './csharp.js';
10
+ import { rubyDefinition } from './ruby.js';
11
+ import { kotlinDefinition } from './kotlin.js';
10
12
  /**
11
13
  * All registered language definitions.
12
14
  * To add a new language, create a definition file and add it here.
@@ -20,6 +22,8 @@ const definitions = [
20
22
  goDefinition,
21
23
  javaDefinition,
22
24
  csharpDefinition,
25
+ rubyDefinition,
26
+ kotlinDefinition,
23
27
  ];
24
28
  /**
25
29
  * Canonical list of supported language IDs.
@@ -35,6 +39,8 @@ export const LANGUAGE_IDS = [
35
39
  'go',
36
40
  'java',
37
41
  'csharp',
42
+ 'ruby',
43
+ 'kotlin',
38
44
  ];
39
45
  /**
40
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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"}
@@ -0,0 +1,80 @@
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
+ * Ruby AST traverser
8
+ *
9
+ * Ruby structure:
10
+ * - Methods are defined with `def` (`method`) or `def self.x` (`singleton_method`)
11
+ * - Classes and modules are containers whose methods we extract
12
+ * - Container bodies are `body_statement` nodes
13
+ */
14
+ export declare class RubyTraverser implements LanguageTraverser {
15
+ targetNodeTypes: string[];
16
+ containerTypes: string[];
17
+ declarationTypes: string[];
18
+ functionTypes: string[];
19
+ shouldExtractChildren(node: Parser.SyntaxNode): boolean;
20
+ isDeclarationWithFunction(_node: Parser.SyntaxNode): boolean;
21
+ getContainerBody(node: Parser.SyntaxNode): Parser.SyntaxNode | null;
22
+ shouldTraverseChildren(node: Parser.SyntaxNode): boolean;
23
+ findParentContainerName(node: Parser.SyntaxNode): string | undefined;
24
+ findFunctionInDeclaration(_node: Parser.SyntaxNode): DeclarationFunctionInfo;
25
+ }
26
+ /**
27
+ * Ruby export extractor
28
+ *
29
+ * Ruby has no explicit export syntax. All top-level (module-level) definitions
30
+ * are considered exported / loadable by other files:
31
+ * - Classes: `class User; end`
32
+ * - Modules: `module Billing; end`
33
+ * - Methods: `def helper; end` and `def self.helper; end`
34
+ * - Constants: `VERSION = '1.0'`
35
+ */
36
+ export declare class RubyExportExtractor implements LanguageExportExtractor {
37
+ private readonly exportableTypes;
38
+ extractExports(rootNode: Parser.SyntaxNode): string[];
39
+ }
40
+ /**
41
+ * Ruby import extractor
42
+ *
43
+ * Handles require-like calls:
44
+ * - require 'json'
45
+ * - require_relative './foo'
46
+ * - load 'config.rb'
47
+ * - autoload :Bar, 'bar'
48
+ */
49
+ export declare class RubyImportExtractor 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
+ }
57
+ /**
58
+ * Ruby symbol extractor
59
+ *
60
+ * Handles:
61
+ * - method (def foo)
62
+ * - singleton_method (def self.foo)
63
+ * - class (class Foo)
64
+ * - module (module Foo) — mapped to the 'class' symbol type
65
+ *
66
+ * Call sites: call (foo(), obj.method())
67
+ */
68
+ export declare class RubySymbolExtractor implements LanguageSymbolExtractor {
69
+ readonly symbolNodeTypes: string[];
70
+ extractSymbol(node: Parser.SyntaxNode, content: string, parentClass?: string): SymbolInfo | null;
71
+ extractCallSite(node: Parser.SyntaxNode): {
72
+ symbol: string;
73
+ line: number;
74
+ key: string;
75
+ } | null;
76
+ private extractMethodInfo;
77
+ private extractClassInfo;
78
+ }
79
+ export declare const rubyDefinition: LanguageDefinition;
80
+ //# sourceMappingURL=ruby.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../../src/ast/languages/ruby.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;AAmDhC;;;;;;;GAOG;AACH,qBAAa,aAAc,YAAW,iBAAiB;IACrD,eAAe,WAAkC;IAEjD,cAAc,WAGZ;IAEF,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAEhC,aAAa,WAAkC;IAE/C,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO;IAIvD,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO;IAI5D,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI;IAOnE,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO;IASxD,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS;IAYpE,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,GAAG,uBAAuB;CAM7E;AAMD;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,YAAW,uBAAuB;IACjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8D;IAE9F,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,EAAE;CA4BtD;AAMD;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,YAAW,uBAAuB;IAEjE,QAAQ,CAAC,eAAe,WAAY;IAEpC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,IAAI;IAIzD,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI;CAKhG;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,mBAAoB,YAAW,uBAAuB;IACjE,QAAQ,CAAC,eAAe,WAAqD;IAE7E,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAchG,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;IAa9F,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,gBAAgB;CAqBzB;AAMD,eAAO,MAAM,cAAc,EAAE,kBAuI5B,CAAC"}
@@ -0,0 +1,377 @@
1
+ import Ruby from 'tree-sitter-ruby';
2
+ import { extractSignature, extractParameters } from '../extractors/symbol-helpers.js';
3
+ import { calculateComplexity } from '../complexity/index.js';
4
+ // =============================================================================
5
+ // SHARED HELPERS
6
+ // =============================================================================
7
+ /**
8
+ * Ruby "import" methods. Unlike most languages, Ruby has no import *statement* —
9
+ * dependencies are loaded via ordinary method calls (`require 'json'`,
10
+ * `require_relative './foo'`, `load`, `autoload`). The grammar parses these as
11
+ * `call` nodes, so the import extractor filters call nodes by their method name.
12
+ */
13
+ const REQUIRE_METHODS = new Set(['require', 'require_relative', 'load', 'autoload']);
14
+ /**
15
+ * Return the content of the first string literal in an `argument_list`
16
+ * (e.g. the `'json'` in `require 'json'`). Returns null if absent or empty.
17
+ */
18
+ function firstStringArgument(argsNode) {
19
+ if (!argsNode)
20
+ return null;
21
+ const stringNode = argsNode.namedChildren.find(c => c.type === 'string');
22
+ const contentNode = stringNode?.namedChildren.find(c => c.type === 'string_content');
23
+ return contentNode?.text ?? null;
24
+ }
25
+ /**
26
+ * Extract the require path from a `call` node if it is a require-like call,
27
+ * otherwise null (so non-import calls are skipped by the import extractor).
28
+ */
29
+ function extractRequirePath(node) {
30
+ if (node.type !== 'call')
31
+ return null;
32
+ const method = node.childForFieldName('method');
33
+ if (!method || !REQUIRE_METHODS.has(method.text))
34
+ return null;
35
+ return firstStringArgument(node.childForFieldName('arguments'));
36
+ }
37
+ /**
38
+ * Reduce a require path to a bare module name for the imported-symbols map.
39
+ * `'../lib/foo'` → `foo`, `'active_record'` → `active_record`.
40
+ */
41
+ function moduleBasename(path) {
42
+ const base = path.split('/').pop() ?? path;
43
+ return base.replace(/\.rb$/, '');
44
+ }
45
+ // =============================================================================
46
+ // TRAVERSER
47
+ // =============================================================================
48
+ /**
49
+ * Ruby AST traverser
50
+ *
51
+ * Ruby structure:
52
+ * - Methods are defined with `def` (`method`) or `def self.x` (`singleton_method`)
53
+ * - Classes and modules are containers whose methods we extract
54
+ * - Container bodies are `body_statement` nodes
55
+ */
56
+ export class RubyTraverser {
57
+ targetNodeTypes = ['method', 'singleton_method'];
58
+ containerTypes = [
59
+ 'class', // We extract methods, not the class itself
60
+ 'singleton_class', // `class << self`
61
+ ];
62
+ declarationTypes = [];
63
+ functionTypes = ['method', 'singleton_method'];
64
+ shouldExtractChildren(node) {
65
+ return this.containerTypes.includes(node.type);
66
+ }
67
+ isDeclarationWithFunction(_node) {
68
+ return false;
69
+ }
70
+ getContainerBody(node) {
71
+ if (this.containerTypes.includes(node.type)) {
72
+ return node.childForFieldName('body');
73
+ }
74
+ return null;
75
+ }
76
+ shouldTraverseChildren(node) {
77
+ // `module` is treated as a transparent namespace: we traverse *through* it
78
+ // (without it counting as a container nesting level) so that the common
79
+ // `module → class → method` shape still yields method chunks. The shared
80
+ // chunker caps extractable targets at one container deep, and a Ruby class
81
+ // wrapped in a module would otherwise push methods out of range.
82
+ return node.type === 'program' || node.type === 'body_statement' || node.type === 'module';
83
+ }
84
+ findParentContainerName(node) {
85
+ let current = node.parent;
86
+ while (current) {
87
+ if (current.type === 'class' || current.type === 'module') {
88
+ const nameNode = current.childForFieldName('name');
89
+ return nameNode?.text;
90
+ }
91
+ current = current.parent;
92
+ }
93
+ return undefined;
94
+ }
95
+ findFunctionInDeclaration(_node) {
96
+ return {
97
+ hasFunction: false,
98
+ functionNode: null,
99
+ };
100
+ }
101
+ }
102
+ // =============================================================================
103
+ // EXPORT EXTRACTOR
104
+ // =============================================================================
105
+ /**
106
+ * Ruby export extractor
107
+ *
108
+ * Ruby has no explicit export syntax. All top-level (module-level) definitions
109
+ * are considered exported / loadable by other files:
110
+ * - Classes: `class User; end`
111
+ * - Modules: `module Billing; end`
112
+ * - Methods: `def helper; end` and `def self.helper; end`
113
+ * - Constants: `VERSION = '1.0'`
114
+ */
115
+ export class RubyExportExtractor {
116
+ exportableTypes = new Set(['method', 'singleton_method', 'class', 'module']);
117
+ extractExports(rootNode) {
118
+ const exports = [];
119
+ const seen = new Set();
120
+ const addExport = (name) => {
121
+ if (name && !seen.has(name)) {
122
+ seen.add(name);
123
+ exports.push(name);
124
+ }
125
+ };
126
+ rootNode.namedChildren.forEach(child => {
127
+ if (this.exportableTypes.has(child.type)) {
128
+ addExport(child.childForFieldName('name')?.text);
129
+ return;
130
+ }
131
+ // Top-level constant assignment: `CONST = ...`
132
+ if (child.type === 'assignment') {
133
+ const left = child.childForFieldName('left');
134
+ if (left?.type === 'constant') {
135
+ addExport(left.text);
136
+ }
137
+ }
138
+ });
139
+ return exports;
140
+ }
141
+ }
142
+ // =============================================================================
143
+ // IMPORT EXTRACTOR
144
+ // =============================================================================
145
+ /**
146
+ * Ruby import extractor
147
+ *
148
+ * Handles require-like calls:
149
+ * - require 'json'
150
+ * - require_relative './foo'
151
+ * - load 'config.rb'
152
+ * - autoload :Bar, 'bar'
153
+ */
154
+ export class RubyImportExtractor {
155
+ // Require statements are method calls in Ruby; we filter by method name.
156
+ importNodeTypes = ['call'];
157
+ extractImportPath(node) {
158
+ return extractRequirePath(node);
159
+ }
160
+ processImportSymbols(node) {
161
+ const importPath = extractRequirePath(node);
162
+ if (!importPath)
163
+ return null;
164
+ return { importPath, symbols: [moduleBasename(importPath)] };
165
+ }
166
+ }
167
+ // =============================================================================
168
+ // SYMBOL EXTRACTOR
169
+ // =============================================================================
170
+ /**
171
+ * Ruby symbol extractor
172
+ *
173
+ * Handles:
174
+ * - method (def foo)
175
+ * - singleton_method (def self.foo)
176
+ * - class (class Foo)
177
+ * - module (module Foo) — mapped to the 'class' symbol type
178
+ *
179
+ * Call sites: call (foo(), obj.method())
180
+ */
181
+ export class RubySymbolExtractor {
182
+ symbolNodeTypes = ['method', 'singleton_method', 'class', 'module'];
183
+ extractSymbol(node, content, parentClass) {
184
+ switch (node.type) {
185
+ case 'method':
186
+ case 'singleton_method':
187
+ return this.extractMethodInfo(node, content, parentClass);
188
+ case 'class':
189
+ return this.extractClassInfo(node, 'class');
190
+ case 'module':
191
+ return this.extractClassInfo(node, 'module');
192
+ default:
193
+ return null;
194
+ }
195
+ }
196
+ extractCallSite(node) {
197
+ if (node.type !== 'call')
198
+ return null;
199
+ const line = node.startPosition.row + 1;
200
+ // For both `foo(...)` and `obj.foo(...)` the called name is the `method` field.
201
+ const methodNode = node.childForFieldName('method');
202
+ if (methodNode?.type === 'identifier') {
203
+ return { symbol: methodNode.text, line, key: `${methodNode.text}:${line}` };
204
+ }
205
+ return null;
206
+ }
207
+ extractMethodInfo(node, content, parentClass) {
208
+ const nameNode = node.childForFieldName('name');
209
+ if (!nameNode)
210
+ return null;
211
+ return {
212
+ name: nameNode.text,
213
+ type: parentClass ? 'method' : 'function',
214
+ startLine: node.startPosition.row + 1,
215
+ endLine: node.endPosition.row + 1,
216
+ parentClass,
217
+ signature: extractSignature(node, content),
218
+ parameters: extractParameters(node, content),
219
+ complexity: calculateComplexity(node),
220
+ };
221
+ }
222
+ extractClassInfo(node, keyword) {
223
+ const nameNode = node.childForFieldName('name');
224
+ if (!nameNode)
225
+ return null;
226
+ // superclass node text includes the leading `<` (e.g. `< Base`).
227
+ const superclass = node.childForFieldName('superclass');
228
+ const signature = superclass
229
+ ? `${keyword} ${nameNode.text} ${superclass.text}`
230
+ : `${keyword} ${nameNode.text}`;
231
+ return {
232
+ name: nameNode.text,
233
+ type: 'class',
234
+ startLine: node.startPosition.row + 1,
235
+ endLine: node.endPosition.row + 1,
236
+ signature,
237
+ };
238
+ }
239
+ }
240
+ // =============================================================================
241
+ // LANGUAGE DEFINITION
242
+ // =============================================================================
243
+ export const rubyDefinition = {
244
+ id: 'ruby',
245
+ extensions: ['rb'],
246
+ grammar: Ruby,
247
+ traverser: new RubyTraverser(),
248
+ exportExtractor: new RubyExportExtractor(),
249
+ importExtractor: new RubyImportExtractor(),
250
+ symbolExtractor: new RubySymbolExtractor(),
251
+ complexity: {
252
+ // Structural control-flow branch points. NOTE: Ruby's logical operators
253
+ // (`&&`, `||`, `and`, `or`) are `binary` nodes, which the shared complexity
254
+ // engine only counts for the `binary_expression`/`boolean_operator` node
255
+ // types (JS/TS/Python). Counting generic `binary` here would also count
256
+ // arithmetic, so logical operators are intentionally not scored for Ruby.
257
+ decisionPoints: [
258
+ 'if',
259
+ 'elsif',
260
+ 'unless',
261
+ 'while',
262
+ 'until',
263
+ 'for',
264
+ 'when',
265
+ 'in_clause', // `case/in` pattern matching arm
266
+ 'rescue',
267
+ 'conditional', // ternary `a ? b : c`
268
+ 'if_modifier', // `x if y`
269
+ 'unless_modifier', // `x unless y`
270
+ 'while_modifier', // `x while y`
271
+ 'until_modifier', // `x until y`
272
+ ],
273
+ nestingTypes: ['if', 'unless', 'while', 'until', 'for', 'case', 'case_match', 'rescue'],
274
+ nonNestingTypes: [
275
+ 'elsif',
276
+ 'when',
277
+ 'in_clause',
278
+ 'conditional',
279
+ 'if_modifier',
280
+ 'unless_modifier',
281
+ 'while_modifier',
282
+ 'until_modifier',
283
+ ],
284
+ lambdaTypes: ['block', 'do_block', 'lambda'],
285
+ operatorSymbols: new Set([
286
+ '+',
287
+ '-',
288
+ '*',
289
+ '/',
290
+ '%',
291
+ '**',
292
+ '==',
293
+ '!=',
294
+ '<',
295
+ '>',
296
+ '<=',
297
+ '>=',
298
+ '<=>',
299
+ '=',
300
+ '+=',
301
+ '-=',
302
+ '*=',
303
+ '/=',
304
+ '%=',
305
+ '**=',
306
+ '||=',
307
+ '&&=',
308
+ '|=',
309
+ '&=',
310
+ '^=',
311
+ '<<=',
312
+ '>>=',
313
+ '&',
314
+ '|',
315
+ '^',
316
+ '~',
317
+ '<<',
318
+ '>>',
319
+ '&&',
320
+ '||',
321
+ '!',
322
+ '..',
323
+ '...',
324
+ '=>',
325
+ '->',
326
+ '::',
327
+ '.',
328
+ '&.',
329
+ '(',
330
+ ')',
331
+ '[',
332
+ ']',
333
+ '{',
334
+ '}',
335
+ ]),
336
+ operatorKeywords: new Set([
337
+ 'if',
338
+ 'elsif',
339
+ 'else',
340
+ 'unless',
341
+ 'while',
342
+ 'until',
343
+ 'for',
344
+ 'case',
345
+ 'when',
346
+ 'in',
347
+ 'do',
348
+ 'then',
349
+ 'begin',
350
+ 'rescue',
351
+ 'ensure',
352
+ 'raise',
353
+ 'return',
354
+ 'yield',
355
+ 'break',
356
+ 'next',
357
+ 'redo',
358
+ 'retry',
359
+ 'def',
360
+ 'class',
361
+ 'module',
362
+ 'self',
363
+ 'super',
364
+ 'and',
365
+ 'or',
366
+ 'not',
367
+ 'require',
368
+ 'require_relative',
369
+ 'lambda',
370
+ 'proc',
371
+ ]),
372
+ },
373
+ symbols: {
374
+ callExpressionTypes: ['call'],
375
+ },
376
+ };
377
+ //# sourceMappingURL=ruby.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/ast/languages/ruby.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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"}