@reqlan/analytical 0.9.1 → 0.10.1
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 +19 -2
- package/README.template.md +1 -1
- package/out/core/barrel-page.d.ts +2 -1
- package/out/core/barrel-page.js +18 -83
- package/out/core/barrel-page.js.map +1 -1
- package/out/core/base-discovery.d.ts +6 -0
- package/out/core/base-discovery.js +47 -2
- package/out/core/base-discovery.js.map +1 -1
- package/out/core/create-base.js +10 -14
- package/out/core/create-base.js.map +1 -1
- package/out/core/file-reference-resolve.js +3 -1
- package/out/core/file-reference-resolve.js.map +1 -1
- package/out/core/index-error.d.ts +3 -3
- package/out/core/index-error.js.map +1 -1
- package/out/core/index-state-types.d.ts +47 -0
- package/out/core/index-state-types.js +11 -0
- package/out/core/index-state-types.js.map +1 -0
- package/out/core/path-relative.d.ts +15 -0
- package/out/core/path-relative.js +84 -0
- package/out/core/path-relative.js.map +1 -0
- package/out/core/rqignore.js +62 -62
- package/out/core/rqignore.js.map +1 -1
- package/out/core/types.d.ts +4 -3
- package/out/core/types.js +4 -1
- package/out/core/types.js.map +1 -1
- package/out/core/workspace-paths.d.ts +1 -2
- package/out/core/workspace-paths.js +6 -46
- package/out/core/workspace-paths.js.map +1 -1
- package/out/export/build-export-snapshot.js +1 -1
- package/out/export/build-export-snapshot.js.map +1 -1
- package/out/export/export-utils.d.ts +5 -0
- package/out/export/export-utils.js +38 -0
- package/out/export/export-utils.js.map +1 -0
- package/out/export/write-csv-export.js +1 -1
- package/out/export/write-csv-export.js.map +1 -1
- package/out/export/write-markdown-export.js +1 -1
- package/out/export/write-markdown-export.js.map +1 -1
- package/out/index-store/base-registry.d.ts +2 -3
- package/out/index-store/base-registry.js +8 -4
- package/out/index-store/base-registry.js.map +1 -1
- package/out/index-store/fuzzy-search-hit.d.ts +10 -0
- package/out/index-store/fuzzy-search-hit.js +2 -0
- package/out/index-store/fuzzy-search-hit.js.map +1 -0
- package/out/index-store/index-diagnostics-store.d.ts +4 -0
- package/out/index-store/index-diagnostics-store.js +44 -88
- package/out/index-store/index-diagnostics-store.js.map +1 -1
- package/out/index-store/index-file-error.d.ts +1 -1
- package/out/index-store/index-parse-issues.d.ts +4 -3
- package/out/index-store/index-parse-issues.js +0 -38
- package/out/index-store/index-parse-issues.js.map +1 -1
- package/out/index-store/index-status.d.ts +1 -1
- package/out/index-store/sqlite-store.d.ts +6 -2
- package/out/index-store/sqlite-store.js +70 -613
- package/out/index-store/sqlite-store.js.map +1 -1
- package/out/index-store/webview-graph-queries.d.ts +5 -0
- package/out/index-store/webview-graph-queries.js.map +1 -1
- package/out/index-store/workspace-index-file.d.ts +3 -14
- package/out/index-store/workspace-index-file.js +1 -114
- package/out/index-store/workspace-index-file.js.map +1 -1
- package/out/index-store/workspace-index-sync.d.ts +4 -17
- package/out/index-store/workspace-index-sync.js +29 -11
- package/out/index-store/workspace-index-sync.js.map +1 -1
- package/out/index-store/workspace-index.d.ts +36 -9
- package/out/index-store/workspace-index.js +223 -120
- package/out/index-store/workspace-index.js.map +1 -1
- package/out/index.d.ts +16 -43
- package/out/index.js +9 -25
- package/out/index.js.map +1 -1
- package/out/native/generated.d.ts +102 -0
- package/out/native/generated.js +4 -0
- package/out/native/generated.js.map +1 -0
- package/out/native/index.d.ts +17 -0
- package/out/native/index.js +12 -0
- package/out/native/index.js.map +1 -0
- package/out/native/load-native.d.ts +50 -0
- package/out/native/load-native.js +186 -0
- package/out/native/load-native.js.map +1 -0
- package/out/{analysis-api.d.ts → native/native-analysis-api.d.ts} +19 -19
- package/out/native/native-analysis-api.js +212 -0
- package/out/native/native-analysis-api.js.map +1 -0
- package/out/native/native-index-store.d.ts +5 -0
- package/out/native/native-index-store.js +6 -0
- package/out/native/native-index-store.js.map +1 -0
- package/out/native/native-sql-db.d.ts +135 -0
- package/out/native/native-sql-db.js +217 -0
- package/out/native/native-sql-db.js.map +1 -0
- package/out/native/native-workspace-index.d.ts +164 -0
- package/out/native/native-workspace-index.js +283 -0
- package/out/native/native-workspace-index.js.map +1 -0
- package/out/native/open-analysis-api.d.ts +16 -0
- package/out/native/open-analysis-api.js +21 -0
- package/out/native/open-analysis-api.js.map +1 -0
- package/out/native/parse-source.d.ts +24 -0
- package/out/native/parse-source.js +26 -0
- package/out/native/parse-source.js.map +1 -0
- package/package.json +18 -30
- package/out/analysis/analyser-registry.d.ts +0 -21
- package/out/analysis/analyser-registry.js +0 -33
- package/out/analysis/analyser-registry.js.map +0 -1
- package/out/analysis/completion-tracking-analyser.d.ts +0 -3
- package/out/analysis/completion-tracking-analyser.js +0 -37
- package/out/analysis/completion-tracking-analyser.js.map +0 -1
- package/out/analysis/contextual-search.d.ts +0 -26
- package/out/analysis/contextual-search.js +0 -94
- package/out/analysis/contextual-search.js.map +0 -1
- package/out/analysis/deprecation-impact-analyser.d.ts +0 -3
- package/out/analysis/deprecation-impact-analyser.js +0 -21
- package/out/analysis/deprecation-impact-analyser.js.map +0 -1
- package/out/analysis/file-related-analyser.d.ts +0 -5
- package/out/analysis/file-related-analyser.js +0 -41
- package/out/analysis/file-related-analyser.js.map +0 -1
- package/out/analysis/fuzzy-search-analyser.d.ts +0 -17
- package/out/analysis/fuzzy-search-analyser.js +0 -25
- package/out/analysis/fuzzy-search-analyser.js.map +0 -1
- package/out/analysis/fuzzy-search-worker-client.d.ts +0 -39
- package/out/analysis/fuzzy-search-worker-client.js +0 -178
- package/out/analysis/fuzzy-search-worker-client.js.map +0 -1
- package/out/analysis/fuzzy-search-worker.d.ts +0 -32
- package/out/analysis/fuzzy-search-worker.js +0 -81
- package/out/analysis/fuzzy-search-worker.js.map +0 -1
- package/out/analysis/fuzzy-search.d.ts +0 -62
- package/out/analysis/fuzzy-search.js +0 -471
- package/out/analysis/fuzzy-search.js.map +0 -1
- package/out/analysis/git-dates-analyser.d.ts +0 -12
- package/out/analysis/git-dates-analyser.js +0 -96
- package/out/analysis/git-dates-analyser.js.map +0 -1
- package/out/analysis/list-ideas-analyser.d.ts +0 -3
- package/out/analysis/list-ideas-analyser.js +0 -7
- package/out/analysis/list-ideas-analyser.js.map +0 -1
- package/out/analysis/local-graph-analyser.d.ts +0 -6
- package/out/analysis/local-graph-analyser.js +0 -42
- package/out/analysis/local-graph-analyser.js.map +0 -1
- package/out/analysis/semantic-search-analyser.d.ts +0 -8
- package/out/analysis/semantic-search-analyser.js +0 -51
- package/out/analysis/semantic-search-analyser.js.map +0 -1
- package/out/analysis-api.js +0 -199
- package/out/analysis-api.js.map +0 -1
- package/out/core/analytical-store.d.ts +0 -85
- package/out/core/analytical-store.js +0 -143
- package/out/core/analytical-store.js.map +0 -1
- package/out/core/context-model.d.ts +0 -204
- package/out/core/context-model.js +0 -36
- package/out/core/context-model.js.map +0 -1
- package/out/core/context-signals.d.ts +0 -154
- package/out/core/context-signals.js +0 -406
- package/out/core/context-signals.js.map +0 -1
- package/out/create-runtime.d.ts +0 -47
- package/out/create-runtime.js +0 -79
- package/out/create-runtime.js.map +0 -1
- package/out/export/export-html.d.ts +0 -4
- package/out/export/export-html.js +0 -12
- package/out/export/export-html.js.map +0 -1
- package/out/export/html-export-assets.d.ts +0 -3
- package/out/export/html-export-assets.js +0 -2294
- package/out/export/html-export-assets.js.map +0 -1
- package/out/export/html-export-template.d.ts +0 -18
- package/out/export/html-export-template.js +0 -1154
- package/out/export/html-export-template.js.map +0 -1
- package/out/export/html-export-utils.d.ts +0 -86
- package/out/export/html-export-utils.js +0 -485
- package/out/export/html-export-utils.js.map +0 -1
- package/out/export/write-html-export.d.ts +0 -2
- package/out/export/write-html-export.js +0 -181
- package/out/export/write-html-export.js.map +0 -1
- package/out/graph/physics-core-source.d.ts +0 -5
- package/out/graph/physics-core-source.js +0 -8
- package/out/graph/physics-core-source.js.map +0 -1
- package/out/graph/physics-core.d.ts +0 -141
- package/out/graph/physics-core.js +0 -237
- package/out/graph/physics-core.js.map +0 -1
- package/out/index-store/file-treatment.d.ts +0 -40
- package/out/index-store/file-treatment.js +0 -144
- package/out/index-store/file-treatment.js.map +0 -1
- package/out/index-store/idea-extractor.d.ts +0 -11
- package/out/index-store/idea-extractor.js +0 -351
- package/out/index-store/idea-extractor.js.map +0 -1
- package/out/index-store/overview-coverage.d.ts +0 -23
- package/out/index-store/overview-coverage.js +0 -254
- package/out/index-store/overview-coverage.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"physics-core.js","sourceRoot":"","sources":["../../src/graph/physics-core.js"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Client-side reshape of graph slices for hosting-.rq / implicit-ideaset treatment.
|
|
3
|
-
* Shared by Ideas Summary cytoscape and HTML export canvas.
|
|
4
|
-
*/
|
|
5
|
-
import type { GraphNodeView, GraphViewSlice } from './webview-graph-queries.js';
|
|
6
|
-
export type FileTreatment = 'invisible' | 'compound' | 'linked';
|
|
7
|
-
export declare const FILE_TREATMENT_MODES: readonly FileTreatment[];
|
|
8
|
-
export declare const DEFAULT_FILE_TREATMENT: FileTreatment;
|
|
9
|
-
/** Synthetic leaf id for a hosting .rq file rendered as a linked ideaset node. */
|
|
10
|
-
export declare function fileIdeasetNodeId(fileUri: string): string;
|
|
11
|
-
export declare function isFileIdeasetNodeId(id: string): boolean;
|
|
12
|
-
export declare function isFileIdeasetNode(node: Pick<GraphNodeView, 'id' | 'isFileIdeaset'>): boolean;
|
|
13
|
-
/** Display name for an implicit file ideaset (basename without .rq). */
|
|
14
|
-
export declare function fileIdeasetDisplayName(fileUri: string): string;
|
|
15
|
-
/** Cytoscape compound parent id for a hosting file. */
|
|
16
|
-
export declare function fileCompoundNodeId(fileUri: string): string;
|
|
17
|
-
/** Hosting file URI encoded in a `compound:rq-file:…` id, if any. */
|
|
18
|
-
export declare function fileUriFromFileCompoundId(id: string): string | undefined;
|
|
19
|
-
/** Hosting file URI encoded in a `rq-file:…` linked node id, if any. */
|
|
20
|
-
export declare function fileUriFromFileIdeasetId(id: string): string | undefined;
|
|
21
|
-
export interface FileTreatmentOption {
|
|
22
|
-
id: FileTreatment;
|
|
23
|
-
label: string;
|
|
24
|
-
/** Short toolbar trigger suffix (e.g. "hidden"). */
|
|
25
|
-
shortLabel: string;
|
|
26
|
-
/** Shown as option tooltip / help text. */
|
|
27
|
-
description: string;
|
|
28
|
-
}
|
|
29
|
-
export declare const FILE_TREATMENT_OPTIONS: readonly FileTreatmentOption[];
|
|
30
|
-
export declare function normalizeFileTreatment(value: unknown): FileTreatment;
|
|
31
|
-
export declare function cycleFileTreatment(current: FileTreatment): FileTreatment;
|
|
32
|
-
export declare function fileTreatmentOption(mode: FileTreatment): FileTreatmentOption;
|
|
33
|
-
export declare function fileTreatmentLabel(mode: FileTreatment): string;
|
|
34
|
-
/**
|
|
35
|
-
* Reshape a graph slice for file / implicit-ideaset treatment.
|
|
36
|
-
* - invisible: no synthetic file nodes (ideas float free)
|
|
37
|
-
* - compound: same membership as invisible; consumers draw file compound parents
|
|
38
|
-
* - linked: add ideaset-styled leaf nodes per hosting file with member edges
|
|
39
|
-
*/
|
|
40
|
-
export declare function applyFileTreatment(slice: GraphViewSlice, treatment?: FileTreatment): GraphViewSlice;
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
export const FILE_TREATMENT_MODES = ['invisible', 'compound', 'linked'];
|
|
2
|
-
export const DEFAULT_FILE_TREATMENT = 'linked';
|
|
3
|
-
/** Synthetic leaf id for a hosting .rq file rendered as a linked ideaset node. */
|
|
4
|
-
export function fileIdeasetNodeId(fileUri) {
|
|
5
|
-
return `rq-file:${fileUri}`;
|
|
6
|
-
}
|
|
7
|
-
export function isFileIdeasetNodeId(id) {
|
|
8
|
-
return id.startsWith('rq-file:');
|
|
9
|
-
}
|
|
10
|
-
export function isFileIdeasetNode(node) {
|
|
11
|
-
return Boolean(node.isFileIdeaset) || isFileIdeasetNodeId(node.id);
|
|
12
|
-
}
|
|
13
|
-
/** Display name for an implicit file ideaset (basename without .rq). */
|
|
14
|
-
export function fileIdeasetDisplayName(fileUri) {
|
|
15
|
-
const trimmed = fileUri.replace(/\\/g, '/');
|
|
16
|
-
const slash = trimmed.lastIndexOf('/');
|
|
17
|
-
const fileName = slash >= 0 ? trimmed.slice(slash + 1) : trimmed;
|
|
18
|
-
return fileName.endsWith('.rq') ? fileName.slice(0, -3) : fileName;
|
|
19
|
-
}
|
|
20
|
-
/** Cytoscape compound parent id for a hosting file. */
|
|
21
|
-
export function fileCompoundNodeId(fileUri) {
|
|
22
|
-
return `compound:rq-file:${fileUri}`;
|
|
23
|
-
}
|
|
24
|
-
/** Hosting file URI encoded in a `compound:rq-file:…` id, if any. */
|
|
25
|
-
export function fileUriFromFileCompoundId(id) {
|
|
26
|
-
const prefix = 'compound:rq-file:';
|
|
27
|
-
return id.startsWith(prefix) ? id.slice(prefix.length) : undefined;
|
|
28
|
-
}
|
|
29
|
-
/** Hosting file URI encoded in a `rq-file:…` linked node id, if any. */
|
|
30
|
-
export function fileUriFromFileIdeasetId(id) {
|
|
31
|
-
return isFileIdeasetNodeId(id) ? id.slice('rq-file:'.length) : undefined;
|
|
32
|
-
}
|
|
33
|
-
export const FILE_TREATMENT_OPTIONS = [
|
|
34
|
-
{
|
|
35
|
-
id: 'invisible',
|
|
36
|
-
label: 'Hidden',
|
|
37
|
-
shortLabel: 'hidden',
|
|
38
|
-
description: 'Do not show hosting .rq files — ideas float freely with no file containers or file nodes.'
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
id: 'compound',
|
|
42
|
-
label: 'Compound',
|
|
43
|
-
shortLabel: 'compound',
|
|
44
|
-
description: 'Draw each hosting .rq file as a container around its ideas. Drag the box to move members; click the title to open the file.'
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
id: 'linked',
|
|
48
|
-
label: 'Linked nodes',
|
|
49
|
-
shortLabel: 'linked',
|
|
50
|
-
description: 'Show each hosting .rq file as an ideaset-styled node linked to its ideas. Click the node to open the file.'
|
|
51
|
-
}
|
|
52
|
-
];
|
|
53
|
-
export function normalizeFileTreatment(value) {
|
|
54
|
-
return value === 'compound' || value === 'linked' || value === 'invisible'
|
|
55
|
-
? value
|
|
56
|
-
: DEFAULT_FILE_TREATMENT;
|
|
57
|
-
}
|
|
58
|
-
export function cycleFileTreatment(current) {
|
|
59
|
-
const index = FILE_TREATMENT_MODES.indexOf(current);
|
|
60
|
-
return FILE_TREATMENT_MODES[(index + 1) % FILE_TREATMENT_MODES.length] ?? DEFAULT_FILE_TREATMENT;
|
|
61
|
-
}
|
|
62
|
-
export function fileTreatmentOption(mode) {
|
|
63
|
-
return FILE_TREATMENT_OPTIONS.find(option => option.id === mode)
|
|
64
|
-
?? FILE_TREATMENT_OPTIONS[0];
|
|
65
|
-
}
|
|
66
|
-
export function fileTreatmentLabel(mode) {
|
|
67
|
-
return `Files: ${fileTreatmentOption(mode).shortLabel}`;
|
|
68
|
-
}
|
|
69
|
-
function stripSyntheticFileIdeasets(slice) {
|
|
70
|
-
const nodes = slice.nodes.filter(node => !isFileIdeasetNode(node));
|
|
71
|
-
const keep = new Set(nodes.map(node => node.id));
|
|
72
|
-
const edges = slice.edges.filter(edge => keep.has(edge.sourceId) && keep.has(edge.targetId));
|
|
73
|
-
if (nodes.length === slice.nodes.length && edges.length === slice.edges.length) {
|
|
74
|
-
return slice;
|
|
75
|
-
}
|
|
76
|
-
return { ...slice, nodes, edges };
|
|
77
|
-
}
|
|
78
|
-
function memberEligible(node) {
|
|
79
|
-
return !node.isExternal && !isFileIdeasetNode(node) && Boolean(node.fileUri);
|
|
80
|
-
}
|
|
81
|
-
function withLinkedFileIdeasets(slice) {
|
|
82
|
-
const base = stripSyntheticFileIdeasets(slice);
|
|
83
|
-
const membersByFile = new Map();
|
|
84
|
-
for (const node of base.nodes) {
|
|
85
|
-
if (!memberEligible(node)) {
|
|
86
|
-
continue;
|
|
87
|
-
}
|
|
88
|
-
const list = membersByFile.get(node.fileUri) ?? [];
|
|
89
|
-
list.push(node);
|
|
90
|
-
membersByFile.set(node.fileUri, list);
|
|
91
|
-
}
|
|
92
|
-
const extraNodes = [];
|
|
93
|
-
const extraEdges = [];
|
|
94
|
-
for (const [fileUri, members] of [...membersByFile.entries()].sort(([a], [b]) => a.localeCompare(b))) {
|
|
95
|
-
if (members.length === 0) {
|
|
96
|
-
continue;
|
|
97
|
-
}
|
|
98
|
-
const id = fileIdeasetNodeId(fileUri);
|
|
99
|
-
const name = fileIdeasetDisplayName(fileUri);
|
|
100
|
-
extraNodes.push({
|
|
101
|
-
id,
|
|
102
|
-
name,
|
|
103
|
-
kind: 'ideaset',
|
|
104
|
-
fileUri,
|
|
105
|
-
lineStart: 0,
|
|
106
|
-
tags: [],
|
|
107
|
-
isFileIdeaset: true
|
|
108
|
-
});
|
|
109
|
-
for (const member of members) {
|
|
110
|
-
extraEdges.push({
|
|
111
|
-
id: `${id}->ideaset_member:${member.id}`,
|
|
112
|
-
sourceId: id,
|
|
113
|
-
targetId: member.id,
|
|
114
|
-
kind: 'ideaset_member',
|
|
115
|
-
label: name
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
if (extraNodes.length === 0) {
|
|
120
|
-
return base;
|
|
121
|
-
}
|
|
122
|
-
return {
|
|
123
|
-
...base,
|
|
124
|
-
nodes: [...base.nodes, ...extraNodes],
|
|
125
|
-
edges: [...base.edges, ...extraEdges]
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Reshape a graph slice for file / implicit-ideaset treatment.
|
|
130
|
-
* - invisible: no synthetic file nodes (ideas float free)
|
|
131
|
-
* - compound: same membership as invisible; consumers draw file compound parents
|
|
132
|
-
* - linked: add ideaset-styled leaf nodes per hosting file with member edges
|
|
133
|
-
*/
|
|
134
|
-
export function applyFileTreatment(slice, treatment = DEFAULT_FILE_TREATMENT) {
|
|
135
|
-
switch (normalizeFileTreatment(treatment)) {
|
|
136
|
-
case 'linked':
|
|
137
|
-
return withLinkedFileIdeasets(slice);
|
|
138
|
-
case 'compound':
|
|
139
|
-
case 'invisible':
|
|
140
|
-
default:
|
|
141
|
-
return stripSyntheticFileIdeasets(slice);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=file-treatment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-treatment.js","sourceRoot":"","sources":["../../src/index-store/file-treatment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Extracts ideas, attributes, and graph edges from parsed reqlan documents.
|
|
3
|
-
*/
|
|
4
|
-
import { type LangiumDocument } from 'langium';
|
|
5
|
-
import { type WildcardIdeaCandidate } from '@reqlan/language';
|
|
6
|
-
import { type IndexedDocument } from '../core/types.js';
|
|
7
|
-
export interface ExtractIndexedDocumentOptions {
|
|
8
|
-
/** Workspace idea catalog for expanding wildcard references. */
|
|
9
|
-
ideaCandidates?: readonly WildcardIdeaCandidate[];
|
|
10
|
-
}
|
|
11
|
-
export declare function extractIndexedDocument(document: LangiumDocument, options?: ExtractIndexedDocumentOptions): IndexedDocument | undefined;
|
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Extracts ideas, attributes, and graph edges from parsed reqlan documents.
|
|
3
|
-
*/
|
|
4
|
-
import { AstUtils } from 'langium';
|
|
5
|
-
import { findEmbeddedFileReferencesInText, findNamespaceImportByAlias, importPathOf, isAttribute, isBracketReference, isIdea, isIdeaSet, isLocalReference, isMarkdownLink, isModel, isNamespaceImportOnlyReference, isOneLinerIdea, isQualifiedReference, isBlockValue, isListValue, isScalarValue, isWikiLink, isWildcardReference, matchWildcardAgainstCatalog, namespaceImportBindingName, parseMarkdownLink, parseWildcardPathPattern, summarizeIdeaDeclaration, unquoteReqlanString, wildcardReferenceLabel } from '@reqlan/language';
|
|
6
|
-
import { edgeId, ideaId } from '../core/types.js';
|
|
7
|
-
import { createHash } from 'node:crypto';
|
|
8
|
-
export function extractIndexedDocument(document, options) {
|
|
9
|
-
const model = document.parseResult.value;
|
|
10
|
-
if (!isModel(model)) {
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
const fileUri = document.uri.toString();
|
|
14
|
-
const text = document.textDocument.getText();
|
|
15
|
-
const contentHash = hashText(text);
|
|
16
|
-
const ideas = [];
|
|
17
|
-
const edges = [];
|
|
18
|
-
const candidates = options?.ideaCandidates;
|
|
19
|
-
for (const element of model.elements) {
|
|
20
|
-
if (isIdea(element)) {
|
|
21
|
-
ideas.push(toIdeaRecord(element, 'block', fileUri, document));
|
|
22
|
-
collectIdeaEdges(element, fileUri, edges, candidates);
|
|
23
|
-
}
|
|
24
|
-
else if (isOneLinerIdea(element)) {
|
|
25
|
-
ideas.push(toIdeaRecord(element, 'oneliner', fileUri, document));
|
|
26
|
-
collectIdeaEdges(element, fileUri, edges, candidates);
|
|
27
|
-
}
|
|
28
|
-
else if (isIdeaSet(element)) {
|
|
29
|
-
ideas.push(toIdeasetRecord(element, fileUri, document));
|
|
30
|
-
for (const member of element.members) {
|
|
31
|
-
const memberRef = member.ref;
|
|
32
|
-
if (!memberRef) {
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
const sourceId = ideaId(fileUri, element.name);
|
|
36
|
-
const targetId = ideaId(fileUri, memberRef.name);
|
|
37
|
-
edges.push({
|
|
38
|
-
id: edgeId(sourceId, 'ideaset_member', targetId),
|
|
39
|
-
sourceId,
|
|
40
|
-
targetId,
|
|
41
|
-
kind: 'ideaset_member'
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
for (const edge of collectReferenceEdges(model, fileUri, candidates)) {
|
|
47
|
-
edges.push(edge);
|
|
48
|
-
}
|
|
49
|
-
for (const edge of collectFileReferenceEdges(text, fileUri, ideas)) {
|
|
50
|
-
edges.push(edge);
|
|
51
|
-
}
|
|
52
|
-
return { fileUri, contentHash, ideas, edges };
|
|
53
|
-
}
|
|
54
|
-
function toIdeaRecord(idea, kind, fileUri, document) {
|
|
55
|
-
const range = idea.$cstNode?.range;
|
|
56
|
-
const attributes = collectAttributes(idea);
|
|
57
|
-
return {
|
|
58
|
-
id: ideaId(fileUri, idea.name),
|
|
59
|
-
name: idea.name,
|
|
60
|
-
kind,
|
|
61
|
-
fileUri,
|
|
62
|
-
lineStart: range?.start.line ?? 0,
|
|
63
|
-
lineEnd: range?.end.line ?? 0,
|
|
64
|
-
summary: summarizeIdeaDeclaration(idea),
|
|
65
|
-
attributesJson: JSON.stringify(attributes),
|
|
66
|
-
contentHash: ''
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
function toIdeasetRecord(ideaset, fileUri, _document) {
|
|
70
|
-
const range = ideaset.$cstNode?.range;
|
|
71
|
-
return {
|
|
72
|
-
id: ideaId(fileUri, ideaset.name),
|
|
73
|
-
name: ideaset.name,
|
|
74
|
-
kind: 'ideaset',
|
|
75
|
-
fileUri,
|
|
76
|
-
lineStart: range?.start.line ?? 0,
|
|
77
|
-
lineEnd: range?.end.line ?? 0,
|
|
78
|
-
summary: `Ideaset (${ideaset.name})`,
|
|
79
|
-
attributesJson: '{}',
|
|
80
|
-
contentHash: ''
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
function collectAttributes(idea) {
|
|
84
|
-
const attributes = {};
|
|
85
|
-
if (!isIdea(idea)) {
|
|
86
|
-
return attributes;
|
|
87
|
-
}
|
|
88
|
-
for (const element of idea.elements) {
|
|
89
|
-
if (!isAttribute(element)) {
|
|
90
|
-
continue;
|
|
91
|
-
}
|
|
92
|
-
attributes[element.name] = attributeValue(element);
|
|
93
|
-
if (element.negated) {
|
|
94
|
-
attributes[element.name] = false;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return attributes;
|
|
98
|
-
}
|
|
99
|
-
function attributeValue(attribute) {
|
|
100
|
-
if (!attribute.value) {
|
|
101
|
-
return true;
|
|
102
|
-
}
|
|
103
|
-
if (isScalarValue(attribute.value)) {
|
|
104
|
-
return normalizeAttributeText(attribute.value.$cstNode?.text)
|
|
105
|
-
|| inlinePartsText(attribute.value.parts);
|
|
106
|
-
}
|
|
107
|
-
if (isListValue(attribute.value)) {
|
|
108
|
-
return attribute.value.items
|
|
109
|
-
.map(item => normalizeAttributeText(item.$cstNode?.text))
|
|
110
|
-
.filter((item) => Boolean(item));
|
|
111
|
-
}
|
|
112
|
-
if (isBlockValue(attribute.value)) {
|
|
113
|
-
const raw = attribute.value.$cstNode?.text ?? '';
|
|
114
|
-
const inner = raw.replace(/^\{\s*/, '').replace(/\s*\}$/, '').trim();
|
|
115
|
-
return inner.replace(/\r\n/g, '\n');
|
|
116
|
-
}
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
/** Prefer source text; fall back to AST part fields for scalar-like nodes. */
|
|
120
|
-
function inlinePartsText(parts) {
|
|
121
|
-
return parts
|
|
122
|
-
.map(part => {
|
|
123
|
-
if (typeof part === 'string') {
|
|
124
|
-
return part;
|
|
125
|
-
}
|
|
126
|
-
if (!part || typeof part !== 'object') {
|
|
127
|
-
return '';
|
|
128
|
-
}
|
|
129
|
-
const node = part;
|
|
130
|
-
if (typeof node.text === 'string' && node.text.length > 0) {
|
|
131
|
-
return node.text;
|
|
132
|
-
}
|
|
133
|
-
if (typeof node.inlineCode === 'string' && node.inlineCode.length > 0) {
|
|
134
|
-
return node.inlineCode;
|
|
135
|
-
}
|
|
136
|
-
return node.$cstNode?.text ?? '';
|
|
137
|
-
})
|
|
138
|
-
.join('')
|
|
139
|
-
.replace(/\s+/g, ' ')
|
|
140
|
-
.trim();
|
|
141
|
-
}
|
|
142
|
-
function normalizeAttributeText(text) {
|
|
143
|
-
return text?.replace(/\s+/g, ' ').trim() ?? '';
|
|
144
|
-
}
|
|
145
|
-
function collectIdeaEdges(idea, fileUri, edges, candidates) {
|
|
146
|
-
const sourceId = ideaId(fileUri, idea.name);
|
|
147
|
-
for (const node of AstUtils.streamAst(idea)) {
|
|
148
|
-
if (isWikiLink(node) || isBracketReference(node)) {
|
|
149
|
-
for (const edge of referenceToEdges(sourceId, node.target, fileUri, node, candidates)) {
|
|
150
|
-
edges.push(edge);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
if (isMarkdownLink(node)) {
|
|
154
|
-
const target = parseMarkdownLink(node.raw)?.target;
|
|
155
|
-
if (target) {
|
|
156
|
-
edges.push({
|
|
157
|
-
id: edgeId(sourceId, 'file_reference', target),
|
|
158
|
-
sourceId,
|
|
159
|
-
targetFile: target,
|
|
160
|
-
kind: 'file_reference',
|
|
161
|
-
label: target,
|
|
162
|
-
...edgeMetaFromNode(node),
|
|
163
|
-
isResolved: true
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
function collectReferenceEdges(model, fileUri, candidates) {
|
|
170
|
-
const edges = [];
|
|
171
|
-
for (const node of AstUtils.streamAst(model)) {
|
|
172
|
-
if (!isWikiLink(node) && !isBracketReference(node)) {
|
|
173
|
-
continue;
|
|
174
|
-
}
|
|
175
|
-
const owningIdea = AstUtils.getContainerOfType(node, (candidate) => isIdea(candidate) || isOneLinerIdea(candidate));
|
|
176
|
-
if (!owningIdea) {
|
|
177
|
-
continue;
|
|
178
|
-
}
|
|
179
|
-
for (const edge of referenceToEdges(ideaId(fileUri, owningIdea.name), node.target, fileUri, node, candidates)) {
|
|
180
|
-
edges.push(edge);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
return edges;
|
|
184
|
-
}
|
|
185
|
-
function edgeMetaFromNode(node) {
|
|
186
|
-
const line = node.$cstNode?.range?.start.line;
|
|
187
|
-
const raw = node.$cstNode?.text ?? '';
|
|
188
|
-
const snippet = raw.replace(/\s+/g, ' ').trim().slice(0, 120);
|
|
189
|
-
return {
|
|
190
|
-
sourceLine: line !== undefined ? line + 1 : undefined,
|
|
191
|
-
snippet: snippet || undefined
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
function unresolvedIdeaName(target) {
|
|
195
|
-
if (!('idea' in target) || !target.idea || typeof target.idea !== 'object') {
|
|
196
|
-
return undefined;
|
|
197
|
-
}
|
|
198
|
-
const idea = target.idea;
|
|
199
|
-
if (idea.ref) {
|
|
200
|
-
return undefined;
|
|
201
|
-
}
|
|
202
|
-
return idea.$refText ?? idea.name;
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Bare `[alias]` refs to namespace imports target the imported file (same as the editor),
|
|
206
|
-
* not an idea — emit a file_reference edge using the shared namespace-import classifier.
|
|
207
|
-
*/
|
|
208
|
-
function namespaceAliasFileEdge(sourceId, target, meta) {
|
|
209
|
-
if (!isLocalReference(target) && !isQualifiedReference(target)) {
|
|
210
|
-
return undefined;
|
|
211
|
-
}
|
|
212
|
-
if (!isNamespaceImportOnlyReference(target)) {
|
|
213
|
-
return undefined;
|
|
214
|
-
}
|
|
215
|
-
const document = AstUtils.getDocument(target);
|
|
216
|
-
const model = document.parseResult.value;
|
|
217
|
-
if (!isModel(model)) {
|
|
218
|
-
return undefined;
|
|
219
|
-
}
|
|
220
|
-
const bindingName = isQualifiedReference(target)
|
|
221
|
-
? target.qualifier?.$refText
|
|
222
|
-
: namespaceImportBindingName(target);
|
|
223
|
-
if (!bindingName) {
|
|
224
|
-
return undefined;
|
|
225
|
-
}
|
|
226
|
-
const importDecl = isQualifiedReference(target)
|
|
227
|
-
? target.qualifier?.ref
|
|
228
|
-
: findNamespaceImportByAlias(model.imports, bindingName);
|
|
229
|
-
const rawPath = importDecl ? importPathOf(importDecl) : undefined;
|
|
230
|
-
if (!rawPath) {
|
|
231
|
-
return undefined;
|
|
232
|
-
}
|
|
233
|
-
const targetFile = unquoteReqlanString(rawPath);
|
|
234
|
-
return {
|
|
235
|
-
id: edgeId(sourceId, 'file_reference', targetFile),
|
|
236
|
-
sourceId,
|
|
237
|
-
targetFile,
|
|
238
|
-
kind: 'file_reference',
|
|
239
|
-
label: bindingName,
|
|
240
|
-
...meta,
|
|
241
|
-
isResolved: true
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
function referenceToEdges(sourceId, target, fileUri, sourceNode, candidates) {
|
|
245
|
-
if (isWildcardReference(target)) {
|
|
246
|
-
return wildcardReferenceEdges(sourceId, target, sourceNode, candidates);
|
|
247
|
-
}
|
|
248
|
-
const edge = referenceToEdge(sourceId, target, fileUri, sourceNode);
|
|
249
|
-
return edge ? [edge] : [];
|
|
250
|
-
}
|
|
251
|
-
function wildcardReferenceEdges(sourceId, target, sourceNode, candidates) {
|
|
252
|
-
const meta = sourceNode ? edgeMetaFromNode(sourceNode) : {};
|
|
253
|
-
const path = parseWildcardPathPattern(target.pathPattern);
|
|
254
|
-
const label = wildcardReferenceLabel(path, target.ideaPattern);
|
|
255
|
-
if (!candidates?.length) {
|
|
256
|
-
return [{
|
|
257
|
-
id: edgeId(sourceId, 'wildcard_reference', `unresolved:${label}`),
|
|
258
|
-
sourceId,
|
|
259
|
-
kind: 'wildcard_reference',
|
|
260
|
-
label,
|
|
261
|
-
...meta,
|
|
262
|
-
isResolved: false
|
|
263
|
-
}];
|
|
264
|
-
}
|
|
265
|
-
const document = AstUtils.getDocument(target);
|
|
266
|
-
const matches = matchWildcardAgainstCatalog(target.pathPattern, target.ideaPattern, document, candidates);
|
|
267
|
-
if (matches.length === 0) {
|
|
268
|
-
return [{
|
|
269
|
-
id: edgeId(sourceId, 'wildcard_reference', `unresolved:${label}`),
|
|
270
|
-
sourceId,
|
|
271
|
-
kind: 'wildcard_reference',
|
|
272
|
-
label,
|
|
273
|
-
...meta,
|
|
274
|
-
isResolved: false
|
|
275
|
-
}];
|
|
276
|
-
}
|
|
277
|
-
return matches.map(match => {
|
|
278
|
-
const targetId = ideaId(match.fileUri, match.ideaName);
|
|
279
|
-
return {
|
|
280
|
-
id: edgeId(sourceId, 'wildcard_reference', targetId),
|
|
281
|
-
sourceId,
|
|
282
|
-
targetId,
|
|
283
|
-
kind: 'wildcard_reference',
|
|
284
|
-
label: match.ideaName,
|
|
285
|
-
...meta,
|
|
286
|
-
isResolved: true
|
|
287
|
-
};
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
|
-
function referenceToEdge(sourceId, target, fileUri, sourceNode) {
|
|
291
|
-
const meta = sourceNode ? edgeMetaFromNode(sourceNode) : {};
|
|
292
|
-
const ideaRef = 'idea' in target ? target.idea : undefined;
|
|
293
|
-
if (ideaRef && typeof ideaRef === 'object' && 'ref' in ideaRef && ideaRef.ref) {
|
|
294
|
-
const targetFileUri = AstUtils.getDocument(ideaRef.ref).uri.toString();
|
|
295
|
-
const targetId = ideaId(targetFileUri, ideaRef.ref.name);
|
|
296
|
-
return {
|
|
297
|
-
id: edgeId(sourceId, 'references', targetId),
|
|
298
|
-
sourceId,
|
|
299
|
-
targetId,
|
|
300
|
-
kind: 'references',
|
|
301
|
-
label: ideaRef.ref.name,
|
|
302
|
-
...meta,
|
|
303
|
-
isResolved: true
|
|
304
|
-
};
|
|
305
|
-
}
|
|
306
|
-
const namespaceFile = namespaceAliasFileEdge(sourceId, target, meta);
|
|
307
|
-
if (namespaceFile) {
|
|
308
|
-
return namespaceFile;
|
|
309
|
-
}
|
|
310
|
-
const unresolved = unresolvedIdeaName(target);
|
|
311
|
-
if (unresolved) {
|
|
312
|
-
return {
|
|
313
|
-
id: edgeId(sourceId, 'references', `unresolved:${unresolved}`),
|
|
314
|
-
sourceId,
|
|
315
|
-
kind: 'references',
|
|
316
|
-
label: unresolved,
|
|
317
|
-
...meta,
|
|
318
|
-
isResolved: false
|
|
319
|
-
};
|
|
320
|
-
}
|
|
321
|
-
if ('file' in target && typeof target.file === 'string') {
|
|
322
|
-
return {
|
|
323
|
-
id: edgeId(sourceId, 'file_reference', target.file),
|
|
324
|
-
sourceId,
|
|
325
|
-
targetFile: target.file,
|
|
326
|
-
kind: 'file_reference',
|
|
327
|
-
label: target.file,
|
|
328
|
-
...meta,
|
|
329
|
-
isResolved: true
|
|
330
|
-
};
|
|
331
|
-
}
|
|
332
|
-
return undefined;
|
|
333
|
-
}
|
|
334
|
-
function collectFileReferenceEdges(text, fileUri, ideas) {
|
|
335
|
-
const edges = [];
|
|
336
|
-
const sourceId = ideas[0]?.id ?? `${fileUri}#__file__`;
|
|
337
|
-
for (const ref of findEmbeddedFileReferencesInText(text)) {
|
|
338
|
-
edges.push({
|
|
339
|
-
id: edgeId(sourceId, 'file_reference', ref.file),
|
|
340
|
-
sourceId,
|
|
341
|
-
targetFile: ref.file,
|
|
342
|
-
kind: 'file_reference',
|
|
343
|
-
label: ref.file
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
|
-
return edges;
|
|
347
|
-
}
|
|
348
|
-
function hashText(text) {
|
|
349
|
-
return createHash('sha256').update(text).digest('hex').slice(0, 16);
|
|
350
|
-
}
|
|
351
|
-
//# sourceMappingURL=idea-extractor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"idea-extractor.js","sourceRoot":"","sources":["../../src/index-store/idea-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { SqliteIndexStore } from './sqlite-store.js';
|
|
2
|
-
export interface OverviewCoverageScores {
|
|
3
|
-
ideaCount: number;
|
|
4
|
-
rqFileCount: number;
|
|
5
|
-
eligibleNonRqFileCount: number;
|
|
6
|
-
referencedEligibleFileCount: number;
|
|
7
|
-
/** 0–100; null when there are no eligible non-.rq files. */
|
|
8
|
-
fileCoveragePct: number | null;
|
|
9
|
-
distinctFileReferenceCount: number;
|
|
10
|
-
totalLoc: number;
|
|
11
|
-
/** Ideas per 1000 LOC; null when LOC is 0. */
|
|
12
|
-
ideasPerKLoc: number | null;
|
|
13
|
-
/** True when LOC counting hit size caps (totals are lower bounds). */
|
|
14
|
-
locTruncated: boolean;
|
|
15
|
-
calculatedAt: number;
|
|
16
|
-
}
|
|
17
|
-
export interface ComputeOverviewCoverageOptions {
|
|
18
|
-
baseRoot: string;
|
|
19
|
-
store: SqliteIndexStore;
|
|
20
|
-
/** Optional abort check — return true to stop early. */
|
|
21
|
-
shouldCancel?: () => boolean;
|
|
22
|
-
}
|
|
23
|
-
export declare function computeOverviewCoverageScores(options: ComputeOverviewCoverageOptions): Promise<OverviewCoverageScores>;
|