gitnexus 1.6.2-rc.13 → 1.6.2-rc.15
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/dist/core/ingestion/call-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/call-extractors/configs/c-cpp.js +8 -0
- package/dist/core/ingestion/call-extractors/configs/csharp.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/csharp.js +6 -0
- package/dist/core/ingestion/call-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/dart.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/go.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/call-extractors/configs/jvm.js +51 -0
- package/dist/core/ingestion/call-extractors/configs/php.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/php.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/python.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/ruby.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/rust.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/swift.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/call-extractors/configs/typescript-javascript.js +8 -0
- package/dist/core/ingestion/call-extractors/generic.d.ts +5 -0
- package/dist/core/ingestion/call-extractors/generic.js +59 -0
- package/dist/core/ingestion/call-processor.js +48 -45
- package/dist/core/ingestion/call-types.d.ts +60 -0
- package/dist/core/ingestion/call-types.js +2 -0
- package/dist/core/ingestion/class-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/class-extractors/configs/c-cpp.js +11 -0
- package/dist/core/ingestion/class-extractors/configs/csharp.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/csharp.js +21 -0
- package/dist/core/ingestion/class-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/dart.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/go.js +20 -0
- package/dist/core/ingestion/class-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/class-extractors/configs/jvm.js +35 -0
- package/dist/core/ingestion/class-extractors/configs/php.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/php.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/python.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/ruby.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/rust.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/swift.js +18 -0
- package/dist/core/ingestion/class-extractors/configs/typescript-javascript.d.ts +4 -0
- package/dist/core/ingestion/class-extractors/configs/typescript-javascript.js +28 -0
- package/dist/core/ingestion/language-provider.d.ts +7 -0
- package/dist/core/ingestion/languages/c-cpp.js +7 -9
- package/dist/core/ingestion/languages/csharp.js +5 -19
- package/dist/core/ingestion/languages/dart.js +5 -5
- package/dist/core/ingestion/languages/go.js +5 -18
- package/dist/core/ingestion/languages/java.js +5 -16
- package/dist/core/ingestion/languages/kotlin.js +5 -11
- package/dist/core/ingestion/languages/php.js +5 -5
- package/dist/core/ingestion/languages/python.js +5 -5
- package/dist/core/ingestion/languages/ruby.js +5 -5
- package/dist/core/ingestion/languages/rust.js +5 -5
- package/dist/core/ingestion/languages/swift.js +5 -16
- package/dist/core/ingestion/languages/typescript.js +7 -20
- package/dist/core/ingestion/languages/vue.js +5 -15
- package/dist/core/ingestion/workers/parse-worker.js +162 -166
- package/package.json +1 -1
- package/dist/core/ingestion/call-sites/extract-language-call-site.d.ts +0 -10
- package/dist/core/ingestion/call-sites/extract-language-call-site.js +0 -22
- package/dist/core/ingestion/call-sites/java.d.ts +0 -9
- package/dist/core/ingestion/call-sites/java.js +0 -30
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// gitnexus/src/core/ingestion/class-extractors/configs/typescript-javascript.ts
|
|
2
|
+
import { SupportedLanguages } from '../../../../_shared/index.js';
|
|
3
|
+
const shared = {
|
|
4
|
+
typeDeclarationNodes: [
|
|
5
|
+
'class_declaration',
|
|
6
|
+
'abstract_class_declaration',
|
|
7
|
+
'interface_declaration',
|
|
8
|
+
'enum_declaration',
|
|
9
|
+
],
|
|
10
|
+
ancestorScopeNodeTypes: [
|
|
11
|
+
'class_declaration',
|
|
12
|
+
'abstract_class_declaration',
|
|
13
|
+
'interface_declaration',
|
|
14
|
+
'enum_declaration',
|
|
15
|
+
],
|
|
16
|
+
};
|
|
17
|
+
export const typescriptClassConfig = {
|
|
18
|
+
...shared,
|
|
19
|
+
language: SupportedLanguages.TypeScript,
|
|
20
|
+
};
|
|
21
|
+
export const javascriptClassConfig = {
|
|
22
|
+
...shared,
|
|
23
|
+
language: SupportedLanguages.JavaScript,
|
|
24
|
+
};
|
|
25
|
+
export const vueClassConfig = {
|
|
26
|
+
...shared,
|
|
27
|
+
language: SupportedLanguages.Vue,
|
|
28
|
+
};
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import type { SupportedLanguages, MroStrategy } from '../../_shared/index.js';
|
|
12
12
|
import type { LanguageTypeConfig } from './type-extractors/types.js';
|
|
13
13
|
import type { CallRouter } from './call-routing.js';
|
|
14
|
+
import type { CallExtractor } from './call-types.js';
|
|
14
15
|
import type { ClassExtractor } from './class-types.js';
|
|
15
16
|
import type { ExportChecker } from './export-detection.js';
|
|
16
17
|
import type { FieldExtractor } from './field-extractor.js';
|
|
@@ -119,6 +120,12 @@ interface LanguageProviderConfig {
|
|
|
119
120
|
/** MRO strategy for multiple inheritance resolution.
|
|
120
121
|
* Default: 'first-wins'. */
|
|
121
122
|
readonly mroStrategy?: MroStrategy;
|
|
123
|
+
/** Call extractor for extracting call site information (calledName, callForm,
|
|
124
|
+
* receiverName, argCount, mixed chains) from @call / @call.name captures.
|
|
125
|
+
* Produced by createCallExtractor() with a per-language CallExtractionConfig.
|
|
126
|
+
* Default: undefined — if unset, no calls are extracted for this language.
|
|
127
|
+
* All tree-sitter providers MUST supply this. */
|
|
128
|
+
readonly callExtractor?: CallExtractor;
|
|
122
129
|
/** Field extractor for extracting field/property definitions from class/struct
|
|
123
130
|
* declarations. Produces FieldInfo[] with name, type, visibility, static,
|
|
124
131
|
* readonly metadata. Default: undefined (no field extraction). */
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
11
11
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
12
|
+
import { cClassConfig, cppClassConfig } from '../class-extractors/configs/c-cpp.js';
|
|
12
13
|
import { defineLanguage } from '../language-provider.js';
|
|
13
14
|
import { typeConfig as cCppConfig } from '../type-extractors/c-cpp.js';
|
|
14
15
|
import { cCppExportChecker } from '../export-detection.js';
|
|
@@ -29,6 +30,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
29
30
|
import { cConfig as cFieldConfig, cppConfig as cppFieldConfig, } from '../field-extractors/configs/c-cpp.js';
|
|
30
31
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
31
32
|
import { cMethodConfig, cppMethodConfig } from '../method-extractors/configs/c-cpp.js';
|
|
33
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
34
|
+
import { cCallConfig, cppCallConfig } from '../call-extractors/configs/c-cpp.js';
|
|
32
35
|
const C_BUILT_INS = new Set([
|
|
33
36
|
'printf',
|
|
34
37
|
'fprintf',
|
|
@@ -135,15 +138,8 @@ const C_BUILT_INS = new Set([
|
|
|
135
138
|
'get',
|
|
136
139
|
'put',
|
|
137
140
|
]);
|
|
138
|
-
const cClassExtractor = createClassExtractor(
|
|
139
|
-
|
|
140
|
-
typeDeclarationNodes: ['struct_specifier', 'enum_specifier'],
|
|
141
|
-
});
|
|
142
|
-
const cppClassExtractor = createClassExtractor({
|
|
143
|
-
language: SupportedLanguages.CPlusPlus,
|
|
144
|
-
typeDeclarationNodes: ['class_specifier', 'struct_specifier', 'enum_specifier'],
|
|
145
|
-
ancestorScopeNodeTypes: ['namespace_definition', 'class_specifier', 'struct_specifier'],
|
|
146
|
-
});
|
|
141
|
+
const cClassExtractor = createClassExtractor(cClassConfig);
|
|
142
|
+
const cppClassExtractor = createClassExtractor(cppClassConfig);
|
|
147
143
|
/**
|
|
148
144
|
* C/C++ function name extraction — unwraps pointer_declarator / reference_declarator /
|
|
149
145
|
* function_declarator / qualified_identifier chains to find the actual function name.
|
|
@@ -294,6 +290,7 @@ export const cProvider = defineLanguage({
|
|
|
294
290
|
exportChecker: cCppExportChecker,
|
|
295
291
|
importResolver: resolveCImport,
|
|
296
292
|
importSemantics: 'wildcard-transitive',
|
|
293
|
+
callExtractor: createCallExtractor(cCallConfig),
|
|
297
294
|
fieldExtractor: createFieldExtractor(cFieldConfig),
|
|
298
295
|
methodExtractor: createMethodExtractor({
|
|
299
296
|
...cMethodConfig,
|
|
@@ -312,6 +309,7 @@ export const cppProvider = defineLanguage({
|
|
|
312
309
|
importResolver: resolveCppImport,
|
|
313
310
|
importSemantics: 'wildcard-transitive',
|
|
314
311
|
mroStrategy: 'leftmost-base',
|
|
312
|
+
callExtractor: createCallExtractor(cppCallConfig),
|
|
315
313
|
fieldExtractor: createFieldExtractor(cppFieldConfig),
|
|
316
314
|
methodExtractor: createMethodExtractor({
|
|
317
315
|
...cppMethodConfig,
|
|
@@ -7,12 +7,15 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
9
9
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
10
|
+
import { csharpClassConfig } from '../class-extractors/configs/csharp.js';
|
|
10
11
|
import { defineLanguage } from '../language-provider.js';
|
|
11
12
|
import { typeConfig as csharpConfig } from '../type-extractors/csharp.js';
|
|
12
13
|
import { csharpExportChecker } from '../export-detection.js';
|
|
13
14
|
import { resolveCSharpImport } from '../import-resolvers/csharp.js';
|
|
14
15
|
import { extractCSharpNamedBindings } from '../named-bindings/csharp.js';
|
|
15
16
|
import { CSHARP_QUERIES } from '../tree-sitter-queries.js';
|
|
17
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
18
|
+
import { csharpCallConfig } from '../call-extractors/configs/csharp.js';
|
|
16
19
|
import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
17
20
|
import { csharpConfig as csharpFieldConfig } from '../field-extractors/configs/csharp.js';
|
|
18
21
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
@@ -121,26 +124,9 @@ export const csharpProvider = defineLanguage({
|
|
|
121
124
|
namedBindingExtractor: extractCSharpNamedBindings,
|
|
122
125
|
interfaceNamePattern: /^I[A-Z]/,
|
|
123
126
|
mroStrategy: 'implements-split',
|
|
127
|
+
callExtractor: createCallExtractor(csharpCallConfig),
|
|
124
128
|
fieldExtractor: createFieldExtractor(csharpFieldConfig),
|
|
125
129
|
methodExtractor: createMethodExtractor(csharpMethodConfig),
|
|
126
|
-
classExtractor: createClassExtractor(
|
|
127
|
-
language: SupportedLanguages.CSharp,
|
|
128
|
-
typeDeclarationNodes: [
|
|
129
|
-
'class_declaration',
|
|
130
|
-
'interface_declaration',
|
|
131
|
-
'struct_declaration',
|
|
132
|
-
'enum_declaration',
|
|
133
|
-
'record_declaration',
|
|
134
|
-
],
|
|
135
|
-
fileScopeNodeTypes: ['file_scoped_namespace_declaration'],
|
|
136
|
-
ancestorScopeNodeTypes: [
|
|
137
|
-
'namespace_declaration',
|
|
138
|
-
'class_declaration',
|
|
139
|
-
'interface_declaration',
|
|
140
|
-
'struct_declaration',
|
|
141
|
-
'enum_declaration',
|
|
142
|
-
'record_declaration',
|
|
143
|
-
],
|
|
144
|
-
}),
|
|
130
|
+
classExtractor: createClassExtractor(csharpClassConfig),
|
|
145
131
|
builtInNames: BUILT_INS,
|
|
146
132
|
});
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import { FUNCTION_NODE_TYPES } from '../utils/ast-helpers.js';
|
|
13
13
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
14
14
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
15
|
+
import { dartClassConfig } from '../class-extractors/configs/dart.js';
|
|
15
16
|
import { defineLanguage } from '../language-provider.js';
|
|
16
17
|
import { typeConfig as dartConfig } from '../type-extractors/dart.js';
|
|
17
18
|
import { dartExportChecker } from '../export-detection.js';
|
|
@@ -21,6 +22,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
21
22
|
import { dartConfig as dartFieldConfig } from '../field-extractors/configs/dart.js';
|
|
22
23
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
23
24
|
import { dartMethodConfig } from '../method-extractors/configs/dart.js';
|
|
25
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
26
|
+
import { dartCallConfig } from '../call-extractors/configs/dart.js';
|
|
24
27
|
/**
|
|
25
28
|
* Resolve the enclosing function from a `function_body` node by looking at its
|
|
26
29
|
* previous sibling. In Dart's tree-sitter grammar, function_signature and
|
|
@@ -84,13 +87,10 @@ export const dartProvider = defineLanguage({
|
|
|
84
87
|
exportChecker: dartExportChecker,
|
|
85
88
|
importResolver: resolveDartImport,
|
|
86
89
|
importSemantics: 'wildcard-leaf',
|
|
90
|
+
callExtractor: createCallExtractor(dartCallConfig),
|
|
87
91
|
fieldExtractor: createFieldExtractor(dartFieldConfig),
|
|
88
92
|
methodExtractor: createMethodExtractor(dartMethodConfig),
|
|
89
|
-
classExtractor: createClassExtractor(
|
|
90
|
-
language: SupportedLanguages.Dart,
|
|
91
|
-
typeDeclarationNodes: ['class_definition', 'extension_declaration', 'enum_declaration'],
|
|
92
|
-
ancestorScopeNodeTypes: ['class_definition', 'extension_declaration', 'enum_declaration'],
|
|
93
|
-
}),
|
|
93
|
+
classExtractor: createClassExtractor(dartClassConfig),
|
|
94
94
|
enclosingFunctionFinder: dartEnclosingFunctionFinder,
|
|
95
95
|
builtInNames: BUILT_INS,
|
|
96
96
|
});
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
12
12
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
13
|
+
import { goClassConfig } from '../class-extractors/configs/go.js';
|
|
13
14
|
import { defineLanguage } from '../language-provider.js';
|
|
14
15
|
import { typeConfig as goConfig } from '../type-extractors/go.js';
|
|
15
16
|
import { goExportChecker } from '../export-detection.js';
|
|
@@ -19,6 +20,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
19
20
|
import { goConfig as goFieldConfig } from '../field-extractors/configs/go.js';
|
|
20
21
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
21
22
|
import { goMethodConfig } from '../method-extractors/configs/go.js';
|
|
23
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
24
|
+
import { goCallConfig } from '../call-extractors/configs/go.js';
|
|
22
25
|
export const goProvider = defineLanguage({
|
|
23
26
|
id: SupportedLanguages.Go,
|
|
24
27
|
extensions: ['.go'],
|
|
@@ -27,24 +30,8 @@ export const goProvider = defineLanguage({
|
|
|
27
30
|
exportChecker: goExportChecker,
|
|
28
31
|
importResolver: resolveGoImport,
|
|
29
32
|
importSemantics: 'wildcard-leaf',
|
|
33
|
+
callExtractor: createCallExtractor(goCallConfig),
|
|
30
34
|
fieldExtractor: createFieldExtractor(goFieldConfig),
|
|
31
35
|
methodExtractor: createMethodExtractor(goMethodConfig),
|
|
32
|
-
classExtractor: createClassExtractor(
|
|
33
|
-
language: SupportedLanguages.Go,
|
|
34
|
-
typeDeclarationNodes: ['type_declaration'],
|
|
35
|
-
fileScopeNodeTypes: ['package_clause'],
|
|
36
|
-
extractName(node) {
|
|
37
|
-
const typeSpec = node.namedChildren.find((child) => child.type === 'type_spec');
|
|
38
|
-
return typeSpec?.childForFieldName('name')?.text;
|
|
39
|
-
},
|
|
40
|
-
extractType(node) {
|
|
41
|
-
const typeSpec = node.namedChildren.find((child) => child.type === 'type_spec');
|
|
42
|
-
const typeNode = typeSpec?.childForFieldName('type');
|
|
43
|
-
if (typeNode?.type === 'struct_type')
|
|
44
|
-
return 'Struct';
|
|
45
|
-
if (typeNode?.type === 'interface_type')
|
|
46
|
-
return 'Interface';
|
|
47
|
-
return undefined;
|
|
48
|
-
},
|
|
49
|
-
}),
|
|
36
|
+
classExtractor: createClassExtractor(goClassConfig),
|
|
50
37
|
});
|
|
@@ -8,12 +8,15 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
10
10
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
11
|
+
import { javaClassConfig } from '../class-extractors/configs/jvm.js';
|
|
11
12
|
import { defineLanguage } from '../language-provider.js';
|
|
12
13
|
import { javaTypeConfig } from '../type-extractors/jvm.js';
|
|
13
14
|
import { javaExportChecker } from '../export-detection.js';
|
|
14
15
|
import { resolveJavaImport } from '../import-resolvers/jvm.js';
|
|
15
16
|
import { extractJavaNamedBindings } from '../named-bindings/java.js';
|
|
16
17
|
import { JAVA_QUERIES } from '../tree-sitter-queries.js';
|
|
18
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
19
|
+
import { javaCallConfig } from '../call-extractors/configs/jvm.js';
|
|
17
20
|
import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
18
21
|
import { javaConfig } from '../field-extractors/configs/jvm.js';
|
|
19
22
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
@@ -28,22 +31,8 @@ export const javaProvider = defineLanguage({
|
|
|
28
31
|
namedBindingExtractor: extractJavaNamedBindings,
|
|
29
32
|
interfaceNamePattern: /^I[A-Z]/,
|
|
30
33
|
mroStrategy: 'implements-split',
|
|
34
|
+
callExtractor: createCallExtractor(javaCallConfig),
|
|
31
35
|
fieldExtractor: createFieldExtractor(javaConfig),
|
|
32
36
|
methodExtractor: createMethodExtractor(javaMethodConfig),
|
|
33
|
-
classExtractor: createClassExtractor(
|
|
34
|
-
language: SupportedLanguages.Java,
|
|
35
|
-
typeDeclarationNodes: [
|
|
36
|
-
'class_declaration',
|
|
37
|
-
'interface_declaration',
|
|
38
|
-
'enum_declaration',
|
|
39
|
-
'record_declaration',
|
|
40
|
-
],
|
|
41
|
-
fileScopeNodeTypes: ['package_declaration'],
|
|
42
|
-
ancestorScopeNodeTypes: [
|
|
43
|
-
'class_declaration',
|
|
44
|
-
'interface_declaration',
|
|
45
|
-
'enum_declaration',
|
|
46
|
-
'record_declaration',
|
|
47
|
-
],
|
|
48
|
-
}),
|
|
37
|
+
classExtractor: createClassExtractor(javaClassConfig),
|
|
49
38
|
});
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
10
10
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
11
|
+
import { kotlinClassConfig } from '../class-extractors/configs/jvm.js';
|
|
11
12
|
import { defineLanguage } from '../language-provider.js';
|
|
12
13
|
import { kotlinTypeConfig } from '../type-extractors/jvm.js';
|
|
13
14
|
import { kotlinExportChecker } from '../export-detection.js';
|
|
@@ -15,6 +16,8 @@ import { resolveKotlinImport } from '../import-resolvers/jvm.js';
|
|
|
15
16
|
import { extractKotlinNamedBindings } from '../named-bindings/kotlin.js';
|
|
16
17
|
import { appendKotlinWildcard } from '../import-resolvers/jvm.js';
|
|
17
18
|
import { KOTLIN_QUERIES } from '../tree-sitter-queries.js';
|
|
19
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
20
|
+
import { kotlinCallConfig } from '../call-extractors/configs/jvm.js';
|
|
18
21
|
import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
19
22
|
import { kotlinConfig } from '../field-extractors/configs/jvm.js';
|
|
20
23
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
@@ -99,19 +102,10 @@ export const kotlinProvider = defineLanguage({
|
|
|
99
102
|
namedBindingExtractor: extractKotlinNamedBindings,
|
|
100
103
|
importPathPreprocessor: appendKotlinWildcard,
|
|
101
104
|
mroStrategy: 'implements-split',
|
|
105
|
+
callExtractor: createCallExtractor(kotlinCallConfig),
|
|
102
106
|
fieldExtractor: createFieldExtractor(kotlinConfig),
|
|
103
107
|
methodExtractor: createMethodExtractor(kotlinMethodConfig),
|
|
104
|
-
classExtractor: createClassExtractor(
|
|
105
|
-
language: SupportedLanguages.Kotlin,
|
|
106
|
-
typeDeclarationNodes: ['class_declaration', 'object_declaration', 'companion_object'],
|
|
107
|
-
fileScopeNodeTypes: ['package_header'],
|
|
108
|
-
ancestorScopeNodeTypes: ['class_declaration', 'object_declaration', 'companion_object'],
|
|
109
|
-
extractType(node) {
|
|
110
|
-
if (node.type !== 'class_declaration')
|
|
111
|
-
return undefined;
|
|
112
|
-
return node.children.some((child) => child?.text === 'interface') ? 'Interface' : 'Class';
|
|
113
|
-
},
|
|
114
|
-
}),
|
|
108
|
+
classExtractor: createClassExtractor(kotlinClassConfig),
|
|
115
109
|
builtInNames: BUILT_INS,
|
|
116
110
|
labelOverride: (functionNode, defaultLabel) => {
|
|
117
111
|
if (defaultLabel !== 'Function')
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
9
9
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
10
|
+
import { phpClassConfig } from '../class-extractors/configs/php.js';
|
|
10
11
|
import { defineLanguage } from '../language-provider.js';
|
|
11
12
|
import { typeConfig as phpConfig } from '../type-extractors/php.js';
|
|
12
13
|
import { phpExportChecker } from '../export-detection.js';
|
|
@@ -18,6 +19,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
18
19
|
import { phpConfig as phpFieldConfig } from '../field-extractors/configs/php.js';
|
|
19
20
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
20
21
|
import { phpMethodConfig } from '../method-extractors/configs/php.js';
|
|
22
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
23
|
+
import { phpCallConfig } from '../call-extractors/configs/php.js';
|
|
21
24
|
const BUILT_INS = new Set([
|
|
22
25
|
'echo',
|
|
23
26
|
'isset',
|
|
@@ -221,13 +224,10 @@ export const phpProvider = defineLanguage({
|
|
|
221
224
|
exportChecker: phpExportChecker,
|
|
222
225
|
importResolver: resolvePhpImport,
|
|
223
226
|
namedBindingExtractor: extractPhpNamedBindings,
|
|
227
|
+
callExtractor: createCallExtractor(phpCallConfig),
|
|
224
228
|
fieldExtractor: createFieldExtractor(phpFieldConfig),
|
|
225
229
|
methodExtractor: createMethodExtractor(phpMethodConfig),
|
|
226
|
-
classExtractor: createClassExtractor(
|
|
227
|
-
language: SupportedLanguages.PHP,
|
|
228
|
-
typeDeclarationNodes: ['class_declaration', 'interface_declaration', 'enum_declaration'],
|
|
229
|
-
ancestorScopeNodeTypes: ['namespace_definition'],
|
|
230
|
-
}),
|
|
230
|
+
classExtractor: createClassExtractor(phpClassConfig),
|
|
231
231
|
descriptionExtractor: phpDescriptionExtractor,
|
|
232
232
|
isRouteFile: isPhpRouteFile,
|
|
233
233
|
builtInNames: BUILT_INS,
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
13
13
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
14
|
+
import { pythonClassConfig } from '../class-extractors/configs/python.js';
|
|
14
15
|
import { defineLanguage } from '../language-provider.js';
|
|
15
16
|
import { typeConfig as pythonConfig } from '../type-extractors/python.js';
|
|
16
17
|
import { pythonExportChecker } from '../export-detection.js';
|
|
@@ -21,6 +22,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
21
22
|
import { pythonConfig as pythonFieldConfig } from '../field-extractors/configs/python.js';
|
|
22
23
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
23
24
|
import { pythonMethodConfig } from '../method-extractors/configs/python.js';
|
|
25
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
26
|
+
import { pythonCallConfig } from '../call-extractors/configs/python.js';
|
|
24
27
|
const BUILT_INS = new Set([
|
|
25
28
|
'print',
|
|
26
29
|
'len',
|
|
@@ -60,12 +63,9 @@ export const pythonProvider = defineLanguage({
|
|
|
60
63
|
namedBindingExtractor: extractPythonNamedBindings,
|
|
61
64
|
importSemantics: 'namespace',
|
|
62
65
|
mroStrategy: 'c3',
|
|
66
|
+
callExtractor: createCallExtractor(pythonCallConfig),
|
|
63
67
|
fieldExtractor: createFieldExtractor(pythonFieldConfig),
|
|
64
68
|
methodExtractor: createMethodExtractor(pythonMethodConfig),
|
|
65
|
-
classExtractor: createClassExtractor(
|
|
66
|
-
language: SupportedLanguages.Python,
|
|
67
|
-
typeDeclarationNodes: ['class_definition'],
|
|
68
|
-
ancestorScopeNodeTypes: ['class_definition'],
|
|
69
|
-
}),
|
|
69
|
+
classExtractor: createClassExtractor(pythonClassConfig),
|
|
70
70
|
builtInNames: BUILT_INS,
|
|
71
71
|
});
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
10
10
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
11
|
+
import { rubyClassConfig } from '../class-extractors/configs/ruby.js';
|
|
11
12
|
import { defineLanguage } from '../language-provider.js';
|
|
12
13
|
import { typeConfig as rubyConfig } from '../type-extractors/ruby.js';
|
|
13
14
|
import { routeRubyCall } from '../call-routing.js';
|
|
@@ -18,6 +19,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
18
19
|
import { rubyConfig as rubyFieldConfig } from '../field-extractors/configs/ruby.js';
|
|
19
20
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
20
21
|
import { rubyMethodConfig } from '../method-extractors/configs/ruby.js';
|
|
22
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
23
|
+
import { rubyCallConfig } from '../call-extractors/configs/ruby.js';
|
|
21
24
|
/** Ruby method/singleton_method: extract name from 'name' field, label as Method. */
|
|
22
25
|
const rubyExtractFunctionName = (node) => {
|
|
23
26
|
if (node.type !== 'method' && node.type !== 'singleton_method')
|
|
@@ -100,6 +103,7 @@ export const rubyProvider = defineLanguage({
|
|
|
100
103
|
importResolver: resolveRubyImport,
|
|
101
104
|
callRouter: routeRubyCall,
|
|
102
105
|
importSemantics: 'wildcard-leaf',
|
|
106
|
+
callExtractor: createCallExtractor(rubyCallConfig),
|
|
103
107
|
resolveEnclosingOwner(node) {
|
|
104
108
|
// Ruby singleton_class (class << self) should resolve to the enclosing
|
|
105
109
|
// class or module for owner/container resolution (HAS_METHOD edges, class IDs).
|
|
@@ -120,10 +124,6 @@ export const rubyProvider = defineLanguage({
|
|
|
120
124
|
...rubyMethodConfig,
|
|
121
125
|
extractFunctionName: rubyExtractFunctionName,
|
|
122
126
|
}),
|
|
123
|
-
classExtractor: createClassExtractor(
|
|
124
|
-
language: SupportedLanguages.Ruby,
|
|
125
|
-
typeDeclarationNodes: ['class'],
|
|
126
|
-
ancestorScopeNodeTypes: ['module', 'class'],
|
|
127
|
-
}),
|
|
127
|
+
classExtractor: createClassExtractor(rubyClassConfig),
|
|
128
128
|
builtInNames: BUILT_INS,
|
|
129
129
|
});
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
13
13
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
14
|
+
import { rustClassConfig } from '../class-extractors/configs/rust.js';
|
|
14
15
|
import { defineLanguage } from '../language-provider.js';
|
|
15
16
|
import { typeConfig as rustConfig } from '../type-extractors/rust.js';
|
|
16
17
|
import { rustExportChecker } from '../export-detection.js';
|
|
@@ -21,6 +22,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
21
22
|
import { rustConfig as rustFieldConfig } from '../field-extractors/configs/rust.js';
|
|
22
23
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
23
24
|
import { rustMethodConfig } from '../method-extractors/configs/rust.js';
|
|
25
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
26
|
+
import { rustCallConfig } from '../call-extractors/configs/rust.js';
|
|
24
27
|
/** Rust impl_item: find the function_item child and extract its name as a Method. */
|
|
25
28
|
const rustExtractFunctionName = (node) => {
|
|
26
29
|
if (node.type !== 'impl_item')
|
|
@@ -112,15 +115,12 @@ export const rustProvider = defineLanguage({
|
|
|
112
115
|
importResolver: resolveRustImport,
|
|
113
116
|
namedBindingExtractor: extractRustNamedBindings,
|
|
114
117
|
mroStrategy: 'qualified-syntax',
|
|
118
|
+
callExtractor: createCallExtractor(rustCallConfig),
|
|
115
119
|
fieldExtractor: createFieldExtractor(rustFieldConfig),
|
|
116
120
|
methodExtractor: createMethodExtractor({
|
|
117
121
|
...rustMethodConfig,
|
|
118
122
|
extractFunctionName: rustExtractFunctionName,
|
|
119
123
|
}),
|
|
120
|
-
classExtractor: createClassExtractor(
|
|
121
|
-
language: SupportedLanguages.Rust,
|
|
122
|
-
typeDeclarationNodes: ['struct_item', 'enum_item'],
|
|
123
|
-
ancestorScopeNodeTypes: ['mod_item', 'struct_item', 'enum_item'],
|
|
124
|
-
}),
|
|
124
|
+
classExtractor: createClassExtractor(rustClassConfig),
|
|
125
125
|
builtInNames: BUILT_INS,
|
|
126
126
|
});
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
13
13
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
14
|
+
import { swiftClassConfig } from '../class-extractors/configs/swift.js';
|
|
14
15
|
import { defineLanguage } from '../language-provider.js';
|
|
15
16
|
import { typeConfig as swiftConfig } from '../type-extractors/swift.js';
|
|
16
17
|
import { swiftExportChecker } from '../export-detection.js';
|
|
@@ -20,6 +21,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
20
21
|
import { swiftConfig as swiftFieldConfig } from '../field-extractors/configs/swift.js';
|
|
21
22
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
22
23
|
import { swiftMethodConfig } from '../method-extractors/configs/swift.js';
|
|
24
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
25
|
+
import { swiftCallConfig } from '../call-extractors/configs/swift.js';
|
|
23
26
|
/**
|
|
24
27
|
* Group Swift files by SPM target for implicit module visibility.
|
|
25
28
|
* If SwiftPackageConfig is available, use target -> directory mappings.
|
|
@@ -223,27 +226,13 @@ export const swiftProvider = defineLanguage({
|
|
|
223
226
|
importResolver: resolveSwiftImport,
|
|
224
227
|
importSemantics: 'wildcard-leaf',
|
|
225
228
|
heritageDefaultEdge: 'IMPLEMENTS',
|
|
229
|
+
callExtractor: createCallExtractor(swiftCallConfig),
|
|
226
230
|
fieldExtractor: createFieldExtractor(swiftFieldConfig),
|
|
227
231
|
methodExtractor: createMethodExtractor({
|
|
228
232
|
...swiftMethodConfig,
|
|
229
233
|
extractFunctionName: swiftExtractFunctionName,
|
|
230
234
|
}),
|
|
231
|
-
classExtractor: createClassExtractor(
|
|
232
|
-
language: SupportedLanguages.Swift,
|
|
233
|
-
typeDeclarationNodes: ['class_declaration', 'protocol_declaration'],
|
|
234
|
-
ancestorScopeNodeTypes: ['class_declaration', 'protocol_declaration'],
|
|
235
|
-
extractType(node) {
|
|
236
|
-
if (node.type === 'protocol_declaration')
|
|
237
|
-
return 'Interface';
|
|
238
|
-
if (node.type !== 'class_declaration')
|
|
239
|
-
return undefined;
|
|
240
|
-
if (node.children.some((child) => child?.text === 'struct'))
|
|
241
|
-
return 'Struct';
|
|
242
|
-
if (node.children.some((child) => child?.text === 'enum'))
|
|
243
|
-
return 'Enum';
|
|
244
|
-
return 'Class';
|
|
245
|
-
},
|
|
246
|
-
}),
|
|
235
|
+
classExtractor: createClassExtractor(swiftClassConfig),
|
|
247
236
|
implicitImportWirer: wireSwiftImplicitImports,
|
|
248
237
|
builtInNames: BUILT_INS,
|
|
249
238
|
});
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
10
10
|
import { defineLanguage } from '../language-provider.js';
|
|
11
11
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
12
|
+
import { typescriptClassConfig, javascriptClassConfig, } from '../class-extractors/configs/typescript-javascript.js';
|
|
12
13
|
import { typeConfig as typescriptConfig } from '../type-extractors/typescript.js';
|
|
13
14
|
import { tsExportChecker } from '../export-detection.js';
|
|
14
15
|
import { resolveTypescriptImport, resolveJavascriptImport } from '../import-resolvers/standard.js';
|
|
@@ -19,6 +20,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
19
20
|
import { javascriptConfig } from '../field-extractors/configs/typescript-javascript.js';
|
|
20
21
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
21
22
|
import { typescriptMethodConfig, javascriptMethodConfig, } from '../method-extractors/configs/typescript-javascript.js';
|
|
23
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
24
|
+
import { typescriptCallConfig, javascriptCallConfig, } from '../call-extractors/configs/typescript-javascript.js';
|
|
22
25
|
/**
|
|
23
26
|
* TypeScript/JavaScript: arrow_function and function_expression get their name
|
|
24
27
|
* from the parent variable_declarator (e.g. `const foo = () => {}`).
|
|
@@ -137,21 +140,6 @@ export const BUILT_INS = new Set([
|
|
|
137
140
|
'toString',
|
|
138
141
|
'valueOf',
|
|
139
142
|
]);
|
|
140
|
-
const tsJsClassConfig = {
|
|
141
|
-
language: SupportedLanguages.TypeScript,
|
|
142
|
-
typeDeclarationNodes: [
|
|
143
|
-
'class_declaration',
|
|
144
|
-
'abstract_class_declaration',
|
|
145
|
-
'interface_declaration',
|
|
146
|
-
'enum_declaration',
|
|
147
|
-
],
|
|
148
|
-
ancestorScopeNodeTypes: [
|
|
149
|
-
'class_declaration',
|
|
150
|
-
'abstract_class_declaration',
|
|
151
|
-
'interface_declaration',
|
|
152
|
-
'enum_declaration',
|
|
153
|
-
],
|
|
154
|
-
};
|
|
155
143
|
export const typescriptProvider = defineLanguage({
|
|
156
144
|
id: SupportedLanguages.TypeScript,
|
|
157
145
|
extensions: ['.ts', '.tsx'],
|
|
@@ -160,12 +148,13 @@ export const typescriptProvider = defineLanguage({
|
|
|
160
148
|
exportChecker: tsExportChecker,
|
|
161
149
|
importResolver: resolveTypescriptImport,
|
|
162
150
|
namedBindingExtractor: extractTsNamedBindings,
|
|
151
|
+
callExtractor: createCallExtractor(typescriptCallConfig),
|
|
163
152
|
fieldExtractor: typescriptFieldExtractor,
|
|
164
153
|
methodExtractor: createMethodExtractor({
|
|
165
154
|
...typescriptMethodConfig,
|
|
166
155
|
extractFunctionName: tsExtractFunctionName,
|
|
167
156
|
}),
|
|
168
|
-
classExtractor: createClassExtractor(
|
|
157
|
+
classExtractor: createClassExtractor(typescriptClassConfig),
|
|
169
158
|
builtInNames: BUILT_INS,
|
|
170
159
|
});
|
|
171
160
|
export const javascriptProvider = defineLanguage({
|
|
@@ -176,14 +165,12 @@ export const javascriptProvider = defineLanguage({
|
|
|
176
165
|
exportChecker: tsExportChecker,
|
|
177
166
|
importResolver: resolveJavascriptImport,
|
|
178
167
|
namedBindingExtractor: extractTsNamedBindings,
|
|
168
|
+
callExtractor: createCallExtractor(javascriptCallConfig),
|
|
179
169
|
fieldExtractor: createFieldExtractor(javascriptConfig),
|
|
180
170
|
methodExtractor: createMethodExtractor({
|
|
181
171
|
...javascriptMethodConfig,
|
|
182
172
|
extractFunctionName: tsExtractFunctionName,
|
|
183
173
|
}),
|
|
184
|
-
classExtractor: createClassExtractor(
|
|
185
|
-
...tsJsClassConfig,
|
|
186
|
-
language: SupportedLanguages.JavaScript,
|
|
187
|
-
}),
|
|
174
|
+
classExtractor: createClassExtractor(javascriptClassConfig),
|
|
188
175
|
builtInNames: BUILT_INS,
|
|
189
176
|
});
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
14
14
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
15
|
+
import { vueClassConfig } from '../class-extractors/configs/typescript-javascript.js';
|
|
15
16
|
import { defineLanguage } from '../language-provider.js';
|
|
16
17
|
import { typeConfig as typescriptConfig } from '../type-extractors/typescript.js';
|
|
17
18
|
import { tsExportChecker } from '../export-detection.js';
|
|
@@ -20,6 +21,8 @@ import { extractTsNamedBindings } from '../named-bindings/typescript.js';
|
|
|
20
21
|
import { TYPESCRIPT_QUERIES } from '../tree-sitter-queries.js';
|
|
21
22
|
import { typescriptFieldExtractor } from '../field-extractors/typescript.js';
|
|
22
23
|
import { BUILT_INS as TS_BUILT_INS } from './typescript.js';
|
|
24
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
25
|
+
import { typescriptCallConfig } from '../call-extractors/configs/typescript-javascript.js';
|
|
23
26
|
const VUE_SPECIFIC_BUILT_INS = [
|
|
24
27
|
'ref',
|
|
25
28
|
'reactive',
|
|
@@ -52,21 +55,7 @@ const VUE_SPECIFIC_BUILT_INS = [
|
|
|
52
55
|
'useAttrs',
|
|
53
56
|
];
|
|
54
57
|
const VUE_BUILT_INS = new Set([...TS_BUILT_INS, ...VUE_SPECIFIC_BUILT_INS]);
|
|
55
|
-
const vueClassExtractor = createClassExtractor(
|
|
56
|
-
language: SupportedLanguages.Vue,
|
|
57
|
-
typeDeclarationNodes: [
|
|
58
|
-
'class_declaration',
|
|
59
|
-
'abstract_class_declaration',
|
|
60
|
-
'interface_declaration',
|
|
61
|
-
'enum_declaration',
|
|
62
|
-
],
|
|
63
|
-
ancestorScopeNodeTypes: [
|
|
64
|
-
'class_declaration',
|
|
65
|
-
'abstract_class_declaration',
|
|
66
|
-
'interface_declaration',
|
|
67
|
-
'enum_declaration',
|
|
68
|
-
],
|
|
69
|
-
});
|
|
58
|
+
const vueClassExtractor = createClassExtractor(vueClassConfig);
|
|
70
59
|
export const vueProvider = defineLanguage({
|
|
71
60
|
id: SupportedLanguages.Vue,
|
|
72
61
|
extensions: ['.vue'],
|
|
@@ -75,6 +64,7 @@ export const vueProvider = defineLanguage({
|
|
|
75
64
|
exportChecker: tsExportChecker,
|
|
76
65
|
importResolver: resolveVueImport,
|
|
77
66
|
namedBindingExtractor: extractTsNamedBindings,
|
|
67
|
+
callExtractor: createCallExtractor(typescriptCallConfig),
|
|
78
68
|
fieldExtractor: typescriptFieldExtractor,
|
|
79
69
|
classExtractor: vueClassExtractor,
|
|
80
70
|
builtInNames: VUE_BUILT_INS,
|