gitnexus 1.6.2-rc.15 → 1.6.2-rc.17
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/_shared/lbug/schema-constants.d.ts +1 -1
- package/dist/_shared/lbug/schema-constants.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.js +1 -0
- package/dist/_shared/lbug/schema-constants.js.map +1 -1
- package/dist/core/ingestion/call-processor.d.ts +1 -3
- package/dist/core/ingestion/call-processor.js +1 -2
- package/dist/core/ingestion/field-types.d.ts +1 -1
- package/dist/core/ingestion/language-provider.d.ts +5 -0
- package/dist/core/ingestion/languages/c-cpp.js +4 -0
- package/dist/core/ingestion/languages/csharp.js +3 -0
- package/dist/core/ingestion/languages/dart.js +3 -0
- package/dist/core/ingestion/languages/go.js +3 -0
- package/dist/core/ingestion/languages/java.js +3 -0
- package/dist/core/ingestion/languages/kotlin.js +3 -0
- package/dist/core/ingestion/languages/php.js +3 -0
- package/dist/core/ingestion/languages/python.js +3 -0
- package/dist/core/ingestion/languages/ruby.js +3 -0
- package/dist/core/ingestion/languages/rust.js +3 -0
- package/dist/core/ingestion/languages/swift.js +3 -0
- package/dist/core/ingestion/languages/typescript.js +4 -0
- package/dist/core/ingestion/languages/vue.js +3 -0
- package/dist/core/ingestion/model/index.d.ts +2 -2
- package/dist/core/ingestion/model/index.js +1 -1
- package/dist/core/ingestion/model/resolve.d.ts +3 -0
- package/dist/core/ingestion/model/resolve.js +6 -2
- package/dist/core/ingestion/parsing-processor.d.ts +1 -2
- package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
- package/dist/core/ingestion/tree-sitter-queries.js +81 -0
- package/dist/core/ingestion/type-env.d.ts +1 -1
- package/dist/core/ingestion/utils/ast-helpers.d.ts +1 -1
- package/dist/core/ingestion/utils/ast-helpers.js +3 -0
- package/dist/core/ingestion/variable-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/variable-extractors/configs/c-cpp.js +81 -0
- package/dist/core/ingestion/variable-extractors/configs/csharp.d.ts +9 -0
- package/dist/core/ingestion/variable-extractors/configs/csharp.js +63 -0
- package/dist/core/ingestion/variable-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/dart.js +94 -0
- package/dist/core/ingestion/variable-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/go.js +83 -0
- package/dist/core/ingestion/variable-extractors/configs/jvm.d.ts +18 -0
- package/dist/core/ingestion/variable-extractors/configs/jvm.js +115 -0
- package/dist/core/ingestion/variable-extractors/configs/php.d.ts +14 -0
- package/dist/core/ingestion/variable-extractors/configs/php.js +58 -0
- package/dist/core/ingestion/variable-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/python.js +101 -0
- package/dist/core/ingestion/variable-extractors/configs/ruby.d.ts +11 -0
- package/dist/core/ingestion/variable-extractors/configs/ruby.js +52 -0
- package/dist/core/ingestion/variable-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/rust.js +76 -0
- package/dist/core/ingestion/variable-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/swift.js +88 -0
- package/dist/core/ingestion/variable-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/variable-extractors/configs/typescript-javascript.js +83 -0
- package/dist/core/ingestion/variable-extractors/generic.d.ts +5 -0
- package/dist/core/ingestion/variable-extractors/generic.js +80 -0
- package/dist/core/ingestion/variable-types.d.ts +82 -0
- package/dist/core/ingestion/variable-types.js +2 -0
- package/dist/core/ingestion/workers/parse-worker.js +34 -0
- package/dist/core/lbug/csv-generator.js +1 -0
- package/dist/core/lbug/schema.d.ts +2 -1
- package/dist/core/lbug/schema.js +5 -0
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Full DDL schemas remain in each package's own schema.ts because
|
|
8
8
|
* the CLI uses native LadybugDB and the web uses WASM.
|
|
9
9
|
*/
|
|
10
|
-
export declare const NODE_TABLES: readonly ["File", "Folder", "Function", "Class", "Interface", "Method", "CodeElement", "Community", "Process", "Section", "Struct", "Enum", "Macro", "Typedef", "Union", "Namespace", "Trait", "Impl", "TypeAlias", "Const", "Static", "Property", "Record", "Delegate", "Annotation", "Constructor", "Template", "Module", "Route", "Tool"];
|
|
10
|
+
export declare const NODE_TABLES: readonly ["File", "Folder", "Function", "Class", "Interface", "Method", "CodeElement", "Community", "Process", "Section", "Struct", "Enum", "Macro", "Typedef", "Union", "Namespace", "Trait", "Impl", "TypeAlias", "Const", "Static", "Variable", "Property", "Record", "Delegate", "Annotation", "Constructor", "Template", "Module", "Route", "Tool"];
|
|
11
11
|
export type NodeTableName = (typeof NODE_TABLES)[number];
|
|
12
12
|
export declare const REL_TABLE_NAME = "CodeRelation";
|
|
13
13
|
export declare const REL_TYPES: readonly ["CONTAINS", "DEFINES", "IMPORTS", "CALLS", "EXTENDS", "IMPLEMENTS", "HAS_METHOD", "HAS_PROPERTY", "ACCESSES", "METHOD_OVERRIDES", "OVERRIDES", "METHOD_IMPLEMENTS", "MEMBER_OF", "STEP_IN_PROCESS", "HANDLES_ROUTE", "FETCHES", "HANDLES_TOOL", "ENTRY_POINT_OF", "WRAPS", "QUERIES"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-constants.d.ts","sourceRoot":"","sources":["../../src/lbug/schema-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"schema-constants.d.ts","sourceRoot":"","sources":["../../src/lbug/schema-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,WAAW,0VAgCd,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,eAAO,MAAM,SAAS,iSAqBZ,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,eAAO,MAAM,oBAAoB,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-constants.js","sourceRoot":"","sources":["../../src/lbug/schema-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,QAAQ;IACR,UAAU;IACV,OAAO;IACP,WAAW;IACX,QAAQ;IACR,aAAa;IACb,WAAW;IACX,SAAS;IACT,SAAS;IACT,QAAQ;IACR,MAAM;IACN,OAAO;IACP,SAAS;IACT,OAAO;IACP,WAAW;IACX,OAAO;IACP,MAAM;IACN,WAAW;IACX,OAAO;IACP,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,aAAa;IACb,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;CACE,CAAC;AAIX,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU;IACV,SAAS;IACT,SAAS;IACT,OAAO;IACP,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,UAAU;IACV,kBAAkB;IAClB,WAAW,EAAE,mEAAmE;IAChF,mBAAmB;IACnB,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,OAAO;IACP,SAAS;CACD,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema-constants.js","sourceRoot":"","sources":["../../src/lbug/schema-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,QAAQ;IACR,UAAU;IACV,OAAO;IACP,WAAW;IACX,QAAQ;IACR,aAAa;IACb,WAAW;IACX,SAAS;IACT,SAAS;IACT,QAAQ;IACR,MAAM;IACN,OAAO;IACP,SAAS;IACT,OAAO;IACP,WAAW;IACX,OAAO;IACP,MAAM;IACN,WAAW;IACX,OAAO;IACP,QAAQ;IACR,UAAU;IACV,UAAU;IACV,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,aAAa;IACb,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;CACE,CAAC;AAIX,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU;IACV,SAAS;IACT,SAAS;IACT,OAAO;IACP,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,UAAU;IACV,kBAAkB;IAClB,WAAW,EAAE,mEAAmE;IAChF,mBAAmB;IACnB,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,OAAO;IACP,SAAS;CACD,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { KnowledgeGraph } from '../graph/types.js';
|
|
2
2
|
import { ASTCache } from './ast-cache.js';
|
|
3
|
-
import type { SymbolDefinition, SymbolTableReader } from './model/
|
|
3
|
+
import type { SymbolDefinition, SymbolTableReader, HeritageMap, ExtractedHeritage } from './model/index.js';
|
|
4
4
|
import type { ResolutionContext } from './model/resolution-context.js';
|
|
5
5
|
import type { TieredCandidates } from './model/resolution-context.js';
|
|
6
6
|
import type { TypeEnvironment } from './type-env.js';
|
|
7
|
-
import type { HeritageMap } from './model/heritage-map.js';
|
|
8
7
|
import type { BindingAccumulator } from './binding-accumulator.js';
|
|
9
8
|
import type { ExtractedCall, ExtractedAssignment, ExtractedRoute, ExtractedFetchCall, FileConstructorBindings } from './workers/parse-worker.js';
|
|
10
|
-
import type { ExtractedHeritage } from './model/heritage-map.js';
|
|
11
9
|
import type { LiteralTypeInferrer } from './type-extractors/types.js';
|
|
12
10
|
import type { SyntaxNode } from './utils/ast-helpers.js';
|
|
13
11
|
/** Per-file resolved type bindings for exported symbols.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CLASS_TYPES, CALL_TARGET_TYPES } from './model/
|
|
1
|
+
import { CLASS_TYPES, CALL_TARGET_TYPES, lookupMethodByOwnerWithMRO } from './model/index.js';
|
|
2
2
|
import Parser from 'tree-sitter';
|
|
3
3
|
import { TIER_CONFIDENCE } from './model/resolution-context.js';
|
|
4
4
|
import { isLanguageAvailable, loadParser, loadLanguage } from '../tree-sitter/parser-loader.js';
|
|
@@ -15,7 +15,6 @@ import { getTreeSitterBufferSize } from './constants.js';
|
|
|
15
15
|
import { normalizeFetchURL, routeMatches } from './route-extractors/nextjs.js';
|
|
16
16
|
import { extractTemplateComponents } from './vue-sfc-extractor.js';
|
|
17
17
|
import { extractReturnTypeName, stripNullable } from './type-extractors/shared.js';
|
|
18
|
-
import { lookupMethodByOwnerWithMRO } from './model/resolve.js';
|
|
19
18
|
/**
|
|
20
19
|
* Type labels treated as class-like **method-dispatch receivers** by the call
|
|
21
20
|
* resolver — the set walked by the MRO / heritage path for member and static
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TypeEnvironment } from './type-env.js';
|
|
2
|
-
import type { SymbolTableReader } from './model/
|
|
2
|
+
import type { SymbolTableReader } from './model/index.js';
|
|
3
3
|
import { SupportedLanguages } from '../../_shared/index.js';
|
|
4
4
|
/**
|
|
5
5
|
* Visibility levels used across all supported languages.
|
|
@@ -16,6 +16,7 @@ import type { ClassExtractor } from './class-types.js';
|
|
|
16
16
|
import type { ExportChecker } from './export-detection.js';
|
|
17
17
|
import type { FieldExtractor } from './field-extractor.js';
|
|
18
18
|
import type { MethodExtractor } from './method-types.js';
|
|
19
|
+
import type { VariableExtractor } from './variable-types.js';
|
|
19
20
|
import type { ImportResolverFn } from './import-resolvers/types.js';
|
|
20
21
|
import type { NamedBindingExtractorFn } from './named-bindings/types.js';
|
|
21
22
|
import type { SyntaxNode } from './utils/ast-helpers.js';
|
|
@@ -134,6 +135,10 @@ interface LanguageProviderConfig {
|
|
|
134
135
|
* declarations. Produces MethodInfo[] with name, parameters, visibility, isAbstract,
|
|
135
136
|
* isFinal, annotations metadata. Default: undefined (no method extraction). */
|
|
136
137
|
readonly methodExtractor?: MethodExtractor;
|
|
138
|
+
/** Variable extractor for extracting metadata from module/file-scoped variable,
|
|
139
|
+
* constant, and static declarations. Produces VariableInfo with type, visibility,
|
|
140
|
+
* isConst, isStatic, isMutable metadata. Default: undefined (no variable extraction). */
|
|
141
|
+
readonly variableExtractor?: VariableExtractor;
|
|
137
142
|
/** Class/type extractor for deriving canonical qualified names for class-like symbols.
|
|
138
143
|
* Uses the same provider-driven strategy pattern as method/field extraction so
|
|
139
144
|
* namespace/package/module rules stay language-specific. */
|
|
@@ -30,6 +30,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
30
30
|
import { cConfig as cFieldConfig, cppConfig as cppFieldConfig, } from '../field-extractors/configs/c-cpp.js';
|
|
31
31
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
32
32
|
import { cMethodConfig, cppMethodConfig } from '../method-extractors/configs/c-cpp.js';
|
|
33
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
34
|
+
import { cVariableConfig, cppVariableConfig } from '../variable-extractors/configs/c-cpp.js';
|
|
33
35
|
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
34
36
|
import { cCallConfig, cppCallConfig } from '../call-extractors/configs/c-cpp.js';
|
|
35
37
|
const C_BUILT_INS = new Set([
|
|
@@ -296,6 +298,7 @@ export const cProvider = defineLanguage({
|
|
|
296
298
|
...cMethodConfig,
|
|
297
299
|
extractFunctionName: cCppExtractFunctionName,
|
|
298
300
|
}),
|
|
301
|
+
variableExtractor: createVariableExtractor(cVariableConfig),
|
|
299
302
|
classExtractor: cClassExtractor,
|
|
300
303
|
labelOverride: cppLabelOverride,
|
|
301
304
|
builtInNames: C_BUILT_INS,
|
|
@@ -315,6 +318,7 @@ export const cppProvider = defineLanguage({
|
|
|
315
318
|
...cppMethodConfig,
|
|
316
319
|
extractFunctionName: cCppExtractFunctionName,
|
|
317
320
|
}),
|
|
321
|
+
variableExtractor: createVariableExtractor(cppVariableConfig),
|
|
318
322
|
classExtractor: cppClassExtractor,
|
|
319
323
|
labelOverride: cppLabelOverride,
|
|
320
324
|
builtInNames: C_BUILT_INS,
|
|
@@ -20,6 +20,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
20
20
|
import { csharpConfig as csharpFieldConfig } from '../field-extractors/configs/csharp.js';
|
|
21
21
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
22
22
|
import { csharpMethodConfig } from '../method-extractors/configs/csharp.js';
|
|
23
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
24
|
+
import { csharpVariableConfig } from '../variable-extractors/configs/csharp.js';
|
|
23
25
|
const BUILT_INS = new Set([
|
|
24
26
|
'Console',
|
|
25
27
|
'WriteLine',
|
|
@@ -127,6 +129,7 @@ export const csharpProvider = defineLanguage({
|
|
|
127
129
|
callExtractor: createCallExtractor(csharpCallConfig),
|
|
128
130
|
fieldExtractor: createFieldExtractor(csharpFieldConfig),
|
|
129
131
|
methodExtractor: createMethodExtractor(csharpMethodConfig),
|
|
132
|
+
variableExtractor: createVariableExtractor(csharpVariableConfig),
|
|
130
133
|
classExtractor: createClassExtractor(csharpClassConfig),
|
|
131
134
|
builtInNames: BUILT_INS,
|
|
132
135
|
});
|
|
@@ -22,6 +22,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
22
22
|
import { dartConfig as dartFieldConfig } from '../field-extractors/configs/dart.js';
|
|
23
23
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
24
24
|
import { dartMethodConfig } from '../method-extractors/configs/dart.js';
|
|
25
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
26
|
+
import { dartVariableConfig } from '../variable-extractors/configs/dart.js';
|
|
25
27
|
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
26
28
|
import { dartCallConfig } from '../call-extractors/configs/dart.js';
|
|
27
29
|
/**
|
|
@@ -90,6 +92,7 @@ export const dartProvider = defineLanguage({
|
|
|
90
92
|
callExtractor: createCallExtractor(dartCallConfig),
|
|
91
93
|
fieldExtractor: createFieldExtractor(dartFieldConfig),
|
|
92
94
|
methodExtractor: createMethodExtractor(dartMethodConfig),
|
|
95
|
+
variableExtractor: createVariableExtractor(dartVariableConfig),
|
|
93
96
|
classExtractor: createClassExtractor(dartClassConfig),
|
|
94
97
|
enclosingFunctionFinder: dartEnclosingFunctionFinder,
|
|
95
98
|
builtInNames: BUILT_INS,
|
|
@@ -20,6 +20,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
20
20
|
import { goConfig as goFieldConfig } from '../field-extractors/configs/go.js';
|
|
21
21
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
22
22
|
import { goMethodConfig } from '../method-extractors/configs/go.js';
|
|
23
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
24
|
+
import { goVariableConfig } from '../variable-extractors/configs/go.js';
|
|
23
25
|
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
24
26
|
import { goCallConfig } from '../call-extractors/configs/go.js';
|
|
25
27
|
export const goProvider = defineLanguage({
|
|
@@ -33,5 +35,6 @@ export const goProvider = defineLanguage({
|
|
|
33
35
|
callExtractor: createCallExtractor(goCallConfig),
|
|
34
36
|
fieldExtractor: createFieldExtractor(goFieldConfig),
|
|
35
37
|
methodExtractor: createMethodExtractor(goMethodConfig),
|
|
38
|
+
variableExtractor: createVariableExtractor(goVariableConfig),
|
|
36
39
|
classExtractor: createClassExtractor(goClassConfig),
|
|
37
40
|
});
|
|
@@ -21,6 +21,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
21
21
|
import { javaConfig } from '../field-extractors/configs/jvm.js';
|
|
22
22
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
23
23
|
import { javaMethodConfig } from '../method-extractors/configs/jvm.js';
|
|
24
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
25
|
+
import { javaVariableConfig } from '../variable-extractors/configs/jvm.js';
|
|
24
26
|
export const javaProvider = defineLanguage({
|
|
25
27
|
id: SupportedLanguages.Java,
|
|
26
28
|
extensions: ['.java'],
|
|
@@ -34,5 +36,6 @@ export const javaProvider = defineLanguage({
|
|
|
34
36
|
callExtractor: createCallExtractor(javaCallConfig),
|
|
35
37
|
fieldExtractor: createFieldExtractor(javaConfig),
|
|
36
38
|
methodExtractor: createMethodExtractor(javaMethodConfig),
|
|
39
|
+
variableExtractor: createVariableExtractor(javaVariableConfig),
|
|
37
40
|
classExtractor: createClassExtractor(javaClassConfig),
|
|
38
41
|
});
|
|
@@ -22,6 +22,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
22
22
|
import { kotlinConfig } from '../field-extractors/configs/jvm.js';
|
|
23
23
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
24
24
|
import { kotlinMethodConfig } from '../method-extractors/configs/jvm.js';
|
|
25
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
26
|
+
import { kotlinVariableConfig } from '../variable-extractors/configs/jvm.js';
|
|
25
27
|
/** Check if a Kotlin function_declaration capture is inside a class_body (i.e., a method).
|
|
26
28
|
* Kotlin grammar uses function_declaration for both top-level functions and class methods.
|
|
27
29
|
* Returns true when the captured definition node has a class_body ancestor. */
|
|
@@ -105,6 +107,7 @@ export const kotlinProvider = defineLanguage({
|
|
|
105
107
|
callExtractor: createCallExtractor(kotlinCallConfig),
|
|
106
108
|
fieldExtractor: createFieldExtractor(kotlinConfig),
|
|
107
109
|
methodExtractor: createMethodExtractor(kotlinMethodConfig),
|
|
110
|
+
variableExtractor: createVariableExtractor(kotlinVariableConfig),
|
|
108
111
|
classExtractor: createClassExtractor(kotlinClassConfig),
|
|
109
112
|
builtInNames: BUILT_INS,
|
|
110
113
|
labelOverride: (functionNode, defaultLabel) => {
|
|
@@ -19,6 +19,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
19
19
|
import { phpConfig as phpFieldConfig } from '../field-extractors/configs/php.js';
|
|
20
20
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
21
21
|
import { phpMethodConfig } from '../method-extractors/configs/php.js';
|
|
22
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
23
|
+
import { phpVariableConfig } from '../variable-extractors/configs/php.js';
|
|
22
24
|
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
23
25
|
import { phpCallConfig } from '../call-extractors/configs/php.js';
|
|
24
26
|
const BUILT_INS = new Set([
|
|
@@ -227,6 +229,7 @@ export const phpProvider = defineLanguage({
|
|
|
227
229
|
callExtractor: createCallExtractor(phpCallConfig),
|
|
228
230
|
fieldExtractor: createFieldExtractor(phpFieldConfig),
|
|
229
231
|
methodExtractor: createMethodExtractor(phpMethodConfig),
|
|
232
|
+
variableExtractor: createVariableExtractor(phpVariableConfig),
|
|
230
233
|
classExtractor: createClassExtractor(phpClassConfig),
|
|
231
234
|
descriptionExtractor: phpDescriptionExtractor,
|
|
232
235
|
isRouteFile: isPhpRouteFile,
|
|
@@ -22,6 +22,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
22
22
|
import { pythonConfig as pythonFieldConfig } from '../field-extractors/configs/python.js';
|
|
23
23
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
24
24
|
import { pythonMethodConfig } from '../method-extractors/configs/python.js';
|
|
25
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
26
|
+
import { pythonVariableConfig } from '../variable-extractors/configs/python.js';
|
|
25
27
|
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
26
28
|
import { pythonCallConfig } from '../call-extractors/configs/python.js';
|
|
27
29
|
const BUILT_INS = new Set([
|
|
@@ -66,6 +68,7 @@ export const pythonProvider = defineLanguage({
|
|
|
66
68
|
callExtractor: createCallExtractor(pythonCallConfig),
|
|
67
69
|
fieldExtractor: createFieldExtractor(pythonFieldConfig),
|
|
68
70
|
methodExtractor: createMethodExtractor(pythonMethodConfig),
|
|
71
|
+
variableExtractor: createVariableExtractor(pythonVariableConfig),
|
|
69
72
|
classExtractor: createClassExtractor(pythonClassConfig),
|
|
70
73
|
builtInNames: BUILT_INS,
|
|
71
74
|
});
|
|
@@ -19,6 +19,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
19
19
|
import { rubyConfig as rubyFieldConfig } from '../field-extractors/configs/ruby.js';
|
|
20
20
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
21
21
|
import { rubyMethodConfig } from '../method-extractors/configs/ruby.js';
|
|
22
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
23
|
+
import { rubyVariableConfig } from '../variable-extractors/configs/ruby.js';
|
|
22
24
|
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
23
25
|
import { rubyCallConfig } from '../call-extractors/configs/ruby.js';
|
|
24
26
|
/** Ruby method/singleton_method: extract name from 'name' field, label as Method. */
|
|
@@ -124,6 +126,7 @@ export const rubyProvider = defineLanguage({
|
|
|
124
126
|
...rubyMethodConfig,
|
|
125
127
|
extractFunctionName: rubyExtractFunctionName,
|
|
126
128
|
}),
|
|
129
|
+
variableExtractor: createVariableExtractor(rubyVariableConfig),
|
|
127
130
|
classExtractor: createClassExtractor(rubyClassConfig),
|
|
128
131
|
builtInNames: BUILT_INS,
|
|
129
132
|
});
|
|
@@ -22,6 +22,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
22
22
|
import { rustConfig as rustFieldConfig } from '../field-extractors/configs/rust.js';
|
|
23
23
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
24
24
|
import { rustMethodConfig } from '../method-extractors/configs/rust.js';
|
|
25
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
26
|
+
import { rustVariableConfig } from '../variable-extractors/configs/rust.js';
|
|
25
27
|
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
26
28
|
import { rustCallConfig } from '../call-extractors/configs/rust.js';
|
|
27
29
|
/** Rust impl_item: find the function_item child and extract its name as a Method. */
|
|
@@ -121,6 +123,7 @@ export const rustProvider = defineLanguage({
|
|
|
121
123
|
...rustMethodConfig,
|
|
122
124
|
extractFunctionName: rustExtractFunctionName,
|
|
123
125
|
}),
|
|
126
|
+
variableExtractor: createVariableExtractor(rustVariableConfig),
|
|
124
127
|
classExtractor: createClassExtractor(rustClassConfig),
|
|
125
128
|
builtInNames: BUILT_INS,
|
|
126
129
|
});
|
|
@@ -21,6 +21,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
21
21
|
import { swiftConfig as swiftFieldConfig } from '../field-extractors/configs/swift.js';
|
|
22
22
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
23
23
|
import { swiftMethodConfig } from '../method-extractors/configs/swift.js';
|
|
24
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
25
|
+
import { swiftVariableConfig } from '../variable-extractors/configs/swift.js';
|
|
24
26
|
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
25
27
|
import { swiftCallConfig } from '../call-extractors/configs/swift.js';
|
|
26
28
|
/**
|
|
@@ -232,6 +234,7 @@ export const swiftProvider = defineLanguage({
|
|
|
232
234
|
...swiftMethodConfig,
|
|
233
235
|
extractFunctionName: swiftExtractFunctionName,
|
|
234
236
|
}),
|
|
237
|
+
variableExtractor: createVariableExtractor(swiftVariableConfig),
|
|
235
238
|
classExtractor: createClassExtractor(swiftClassConfig),
|
|
236
239
|
implicitImportWirer: wireSwiftImplicitImports,
|
|
237
240
|
builtInNames: BUILT_INS,
|
|
@@ -20,6 +20,8 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
20
20
|
import { javascriptConfig } from '../field-extractors/configs/typescript-javascript.js';
|
|
21
21
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
22
22
|
import { typescriptMethodConfig, javascriptMethodConfig, } from '../method-extractors/configs/typescript-javascript.js';
|
|
23
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
24
|
+
import { typescriptVariableConfig, javascriptVariableConfig, } from '../variable-extractors/configs/typescript-javascript.js';
|
|
23
25
|
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
24
26
|
import { typescriptCallConfig, javascriptCallConfig, } from '../call-extractors/configs/typescript-javascript.js';
|
|
25
27
|
/**
|
|
@@ -154,6 +156,7 @@ export const typescriptProvider = defineLanguage({
|
|
|
154
156
|
...typescriptMethodConfig,
|
|
155
157
|
extractFunctionName: tsExtractFunctionName,
|
|
156
158
|
}),
|
|
159
|
+
variableExtractor: createVariableExtractor(typescriptVariableConfig),
|
|
157
160
|
classExtractor: createClassExtractor(typescriptClassConfig),
|
|
158
161
|
builtInNames: BUILT_INS,
|
|
159
162
|
});
|
|
@@ -171,6 +174,7 @@ export const javascriptProvider = defineLanguage({
|
|
|
171
174
|
...javascriptMethodConfig,
|
|
172
175
|
extractFunctionName: tsExtractFunctionName,
|
|
173
176
|
}),
|
|
177
|
+
variableExtractor: createVariableExtractor(javascriptVariableConfig),
|
|
174
178
|
classExtractor: createClassExtractor(javascriptClassConfig),
|
|
175
179
|
builtInNames: BUILT_INS,
|
|
176
180
|
});
|
|
@@ -21,6 +21,8 @@ import { extractTsNamedBindings } from '../named-bindings/typescript.js';
|
|
|
21
21
|
import { TYPESCRIPT_QUERIES } from '../tree-sitter-queries.js';
|
|
22
22
|
import { typescriptFieldExtractor } from '../field-extractors/typescript.js';
|
|
23
23
|
import { BUILT_INS as TS_BUILT_INS } from './typescript.js';
|
|
24
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
25
|
+
import { typescriptVariableConfig } from '../variable-extractors/configs/typescript-javascript.js';
|
|
24
26
|
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
25
27
|
import { typescriptCallConfig } from '../call-extractors/configs/typescript-javascript.js';
|
|
26
28
|
const VUE_SPECIFIC_BUILT_INS = [
|
|
@@ -66,6 +68,7 @@ export const vueProvider = defineLanguage({
|
|
|
66
68
|
namedBindingExtractor: extractTsNamedBindings,
|
|
67
69
|
callExtractor: createCallExtractor(typescriptCallConfig),
|
|
68
70
|
fieldExtractor: typescriptFieldExtractor,
|
|
71
|
+
variableExtractor: createVariableExtractor(typescriptVariableConfig),
|
|
69
72
|
classExtractor: vueClassExtractor,
|
|
70
73
|
builtInNames: VUE_BUILT_INS,
|
|
71
74
|
});
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
* `SymbolTable` by design.
|
|
11
11
|
*/
|
|
12
12
|
export { type SemanticModel, type MutableSemanticModel, createSemanticModel, } from './semantic-model.js';
|
|
13
|
-
export { type SymbolTableReader, type SymbolTableWriter, createSymbolTable, } from './symbol-table.js';
|
|
13
|
+
export { type SymbolTableReader, type SymbolTableWriter, createSymbolTable, type SymbolDefinition, type AddMetadata, CLASS_TYPES, CLASS_TYPES_TUPLE, type ClassLikeLabel, FREE_CALLABLE_TYPES, FREE_CALLABLE_TUPLE, type FreeCallableLabel, CALL_TARGET_TYPES, } from './symbol-table.js';
|
|
14
14
|
export { type TypeRegistry, type MutableTypeRegistry, createTypeRegistry, } from './type-registry.js';
|
|
15
15
|
export { type MethodRegistry, type MutableMethodRegistry, createMethodRegistry, } from './method-registry.js';
|
|
16
16
|
export { type FieldRegistry, type MutableFieldRegistry, createFieldRegistry, } from './field-registry.js';
|
|
17
17
|
export { lookupMethodByOwnerWithMRO } from './resolve.js';
|
|
18
18
|
export { type NamedImportBinding, type NamedImportMap, isFileInPackageDir, } from './resolution-context.js';
|
|
19
|
-
export { type ExtractedHeritage, type HeritageResolutionStrategy, type HeritageStrategyLookup, } from './heritage-map.js';
|
|
19
|
+
export { type ExtractedHeritage, type HeritageMap, type HeritageResolutionStrategy, type HeritageStrategyLookup, } from './heritage-map.js';
|
|
20
20
|
export { CALLABLE_ONLY_LABELS, INERT_LABELS, DISPATCH_LABELS, ALL_NODE_LABELS, type LabelBehavior, } from './registration-table.js';
|
|
@@ -16,7 +16,7 @@ export { createSemanticModel, } from './semantic-model.js';
|
|
|
16
16
|
// SymbolTable is exclusively owned by SemanticModel. Re-exported here
|
|
17
17
|
// for the rare caller that needs the file/callable interface in
|
|
18
18
|
// isolation (e.g. tests).
|
|
19
|
-
export { createSymbolTable, } from './symbol-table.js';
|
|
19
|
+
export { createSymbolTable, CLASS_TYPES, CLASS_TYPES_TUPLE, FREE_CALLABLE_TYPES, FREE_CALLABLE_TUPLE, CALL_TARGET_TYPES, } from './symbol-table.js';
|
|
20
20
|
// Type registry (classes, structs, interfaces, enums, records, impls)
|
|
21
21
|
export { createTypeRegistry, } from './type-registry.js';
|
|
22
22
|
// Method registry (owner-scoped methods with arity-aware overload lookup)
|
|
@@ -12,6 +12,9 @@ import type { MroStrategy } from '../../../_shared/index.js';
|
|
|
12
12
|
/**
|
|
13
13
|
* Gather all ancestor IDs in BFS / topological order.
|
|
14
14
|
* Returns the linearized list of ancestor IDs (excluding the class itself).
|
|
15
|
+
*
|
|
16
|
+
* Uses a head-pointer BFS (`queue[head++]`) instead of `Array.shift()` to
|
|
17
|
+
* avoid O(n) per-dequeue re-indexing — matching `buildParentMapFromHeritage`.
|
|
15
18
|
*/
|
|
16
19
|
declare function gatherAncestors(classId: string, parentMap: Map<string, string[]>): string[];
|
|
17
20
|
/**
|
|
@@ -15,13 +15,17 @@
|
|
|
15
15
|
/**
|
|
16
16
|
* Gather all ancestor IDs in BFS / topological order.
|
|
17
17
|
* Returns the linearized list of ancestor IDs (excluding the class itself).
|
|
18
|
+
*
|
|
19
|
+
* Uses a head-pointer BFS (`queue[head++]`) instead of `Array.shift()` to
|
|
20
|
+
* avoid O(n) per-dequeue re-indexing — matching `buildParentMapFromHeritage`.
|
|
18
21
|
*/
|
|
19
22
|
function gatherAncestors(classId, parentMap) {
|
|
20
23
|
const visited = new Set();
|
|
21
24
|
const order = [];
|
|
22
25
|
const queue = [...(parentMap.get(classId) ?? [])];
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
let head = 0;
|
|
27
|
+
while (head < queue.length) {
|
|
28
|
+
const id = queue[head++];
|
|
25
29
|
if (visited.has(id))
|
|
26
30
|
continue;
|
|
27
31
|
visited.add(id);
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { KnowledgeGraph } from '../graph/types.js';
|
|
2
|
-
import type { SymbolTableWriter } from './model/
|
|
2
|
+
import type { SymbolTableWriter, ExtractedHeritage } from './model/index.js';
|
|
3
3
|
import { ASTCache } from './ast-cache.js';
|
|
4
4
|
import { WorkerPool } from './workers/worker-pool.js';
|
|
5
5
|
import type { ExtractedImport, ExtractedCall, ExtractedAssignment, ExtractedRoute, ExtractedFetchCall, ExtractedDecoratorRoute, ExtractedToolDef, FileConstructorBindings, FileScopeBindings, ExtractedORMQuery } from './workers/parse-worker.js';
|
|
6
|
-
import type { ExtractedHeritage } from './model/heritage-map.js';
|
|
7
6
|
export type FileProgressCallback = (current: number, total: number, filePath: string) => void;
|
|
8
7
|
export interface WorkerExtractedData {
|
|
9
8
|
imports: ExtractedImport[];
|