@liendev/parser 0.44.0 → 0.46.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 +5 -2
- package/dist/ast/extractors/symbol-helpers.d.ts.map +1 -1
- package/dist/ast/extractors/symbol-helpers.js +23 -6
- package/dist/ast/extractors/symbol-helpers.js.map +1 -1
- 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/languages/ruby.d.ts +80 -0
- package/dist/ast/languages/ruby.d.ts.map +1 -0
- package/dist/ast/languages/ruby.js +377 -0
- package/dist/ast/languages/ruby.js.map +1 -0
- package/dist/utils/path-matching.d.ts +3 -1
- package/dist/utils/path-matching.d.ts.map +1 -1
- package/dist/utils/path-matching.js +6 -2
- package/dist/utils/path-matching.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, and
|
|
9
|
+
- **AST Parsing** — Tree-sitter-based parsing for TypeScript, JavaScript, Python, PHP, Rust, Go, Java, C#, and Ruby
|
|
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
|
|
@@ -24,8 +24,11 @@ This package provides the core parsing and analysis capabilities used by Lien's
|
|
|
24
24
|
| PHP | Yes | Yes | Yes |
|
|
25
25
|
| Rust | Yes | Yes | Yes |
|
|
26
26
|
| Go | Yes | Yes | Yes |
|
|
27
|
+
| Java | Yes | Yes | Yes |
|
|
28
|
+
| C# | Yes | Yes | Yes |
|
|
29
|
+
| Ruby | Yes | Yes | Yes |
|
|
27
30
|
|
|
28
|
-
Line-based chunking and symbol extraction are available for additional languages including
|
|
31
|
+
Line-based chunking and symbol extraction are available for additional languages including Vue, Liquid, C/C++, Swift, Kotlin, Scala, and Markdown.
|
|
29
32
|
|
|
30
33
|
## Usage
|
|
31
34
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-helpers.d.ts","sourceRoot":"","sources":["../../../src/ast/extractors/symbol-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"symbol-helpers.d.ts","sourceRoot":"","sources":["../../../src/ast/extractors/symbol-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAqCjF;AASD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAerF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK/F"}
|
|
@@ -2,7 +2,22 @@
|
|
|
2
2
|
* Extract function/method signature
|
|
3
3
|
*/
|
|
4
4
|
export function extractSignature(node, content) {
|
|
5
|
-
//
|
|
5
|
+
// Preferred: bound the signature by where the function body begins. This is
|
|
6
|
+
// language-agnostic — it works for brace languages (`… ) {`), colon languages
|
|
7
|
+
// (Python `… ):`), and `end` languages (Ruby `def … )`). The legacy brace/arrow
|
|
8
|
+
// scan below walked an entire no-brace body into the "signature" (e.g. Python,
|
|
9
|
+
// Ruby), which this avoids.
|
|
10
|
+
const bodyNode = node.childForFieldName('body');
|
|
11
|
+
if (bodyNode) {
|
|
12
|
+
const signature = content
|
|
13
|
+
.slice(node.startIndex, bodyNode.startIndex)
|
|
14
|
+
.replace(/\s+/g, ' ') // collapse newlines/indentation (matches the old join-with-space)
|
|
15
|
+
.replace(/(\{|=>|:)\s*$/, '') // drop a dangling block-opener if it was captured
|
|
16
|
+
.trim();
|
|
17
|
+
return clampSignatureLength(signature);
|
|
18
|
+
}
|
|
19
|
+
// Fallback: nodes with no `body` field (e.g. Rust trait signatures, abstract
|
|
20
|
+
// interface methods). Preserve the original first-line / brace-scan behavior.
|
|
6
21
|
const startLine = node.startPosition.row;
|
|
7
22
|
const lines = content.split('\n');
|
|
8
23
|
let signature = lines[startLine] || '';
|
|
@@ -16,11 +31,13 @@ export function extractSignature(node, content) {
|
|
|
16
31
|
}
|
|
17
32
|
// Clean up signature
|
|
18
33
|
signature = signature.split('{')[0].split('=>')[0].trim();
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
34
|
+
return clampSignatureLength(signature);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Truncate an over-long signature to keep stored chunks compact.
|
|
38
|
+
*/
|
|
39
|
+
function clampSignatureLength(signature) {
|
|
40
|
+
return signature.length > 200 ? signature.substring(0, 197) + '...' : signature;
|
|
24
41
|
}
|
|
25
42
|
/**
|
|
26
43
|
* Extract parameter list from function node
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-helpers.js","sourceRoot":"","sources":["../../../src/ast/extractors/symbol-helpers.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAuB,EAAE,OAAe;IACvE,
|
|
1
|
+
{"version":3,"file":"symbol-helpers.js","sourceRoot":"","sources":["../../../src/ast/extractors/symbol-helpers.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAuB,EAAE,OAAe;IACvE,4EAA4E;IAC5E,8EAA8E;IAC9E,gFAAgF;IAChF,+EAA+E;IAC/E,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,OAAO;aACtB,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;aAC3C,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,kEAAkE;aACvF,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,kDAAkD;aAC/E,IAAI,EAAE,CAAC;QACV,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,6EAA6E;IAC7E,8EAA8E;IAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAEvC,wEAAwE;IACxE,IAAI,WAAW,GAAG,SAAS,CAAC;IAC5B,OACE,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG;QAClC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QACxB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EACzB,CAAC;QACD,WAAW,EAAE,CAAC;QACd,SAAS,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,qBAAqB;IACrB,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1D,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,OAAO,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAClF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAuB,EAAE,QAAgB;IACzE,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,uBAAuB;IACvB,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACxD,IAAI,CAAC,UAAU;QAAE,OAAO,UAAU,CAAC;IAEnC,2BAA2B;IAC3B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAuB,EAAE,QAAgB;IACzE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC7D,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IAEtC,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B,CAAC"}
|
|
@@ -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"];
|
|
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;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"}
|
|
@@ -7,6 +7,7 @@ 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';
|
|
10
11
|
/**
|
|
11
12
|
* All registered language definitions.
|
|
12
13
|
* To add a new language, create a definition file and add it here.
|
|
@@ -20,6 +21,7 @@ const definitions = [
|
|
|
20
21
|
goDefinition,
|
|
21
22
|
javaDefinition,
|
|
22
23
|
csharpDefinition,
|
|
24
|
+
rubyDefinition,
|
|
23
25
|
];
|
|
24
26
|
/**
|
|
25
27
|
* Canonical list of supported language IDs.
|
|
@@ -35,6 +37,7 @@ export const LANGUAGE_IDS = [
|
|
|
35
37
|
'go',
|
|
36
38
|
'java',
|
|
37
39
|
'csharp',
|
|
40
|
+
'ruby',
|
|
38
41
|
];
|
|
39
42
|
/**
|
|
40
43
|
* 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;
|
|
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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"}
|
|
@@ -75,11 +75,13 @@ export declare function getCanonicalPath(filepath: string, workspaceRoot: string
|
|
|
75
75
|
*
|
|
76
76
|
* Uses precise regex patterns to avoid false positives:
|
|
77
77
|
* - Files with .test. or .spec. extensions (e.g., foo.test.ts, bar.spec.js)
|
|
78
|
-
* - Files
|
|
78
|
+
* - Files with _test. or _spec. suffixes (e.g., user_spec.rb, math_test.go)
|
|
79
|
+
* - Files in test/, tests/, spec/, specs/, or __tests__/ directories
|
|
79
80
|
*
|
|
80
81
|
* Avoids false positives like:
|
|
81
82
|
* - contest.ts (contains ".test." but isn't a test)
|
|
82
83
|
* - latest/config.ts (contains "/test/" but isn't a test)
|
|
84
|
+
* - mytest.ts (no `_` boundary before "test")
|
|
83
85
|
*
|
|
84
86
|
* @param filepath - The file path to check
|
|
85
87
|
* @returns True if the file is a test file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-matching.d.ts","sourceRoot":"","sources":["../../src/utils/path-matching.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAezE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAcvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAqCvF;AA2HD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAMrF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED
|
|
1
|
+
{"version":3,"file":"path-matching.d.ts","sourceRoot":"","sources":["../../src/utils/path-matching.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAezE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAcvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAqCvF;AA2HD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAMrF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMpD"}
|
|
@@ -267,16 +267,20 @@ export function getCanonicalPath(filepath, workspaceRoot) {
|
|
|
267
267
|
*
|
|
268
268
|
* Uses precise regex patterns to avoid false positives:
|
|
269
269
|
* - Files with .test. or .spec. extensions (e.g., foo.test.ts, bar.spec.js)
|
|
270
|
-
* - Files
|
|
270
|
+
* - Files with _test. or _spec. suffixes (e.g., user_spec.rb, math_test.go)
|
|
271
|
+
* - Files in test/, tests/, spec/, specs/, or __tests__/ directories
|
|
271
272
|
*
|
|
272
273
|
* Avoids false positives like:
|
|
273
274
|
* - contest.ts (contains ".test." but isn't a test)
|
|
274
275
|
* - latest/config.ts (contains "/test/" but isn't a test)
|
|
276
|
+
* - mytest.ts (no `_` boundary before "test")
|
|
275
277
|
*
|
|
276
278
|
* @param filepath - The file path to check
|
|
277
279
|
* @returns True if the file is a test file
|
|
278
280
|
*/
|
|
279
281
|
export function isTestFile(filepath) {
|
|
280
|
-
return (/\.(test|spec)\.[^/]+$/.test(filepath) ||
|
|
282
|
+
return (/\.(test|spec)\.[^/]+$/.test(filepath) ||
|
|
283
|
+
/_(test|spec)\.[^/]+$/.test(filepath) ||
|
|
284
|
+
/(^|[/\\])(test|tests|spec|specs|__tests__)[/\\]/.test(filepath));
|
|
281
285
|
}
|
|
282
286
|
//# sourceMappingURL=path-matching.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-matching.js","sourceRoot":"","sources":["../../src/utils/path-matching.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"path-matching.js","sourceRoot":"","sources":["../../src/utils/path-matching.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.46.0",
|
|
4
4
|
"description": "AST parsing, complexity analysis, and semantic chunking for Lien",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"tree-sitter-javascript": "0.23.1",
|
|
30
30
|
"tree-sitter-php": "^0.24.2",
|
|
31
31
|
"tree-sitter-python": "^0.25.0",
|
|
32
|
+
"tree-sitter-ruby": "^0.23.1",
|
|
32
33
|
"tree-sitter-rust": "^0.24.0",
|
|
33
34
|
"tree-sitter-typescript": "0.23.2"
|
|
34
35
|
},
|