@optave/codegraph 3.9.5 → 3.9.6
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/ast-analysis/engine.d.ts.map +1 -1
- package/dist/ast-analysis/engine.js +3 -2
- package/dist/ast-analysis/engine.js.map +1 -1
- package/dist/ast-analysis/rules/csharp.d.ts.map +1 -1
- package/dist/ast-analysis/rules/csharp.js +8 -1
- package/dist/ast-analysis/rules/csharp.js.map +1 -1
- package/dist/ast-analysis/rules/go.d.ts.map +1 -1
- package/dist/ast-analysis/rules/go.js +4 -1
- package/dist/ast-analysis/rules/go.js.map +1 -1
- package/dist/ast-analysis/rules/index.d.ts +6 -0
- package/dist/ast-analysis/rules/index.d.ts.map +1 -1
- package/dist/ast-analysis/rules/index.js +151 -4
- package/dist/ast-analysis/rules/index.js.map +1 -1
- package/dist/ast-analysis/rules/java.d.ts.map +1 -1
- package/dist/ast-analysis/rules/java.js +5 -1
- package/dist/ast-analysis/rules/java.js.map +1 -1
- package/dist/ast-analysis/rules/php.d.ts.map +1 -1
- package/dist/ast-analysis/rules/php.js +6 -1
- package/dist/ast-analysis/rules/php.js.map +1 -1
- package/dist/ast-analysis/rules/python.d.ts.map +1 -1
- package/dist/ast-analysis/rules/python.js +5 -1
- package/dist/ast-analysis/rules/python.js.map +1 -1
- package/dist/ast-analysis/rules/ruby.d.ts.map +1 -1
- package/dist/ast-analysis/rules/ruby.js +4 -1
- package/dist/ast-analysis/rules/ruby.js.map +1 -1
- package/dist/ast-analysis/rules/rust.d.ts.map +1 -1
- package/dist/ast-analysis/rules/rust.js +5 -1
- package/dist/ast-analysis/rules/rust.js.map +1 -1
- package/dist/ast-analysis/visitors/ast-store-visitor.d.ts +2 -1
- package/dist/ast-analysis/visitors/ast-store-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/ast-store-visitor.js +129 -37
- package/dist/ast-analysis/visitors/ast-store-visitor.js.map +1 -1
- package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
- package/dist/domain/graph/builder/pipeline.js +14 -2
- package/dist/domain/graph/builder/pipeline.js.map +1 -1
- package/dist/domain/parser.d.ts +40 -0
- package/dist/domain/parser.d.ts.map +1 -1
- package/dist/domain/parser.js +104 -0
- package/dist/domain/parser.js.map +1 -1
- package/dist/domain/search/models.js +1 -1
- package/dist/domain/wasm-worker-entry.js +3 -2
- package/dist/domain/wasm-worker-entry.js.map +1 -1
- package/dist/features/ast.d.ts.map +1 -1
- package/dist/features/ast.js +11 -9
- package/dist/features/ast.js.map +1 -1
- package/grammars/tree-sitter-erlang.wasm +0 -0
- package/package.json +7 -7
- package/src/ast-analysis/engine.ts +11 -1
- package/src/ast-analysis/rules/csharp.ts +8 -1
- package/src/ast-analysis/rules/go.ts +4 -1
- package/src/ast-analysis/rules/index.ts +181 -4
- package/src/ast-analysis/rules/java.ts +5 -1
- package/src/ast-analysis/rules/php.ts +6 -1
- package/src/ast-analysis/rules/python.ts +5 -1
- package/src/ast-analysis/rules/ruby.ts +4 -1
- package/src/ast-analysis/rules/rust.ts +5 -1
- package/src/ast-analysis/visitors/ast-store-visitor.ts +129 -34
- package/src/domain/graph/builder/pipeline.ts +24 -4
- package/src/domain/parser.ts +122 -0
- package/src/domain/search/models.ts +1 -1
- package/src/domain/wasm-worker-entry.ts +11 -1
- package/src/features/ast.ts +22 -9
|
@@ -28,7 +28,9 @@ import type { Tree } from 'web-tree-sitter';
|
|
|
28
28
|
import { Language, Parser, Query } from 'web-tree-sitter';
|
|
29
29
|
import { computeLOCMetrics, computeMaintainabilityIndex } from '../ast-analysis/metrics.js';
|
|
30
30
|
import {
|
|
31
|
+
AST_STRING_CONFIGS,
|
|
31
32
|
AST_TYPE_MAPS,
|
|
33
|
+
astStopRecurseKinds,
|
|
32
34
|
CFG_RULES,
|
|
33
35
|
COMPLEXITY_RULES,
|
|
34
36
|
DATAFLOW_RULES,
|
|
@@ -584,7 +586,15 @@ function setupVisitorsLocal(
|
|
|
584
586
|
if (opts.ast) {
|
|
585
587
|
const astTypeMap = AST_TYPE_MAPS.get(langId);
|
|
586
588
|
if (astTypeMap) {
|
|
587
|
-
|
|
589
|
+
const stringConfig = AST_STRING_CONFIGS.get(langId);
|
|
590
|
+
astVisitor = createAstStoreVisitor(
|
|
591
|
+
astTypeMap,
|
|
592
|
+
defs,
|
|
593
|
+
relPath,
|
|
594
|
+
new Map<string, number>(),
|
|
595
|
+
stringConfig,
|
|
596
|
+
astStopRecurseKinds(langId),
|
|
597
|
+
);
|
|
588
598
|
visitors.push(astVisitor);
|
|
589
599
|
}
|
|
590
600
|
}
|
package/src/features/ast.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
AST_STRING_CONFIGS,
|
|
4
|
+
AST_TYPE_MAPS,
|
|
5
|
+
astStopRecurseKinds,
|
|
6
|
+
} from '../ast-analysis/rules/index.js';
|
|
3
7
|
import { buildExtensionSet } from '../ast-analysis/shared.js';
|
|
4
8
|
import { walkWithVisitors } from '../ast-analysis/visitor.js';
|
|
5
9
|
import { createAstStoreVisitor } from '../ast-analysis/visitors/ast-store-visitor.js';
|
|
@@ -22,8 +26,6 @@ const KIND_ICONS: Record<string, string> = {
|
|
|
22
26
|
await: '\u22B3', // ⊳
|
|
23
27
|
};
|
|
24
28
|
|
|
25
|
-
const JS_TS_AST_TYPES = AST_TYPE_MAPS.get('javascript');
|
|
26
|
-
|
|
27
29
|
const WALK_EXTENSIONS = buildExtensionSet(AST_TYPE_MAPS);
|
|
28
30
|
|
|
29
31
|
// ─── Helpers ──────────────────────────────────────────────────────────
|
|
@@ -171,9 +173,10 @@ function collectFileAstRows(
|
|
|
171
173
|
|
|
172
174
|
// WASM fallback — walk tree if available
|
|
173
175
|
const ext = path.extname(relPath).toLowerCase();
|
|
174
|
-
|
|
176
|
+
const langId = symbols._langId || '';
|
|
177
|
+
if ((WALK_EXTENSIONS.has(ext) || AST_TYPE_MAPS.has(langId)) && symbols._tree) {
|
|
175
178
|
const rows: AstRow[] = [];
|
|
176
|
-
walkAst(symbols._tree.rootNode, defs, relPath, rows, nodeIdMap);
|
|
179
|
+
walkAst(symbols._tree.rootNode, defs, relPath, rows, nodeIdMap, langId);
|
|
177
180
|
return rows;
|
|
178
181
|
}
|
|
179
182
|
|
|
@@ -226,13 +229,23 @@ function walkAst(
|
|
|
226
229
|
relPath: string,
|
|
227
230
|
rows: AstRow[],
|
|
228
231
|
nodeIdMap: Map<string, number>,
|
|
232
|
+
langId: string,
|
|
229
233
|
): void {
|
|
230
|
-
|
|
231
|
-
|
|
234
|
+
const astTypeMap = AST_TYPE_MAPS.get(langId);
|
|
235
|
+
if (!astTypeMap) {
|
|
236
|
+
debug(`ast-store: no astTypes for langId=${langId} — skipping walk`);
|
|
232
237
|
return;
|
|
233
238
|
}
|
|
234
|
-
const
|
|
235
|
-
const
|
|
239
|
+
const stringConfig = AST_STRING_CONFIGS.get(langId);
|
|
240
|
+
const visitor = createAstStoreVisitor(
|
|
241
|
+
astTypeMap,
|
|
242
|
+
defs,
|
|
243
|
+
relPath,
|
|
244
|
+
nodeIdMap,
|
|
245
|
+
stringConfig,
|
|
246
|
+
astStopRecurseKinds(langId),
|
|
247
|
+
);
|
|
248
|
+
const results = walkWithVisitors(rootNode, [visitor], langId);
|
|
236
249
|
const collected = (results['ast-store'] || []) as AstRow[];
|
|
237
250
|
rows.push(...collected);
|
|
238
251
|
}
|