@commentray/core 0.0.9 → 0.1.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/dist/block-scroll-pickers.d.ts +15 -4
- package/dist/block-scroll-pickers.d.ts.map +1 -1
- package/dist/block-scroll-pickers.js +28 -17
- package/dist/block-scroll-pickers.js.map +1 -1
- package/dist/blocks.d.ts +18 -0
- package/dist/blocks.d.ts.map +1 -1
- package/dist/blocks.js +24 -3
- package/dist/blocks.js.map +1 -1
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +49 -10
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/language-intelligence.d.ts +10 -0
- package/dist/language-intelligence.d.ts.map +1 -0
- package/dist/language-intelligence.js +5 -0
- package/dist/language-intelligence.js.map +1 -0
- package/dist/region-marker-naming.d.ts +75 -0
- package/dist/region-marker-naming.d.ts.map +1 -0
- package/dist/region-marker-naming.js +316 -0
- package/dist/region-marker-naming.js.map +1 -0
- package/dist/scroll-sync.d.ts.map +1 -1
- package/dist/scroll-sync.js +12 -2
- package/dist/scroll-sync.js.map +1 -1
- package/dist/source-markers.d.ts +10 -0
- package/dist/source-markers.d.ts.map +1 -1
- package/dist/source-markers.js +32 -5
- package/dist/source-markers.js.map +1 -1
- package/dist/validate-project.d.ts +9 -1
- package/dist/validate-project.d.ts.map +1 -1
- package/dist/validate-project.js +40 -3
- package/dist/validate-project.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,20 +3,31 @@ export type BlockScrollLink = {
|
|
|
3
3
|
/** Same id as `<!-- commentray:block id=… -->` and `index.json` blocks[]. */
|
|
4
4
|
id: string;
|
|
5
5
|
commentrayLine: number;
|
|
6
|
+
/** 1-based inclusive inner lines between paired region markers (unchanged semantics). */
|
|
6
7
|
sourceStart: number;
|
|
7
8
|
sourceEnd: number;
|
|
9
|
+
/**
|
|
10
|
+
* 1-based half-open viewport span for “which block owns this source line?”. Marker-backed
|
|
11
|
+
* blocks use `markerViewportHalfOpen1Based()` in source-markers; `lines:` anchors use
|
|
12
|
+
* `[range.start, range.end + 1)`.
|
|
13
|
+
*/
|
|
14
|
+
markerViewportHalfOpen1Based: {
|
|
15
|
+
lo: number;
|
|
16
|
+
hiExclusive: number;
|
|
17
|
+
};
|
|
8
18
|
};
|
|
9
19
|
/**
|
|
10
20
|
* Choose which commentray line (0-based) to reveal so the commentary matches
|
|
11
|
-
* the top of the source viewport.
|
|
12
|
-
*
|
|
13
|
-
*
|
|
21
|
+
* the top of the source viewport. Uses each link’s `markerViewportHalfOpen1Based`:
|
|
22
|
+
* if the top line falls in `[lo, hiExclusive)`, that block wins; in gaps, the block with the
|
|
23
|
+
* greatest `lo` still at or above the top line; if the viewport is above every `lo`, the first
|
|
24
|
+
* block by `lo`.
|
|
14
25
|
*/
|
|
15
26
|
export declare function pickCommentrayLineForSourceScroll(blocks: BlockScrollLink[], topSourceLine1Based: number): number | null;
|
|
16
27
|
/**
|
|
17
28
|
* Choose a 0-based source line to reveal from the top of the commentray
|
|
18
29
|
* viewport: the block whose marker is at or above that line wins; reveal the
|
|
19
|
-
*
|
|
30
|
+
* first line of its viewport span (`lo` − 1).
|
|
20
31
|
*/
|
|
21
32
|
export declare function pickSourceLine0ForCommentrayScroll(blocks: BlockScrollLink[], topCommentrayLine0Based: number): number | null;
|
|
22
33
|
//# sourceMappingURL=block-scroll-pickers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-scroll-pickers.d.ts","sourceRoot":"","sources":["../src/block-scroll-pickers.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,MAAM,MAAM,eAAe,GAAG;IAC5B,6EAA6E;IAC7E,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"block-scroll-pickers.d.ts","sourceRoot":"","sources":["../src/block-scroll-pickers.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,MAAM,MAAM,eAAe,GAAG;IAC5B,6EAA6E;IAC7E,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,4BAA4B,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,eAAe,EAAE,EACzB,mBAAmB,EAAE,MAAM,GAC1B,MAAM,GAAG,IAAI,CAyBf;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,eAAe,EAAE,EACzB,uBAAuB,EAAE,MAAM,GAC9B,MAAM,GAAG,IAAI,CAUf"}
|
|
@@ -1,41 +1,52 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Choose which commentray line (0-based) to reveal so the commentary matches
|
|
3
|
-
* the top of the source viewport.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* the top of the source viewport. Uses each link’s `markerViewportHalfOpen1Based`:
|
|
4
|
+
* if the top line falls in `[lo, hiExclusive)`, that block wins; in gaps, the block with the
|
|
5
|
+
* greatest `lo` still at or above the top line; if the viewport is above every `lo`, the first
|
|
6
|
+
* block by `lo`.
|
|
6
7
|
*/
|
|
7
8
|
export function pickCommentrayLineForSourceScroll(blocks, topSourceLine1Based) {
|
|
8
9
|
if (blocks.length === 0)
|
|
9
10
|
return null;
|
|
10
|
-
const
|
|
11
|
+
const sorted = [...blocks].sort((a, b) => a.markerViewportHalfOpen1Based.lo - b.markerViewportHalfOpen1Based.lo);
|
|
12
|
+
const first = sorted[0];
|
|
13
|
+
if (first === undefined)
|
|
14
|
+
return null;
|
|
15
|
+
const firstLo = first.markerViewportHalfOpen1Based.lo;
|
|
16
|
+
const inside = sorted.find((b) => b.markerViewportHalfOpen1Based.lo <= topSourceLine1Based &&
|
|
17
|
+
topSourceLine1Based < b.markerViewportHalfOpen1Based.hiExclusive);
|
|
11
18
|
if (inside)
|
|
12
19
|
return inside.commentrayLine;
|
|
13
|
-
if (topSourceLine1Based <
|
|
14
|
-
return
|
|
15
|
-
let best =
|
|
16
|
-
|
|
17
|
-
|
|
20
|
+
if (topSourceLine1Based < firstLo)
|
|
21
|
+
return first.commentrayLine;
|
|
22
|
+
let best = first;
|
|
23
|
+
let bestLo = -Infinity;
|
|
24
|
+
for (const b of sorted) {
|
|
25
|
+
const lo = b.markerViewportHalfOpen1Based.lo;
|
|
26
|
+
if (lo <= topSourceLine1Based && lo > bestLo) {
|
|
18
27
|
best = b;
|
|
19
|
-
|
|
20
|
-
|
|
28
|
+
bestLo = lo;
|
|
29
|
+
}
|
|
21
30
|
}
|
|
22
31
|
return best.commentrayLine;
|
|
23
32
|
}
|
|
24
33
|
/**
|
|
25
34
|
* Choose a 0-based source line to reveal from the top of the commentray
|
|
26
35
|
* viewport: the block whose marker is at or above that line wins; reveal the
|
|
27
|
-
*
|
|
36
|
+
* first line of its viewport span (`lo` − 1).
|
|
28
37
|
*/
|
|
29
38
|
export function pickSourceLine0ForCommentrayScroll(blocks, topCommentrayLine0Based) {
|
|
30
39
|
if (blocks.length === 0)
|
|
31
40
|
return null;
|
|
32
|
-
|
|
33
|
-
|
|
41
|
+
const sorted = [...blocks].sort((a, b) => a.commentrayLine - b.commentrayLine);
|
|
42
|
+
const head = sorted[0];
|
|
43
|
+
if (head === undefined)
|
|
44
|
+
return null;
|
|
45
|
+
let best = head;
|
|
46
|
+
for (const b of sorted) {
|
|
34
47
|
if (b.commentrayLine <= topCommentrayLine0Based)
|
|
35
48
|
best = b;
|
|
36
|
-
else
|
|
37
|
-
break;
|
|
38
49
|
}
|
|
39
|
-
return best.
|
|
50
|
+
return best.markerViewportHalfOpen1Based.lo - 1;
|
|
40
51
|
}
|
|
41
52
|
//# sourceMappingURL=block-scroll-pickers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-scroll-pickers.js","sourceRoot":"","sources":["../src/block-scroll-pickers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"block-scroll-pickers.js","sourceRoot":"","sources":["../src/block-scroll-pickers.ts"],"names":[],"mappings":"AAgBA;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAyB,EACzB,mBAA2B;IAE3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC,4BAA4B,CAAC,EAAE,CAChF,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,4BAA4B,CAAC,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,4BAA4B,CAAC,EAAE,IAAI,mBAAmB;QACxD,mBAAmB,GAAG,CAAC,CAAC,4BAA4B,CAAC,WAAW,CACnE,CAAC;IACF,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,cAAc,CAAC;IACzC,IAAI,mBAAmB,GAAG,OAAO;QAAE,OAAO,KAAK,CAAC,cAAc,CAAC;IAC/D,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,MAAM,GAAG,CAAC,QAAQ,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,CAAC,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAC7C,IAAI,EAAE,IAAI,mBAAmB,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;YAC7C,IAAI,GAAG,CAAC,CAAC;YACT,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,cAAc,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kCAAkC,CAChD,MAAyB,EACzB,uBAA+B;IAE/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,cAAc,IAAI,uBAAuB;YAAE,IAAI,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC"}
|
package/dist/blocks.d.ts
CHANGED
|
@@ -39,6 +39,24 @@ export type CreatedBlock = {
|
|
|
39
39
|
* carries it in the commentary file. Pure: no I/O, deterministic when a
|
|
40
40
|
* fixed `rng` and `id` are supplied.
|
|
41
41
|
*/
|
|
42
|
+
export type WrapSourceLineRangeWithCommentrayMarkersInput = {
|
|
43
|
+
sourceText: string;
|
|
44
|
+
range: BlockRange;
|
|
45
|
+
languageId: string;
|
|
46
|
+
/** Must equal the block id used in `marker:<id>` anchors and companion markers. */
|
|
47
|
+
markerId: string;
|
|
48
|
+
};
|
|
49
|
+
export type WrapSourceLineRangeWithCommentrayMarkersResult = {
|
|
50
|
+
sourceText: string;
|
|
51
|
+
/** 1-based inclusive lines inside the delimiter pair (content only, not marker lines). */
|
|
52
|
+
innerRange: BlockRange;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Wraps an inclusive 1-based line range with language-appropriate Commentray
|
|
56
|
+
* start/end delimiters (e.g. `<!-- #region commentray:… -->` in Markdown,
|
|
57
|
+
* `# commentray:start id=…` in TOML/YAML). Does not write files.
|
|
58
|
+
*/
|
|
59
|
+
export declare function wrapSourceLineRangeWithCommentrayMarkers(input: WrapSourceLineRangeWithCommentrayMarkersInput): WrapSourceLineRangeWithCommentrayMarkersResult;
|
|
42
60
|
export declare function createBlockForRange(input: CreateBlockForRangeInput): CreatedBlock;
|
|
43
61
|
/**
|
|
44
62
|
* Append `blockMarkdown` to existing commentary content, guaranteeing a
|
package/dist/blocks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAwB,MAAM,YAAY,CAAC;AAEzF,iEAAiE;AACjE,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,KAAK,EAAE,UAAU,CAAC;IAClB,2DAA2D;IAC3D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAMF;;;;GAIG;AACH,MAAM,MAAM,6CAA6C,GAAG;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,8CAA8C,GAAG;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,6CAA6C,GACnD,8CAA8C,CAmBhD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,CASjF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAKvF;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,eAAe,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,oBAAoB,GAC1B,eAAe,CAuBjB;AAKD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,MAAoB,GAAG,MAAM,CAMvE"}
|
package/dist/blocks.js
CHANGED
|
@@ -1,14 +1,35 @@
|
|
|
1
1
|
import { buildCommentraySnippetV1 } from "./block-snippet.js";
|
|
2
2
|
import { formatMarkerAnchor } from "./anchors.js";
|
|
3
3
|
import { assertValidMarkerId } from "./marker-ids.js";
|
|
4
|
+
import { leadingIndentOfLine } from "./region-marker-convert.js";
|
|
5
|
+
import { commentrayRegionInsertions } from "./source-markers.js";
|
|
4
6
|
const BLOCK_MARKER_PREFIX = "<!-- commentray:block id=";
|
|
5
7
|
const BLOCK_MARKER_SUFFIX = " -->";
|
|
6
8
|
const CARET_PLACEHOLDER = "_(write commentary here)_";
|
|
7
9
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
10
|
+
* Wraps an inclusive 1-based line range with language-appropriate Commentray
|
|
11
|
+
* start/end delimiters (e.g. `<!-- #region commentray:… -->` in Markdown,
|
|
12
|
+
* `# commentray:start id=…` in TOML/YAML). Does not write files.
|
|
11
13
|
*/
|
|
14
|
+
export function wrapSourceLineRangeWithCommentrayMarkers(input) {
|
|
15
|
+
const id = assertValidMarkerId(input.markerId);
|
|
16
|
+
const rawLines = input.sourceText.replaceAll("\r\n", "\n").split("\n");
|
|
17
|
+
const r = clampRange(input.range, input.sourceText);
|
|
18
|
+
const start0 = r.startLine - 1;
|
|
19
|
+
const end0 = r.endLine - 1;
|
|
20
|
+
const firstLine = rawLines[start0] ?? "";
|
|
21
|
+
const indent = leadingIndentOfLine(firstLine);
|
|
22
|
+
const { start, end } = commentrayRegionInsertions(input.languageId, id, indent);
|
|
23
|
+
const innerLines = rawLines.slice(start0, end0 + 1);
|
|
24
|
+
const innerPart = innerLines.join("\n");
|
|
25
|
+
const combined = innerLines.length > 0 ? `${start}${innerPart}${end}` : `${start.replace(/\n$/, "")}${end}`;
|
|
26
|
+
const wrappedLines = combined.split("\n");
|
|
27
|
+
const newLines = [...rawLines.slice(0, start0), ...wrappedLines, ...rawLines.slice(end0 + 1)];
|
|
28
|
+
return {
|
|
29
|
+
sourceText: newLines.join("\n"),
|
|
30
|
+
innerRange: { startLine: start0 + 2, endLine: end0 + 2 },
|
|
31
|
+
};
|
|
32
|
+
}
|
|
12
33
|
export function createBlockForRange(input) {
|
|
13
34
|
const range = clampRange(input.range, input.sourceText);
|
|
14
35
|
const id = input.id !== undefined ? assertValidMarkerId(input.id) : generateBlockId(input.rng);
|
package/dist/blocks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -40,8 +40,18 @@ export type CommentrayToml = {
|
|
|
40
40
|
/** Markdown shown above the optional commentray file and GitHub link. */
|
|
41
41
|
intro?: string;
|
|
42
42
|
github_url?: string;
|
|
43
|
+
/** Optional prefix used for source links when static hosting does not serve repo files. */
|
|
44
|
+
source_link_prefix?: string;
|
|
43
45
|
/** Repo-relative path to the source file shown in the code pane (default README.md). */
|
|
46
|
+
default_source_file?: string;
|
|
47
|
+
/** Repo-relative path to the source file shown in the code pane (default README.md). */
|
|
48
|
+
/** @deprecated Renamed to `default_source_file`. */
|
|
44
49
|
source_file?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Angle id used for the default companion when rendering the static hub's primary pair.
|
|
52
|
+
* This intentionally does not control editor defaults (`[angles].default_angle`).
|
|
53
|
+
*/
|
|
54
|
+
default_angle?: string;
|
|
45
55
|
/** Repo-relative path to additional commentray Markdown (optional). */
|
|
46
56
|
commentray_markdown?: string;
|
|
47
57
|
/** @deprecated Renamed to `commentray_markdown`. */
|
|
@@ -66,9 +76,12 @@ export type ResolvedStaticSite = {
|
|
|
66
76
|
title: string;
|
|
67
77
|
introMarkdown: string;
|
|
68
78
|
githubUrl: string | null;
|
|
79
|
+
/** Optional source link prefix for published pages (e.g. GitHub blob base or `/src`). */
|
|
80
|
+
sourceLinkPrefix: string | null;
|
|
69
81
|
/** Branch used when building `relatedGithubNav` blob URLs. */
|
|
70
82
|
githubBlobBranch: string;
|
|
71
83
|
sourceFile: string;
|
|
84
|
+
defaultAngleId: string | null;
|
|
72
85
|
commentrayMarkdownFile: string;
|
|
73
86
|
/** Toolbar “Also on GitHub …” links for the static code browser. */
|
|
74
87
|
relatedGithubNav: ResolvedGithubNavLink[];
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;;;WAIG;QACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;KACtC,CAAC;IACF,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACzC;;;OAGG;IACH,MAAM,CAAC,EAAE;QACP,uIAAuI;QACvI,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,yFAAyF;QACzF,WAAW,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAChD,CAAC;IACF;;;OAGG;IACH,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,yEAAyE;QACzE,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,wFAAwF;QACxF,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,uEAAuE;QACvE,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,oDAAoD;QACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,4FAA4F;QAC5F,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B;;;WAGG;QACH,oBAAoB,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC3D,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oEAAoE;IACpE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,cAAc,GAAG;IAC3B,wFAAwF;IACxF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,uBAAuB,EAAE,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC;IACnB,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,uBAAuB,EAAE,OAAO,CAAA;KAAE,CAAC;IACpF,OAAO,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACvC,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,kBAAkB,CAAC;CAChC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -3,13 +3,15 @@ import path from "node:path";
|
|
|
3
3
|
import { parse as parseToml } from "@iarna/toml";
|
|
4
4
|
import { assertValidAngleId } from "./angles.js";
|
|
5
5
|
import { githubRepoBlobFileUrl, parseGithubRepoWebUrl } from "./github-url.js";
|
|
6
|
-
import { normalizeRepoRelativePath } from "./paths.js";
|
|
6
|
+
import { commentrayMarkdownPathForAngle, normalizeRepoRelativePath } from "./paths.js";
|
|
7
7
|
const defaultStaticSite = {
|
|
8
8
|
title: "Commentray",
|
|
9
9
|
introMarkdown: "",
|
|
10
10
|
githubUrl: null,
|
|
11
|
+
sourceLinkPrefix: null,
|
|
11
12
|
githubBlobBranch: "main",
|
|
12
13
|
sourceFile: "README.md",
|
|
14
|
+
defaultAngleId: null,
|
|
13
15
|
commentrayMarkdownFile: "",
|
|
14
16
|
relatedGithubNav: [],
|
|
15
17
|
};
|
|
@@ -107,32 +109,68 @@ function mergeRelatedGithubNav(githubUrl, branch, raw) {
|
|
|
107
109
|
}
|
|
108
110
|
return out;
|
|
109
111
|
}
|
|
110
|
-
function
|
|
111
|
-
return (ss?.
|
|
112
|
-
ss?.
|
|
113
|
-
defaultStaticSite.
|
|
112
|
+
function resolvedStaticSiteSourceFile(ss) {
|
|
113
|
+
return (nonEmptyTrimmed(ss?.default_source_file) ??
|
|
114
|
+
nonEmptyTrimmed(ss?.source_file) ??
|
|
115
|
+
defaultStaticSite.sourceFile);
|
|
114
116
|
}
|
|
115
|
-
function
|
|
117
|
+
function resolvedStaticSiteDefaultAngleId(ss) {
|
|
118
|
+
const raw = nonEmptyTrimmed(ss?.default_angle);
|
|
119
|
+
return raw ? assertValidAngleId(raw) : null;
|
|
120
|
+
}
|
|
121
|
+
function resolvedStaticSiteMarkdownFile(ss, sourceFile, storageDir, defaultAngleId) {
|
|
122
|
+
const explicit = nonEmptyTrimmed(ss?.commentray_markdown) ?? nonEmptyTrimmed(ss?.commentary_markdown) ?? null;
|
|
123
|
+
if (explicit)
|
|
124
|
+
return explicit;
|
|
125
|
+
if (!defaultAngleId)
|
|
126
|
+
return defaultStaticSite.commentrayMarkdownFile;
|
|
127
|
+
return commentrayMarkdownPathForAngle(sourceFile, defaultAngleId, storageDir);
|
|
128
|
+
}
|
|
129
|
+
function resolveStaticSite(parsed, storageDir) {
|
|
116
130
|
const ss = parsed.static_site;
|
|
117
131
|
const githubUrl = nonEmptyTrimmed(ss?.github_url);
|
|
118
132
|
const githubBlobBranch = nonEmptyTrimmed(ss?.github_blob_branch) ?? defaultStaticSite.githubBlobBranch;
|
|
133
|
+
const sourceFile = resolvedStaticSiteSourceFile(ss);
|
|
134
|
+
const defaultAngleId = resolvedStaticSiteDefaultAngleId(ss);
|
|
119
135
|
return {
|
|
120
136
|
title: nonEmptyTrimmed(ss?.title) ?? defaultStaticSite.title,
|
|
121
137
|
introMarkdown: ss?.intro ?? defaultStaticSite.introMarkdown,
|
|
122
138
|
githubUrl,
|
|
139
|
+
sourceLinkPrefix: nonEmptyTrimmed(ss?.source_link_prefix),
|
|
123
140
|
githubBlobBranch,
|
|
124
|
-
sourceFile
|
|
125
|
-
|
|
141
|
+
sourceFile,
|
|
142
|
+
defaultAngleId,
|
|
143
|
+
commentrayMarkdownFile: resolvedStaticSiteMarkdownFile(ss, sourceFile, storageDir, defaultAngleId),
|
|
126
144
|
relatedGithubNav: mergeRelatedGithubNav(githubUrl, githubBlobBranch, ss?.related_github_files),
|
|
127
145
|
};
|
|
128
146
|
}
|
|
147
|
+
function assertValidSourceLinkPrefix(value) {
|
|
148
|
+
if (!value?.trim())
|
|
149
|
+
return;
|
|
150
|
+
const t = value.trim();
|
|
151
|
+
if (t.startsWith("/"))
|
|
152
|
+
return;
|
|
153
|
+
let u;
|
|
154
|
+
try {
|
|
155
|
+
u = new URL(t);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
throw new Error(`.commentray.toml static_site.source_link_prefix must be an absolute path prefix or http(s) URL (got: ${value})`);
|
|
159
|
+
}
|
|
160
|
+
const proto = u.protocol.toLowerCase();
|
|
161
|
+
if (proto !== "http:" && proto !== "https:") {
|
|
162
|
+
throw new Error(`.commentray.toml static_site.source_link_prefix must be an absolute path prefix or http(s) URL (got: ${value})`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
129
165
|
function assertSafeConfigPaths(parsed) {
|
|
130
166
|
assertSafeRepoRelativePath("storage.dir", parsed.storage?.dir);
|
|
131
167
|
assertStorageDirNotInsideGit(parsed.storage?.dir);
|
|
132
168
|
const ss = parsed.static_site;
|
|
169
|
+
assertSafeRepoRelativePath("static_site.default_source_file", ss?.default_source_file);
|
|
133
170
|
assertSafeRepoRelativePath("static_site.source_file", ss?.source_file);
|
|
134
171
|
assertSafeRepoRelativePath("static_site.commentray_markdown", ss?.commentray_markdown);
|
|
135
172
|
assertSafeRepoRelativePath("static_site.commentary_markdown", ss?.commentary_markdown);
|
|
173
|
+
assertValidSourceLinkPrefix(ss?.source_link_prefix);
|
|
136
174
|
for (let i = 0; i < (ss?.related_github_files?.length ?? 0); i++) {
|
|
137
175
|
assertSafeRepoRelativePath(`static_site.related_github_files[${i}].path`, ss?.related_github_files?.[i]?.path);
|
|
138
176
|
}
|
|
@@ -145,8 +183,9 @@ export function mergeCommentrayConfig(parsed) {
|
|
|
145
183
|
throw new Error(`Unsupported scm.provider: ${String(scm)} (only "git" is implemented)`);
|
|
146
184
|
}
|
|
147
185
|
assertSafeConfigPaths(parsed);
|
|
186
|
+
const storageDir = parsed.storage?.dir ?? defaultConfig.storageDir;
|
|
148
187
|
return {
|
|
149
|
-
storageDir
|
|
188
|
+
storageDir,
|
|
150
189
|
scmProvider: "git",
|
|
151
190
|
render: {
|
|
152
191
|
mermaid: parsed.render?.mermaid ?? defaultConfig.render.mermaid,
|
|
@@ -157,7 +196,7 @@ export function mergeCommentrayConfig(parsed) {
|
|
|
157
196
|
defaultStrategy: parsed.anchors?.defaultStrategy ?? defaultConfig.anchors.defaultStrategy,
|
|
158
197
|
},
|
|
159
198
|
angles: resolveAngles(parsed),
|
|
160
|
-
staticSite: resolveStaticSite(parsed),
|
|
199
|
+
staticSite: resolveStaticSite(parsed, storageDir),
|
|
161
200
|
};
|
|
162
201
|
}
|
|
163
202
|
export async function loadCommentrayConfig(repoRoot) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { CommentrayBlock, CommentrayIndex, SourceFileIndexEntry } from "./model.js";
|
|
2
2
|
export { coerceIndexSchemaVersion, CURRENT_SCHEMA_VERSION } from "./model.js";
|
|
3
|
-
export type { AddBlockToIndexInput, BlockRange, CreateBlockForRangeInput, CreatedBlock, } from "./blocks.js";
|
|
4
|
-
export { addBlockToIndex, appendBlockToCommentray, createBlockForRange, generateBlockId, } from "./blocks.js";
|
|
3
|
+
export type { AddBlockToIndexInput, BlockRange, CreateBlockForRangeInput, CreatedBlock, WrapSourceLineRangeWithCommentrayMarkersInput, WrapSourceLineRangeWithCommentrayMarkersResult, } from "./blocks.js";
|
|
4
|
+
export { addBlockToIndex, appendBlockToCommentray, createBlockForRange, generateBlockId, wrapSourceLineRangeWithCommentrayMarkers, } from "./blocks.js";
|
|
5
5
|
export { assertValidAngleId } from "./angles.js";
|
|
6
6
|
export { applyAnglesFlatMigrationToCommentrayToml, ensureAnglesSentinelFile, upsertAngleDefinitionInCommentrayToml, } from "./angles-toml.js";
|
|
7
7
|
export type { ApplyAnglesFlatMigrationTomlInput, UpsertAngleDefinitionInput, } from "./angles-toml.js";
|
|
@@ -27,14 +27,18 @@ export { applyPathRenamesToCommentrayIndex, inferAngleIdFromCommentrayPath, } fr
|
|
|
27
27
|
export type { PathRename } from "./commentray-index-renames.js";
|
|
28
28
|
export type { BlockDiagnostic } from "./staleness.js";
|
|
29
29
|
export { diagnoseBlock } from "./staleness.js";
|
|
30
|
-
export type { ValidationIssue, ValidationResult } from "./validate-project.js";
|
|
30
|
+
export type { ValidationIssue, ValidationResult, ValidateProjectOptions, } from "./validate-project.js";
|
|
31
31
|
export { readIndex, refreshIndexMigrationsOnDisk, validateProject, writeIndex, } from "./validate-project.js";
|
|
32
|
+
export { plannedSymbolResolutionStrategy } from "./language-intelligence.js";
|
|
33
|
+
export type { SymbolResolutionStrategy } from "./language-intelligence.js";
|
|
32
34
|
export { relocationHintMessages } from "./relocation-hints.js";
|
|
33
35
|
export type { RelocationHintsInput } from "./relocation-hints.js";
|
|
34
36
|
export { runCommanderMain } from "./cli-bootstrap.js";
|
|
35
37
|
export type { BlockScrollLink } from "./scroll-sync.js";
|
|
36
38
|
export { buildBlockScrollLinks, pickCommentrayLineForSourceScroll, pickSourceLine0ForCommentrayScroll, } from "./scroll-sync.js";
|
|
37
|
-
export { commentrayRegionInsertions, lineCommentLeaderForLanguage, parseCommentrayRegionBoundary, sourceLineRangeForMarkerId, } from "./source-markers.js";
|
|
39
|
+
export { commentrayRegionInsertions, lineCommentLeaderForLanguage, markerViewportHalfOpen1Based, parseCommentrayRegionBoundary, sourceLineRangeForMarkerId, } from "./source-markers.js";
|
|
40
|
+
export type { RegionMarkerNamingHintStrategy, RegionMarkerNamingInput, RegionMarkerNamingRange, RegionMarkerNamingStrategy, } from "./region-marker-naming.js";
|
|
41
|
+
export { CallbackRegionMarkerNamingStrategy, CodeStructureHintStrategy, CompositeRegionMarkerNamingStrategy, defaultRegionMarkerNamingStrategy, EnclosingSymbolHintStrategy, MarkdownHeadingHintStrategy, TomlTableHeaderHintStrategy, tryCodeStructureNameHint, tryMarkdownHeadingTitleAbove, tryNormaliseContextLabelToMarkerId, tryTomlTablePathAboveSelection, } from "./region-marker-naming.js";
|
|
38
42
|
export type { CommentrayMarkerPair } from "./region-marker-convert.js";
|
|
39
43
|
export { convertCommentraySourceMarkersToLanguage, findCommentrayMarkerPairs, leadingIndentOfLine, } from "./region-marker-convert.js";
|
|
40
44
|
export { MARKER_ID_BODY, assertValidMarkerId, normaliseMarkerSlugOrThrow } from "./marker-ids.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EACV,oBAAoB,EACpB,UAAU,EACV,wBAAwB,EACxB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { coerceIndexSchemaVersion, CURRENT_SCHEMA_VERSION } from "./model.js";
|
|
2
|
-
export { addBlockToIndex, appendBlockToCommentray, createBlockForRange, generateBlockId, } from "./blocks.js";
|
|
2
|
+
export { addBlockToIndex, appendBlockToCommentray, createBlockForRange, generateBlockId, wrapSourceLineRangeWithCommentrayMarkers, } from "./blocks.js";
|
|
3
3
|
export { assertValidAngleId } from "./angles.js";
|
|
4
4
|
export { applyAnglesFlatMigrationToCommentrayToml, ensureAnglesSentinelFile, upsertAngleDefinitionInCommentrayToml, } from "./angles-toml.js";
|
|
5
5
|
export { defaultAngleIdForOpen, FALLBACK_DEFAULT_ANGLE_ID, resolveCommentrayMarkdownPath, } from "./commentray-path-resolution.js";
|
|
@@ -17,10 +17,12 @@ export { GitScmProvider, parseGitRenameLines } from "./scm/git-scm-provider.js";
|
|
|
17
17
|
export { applyPathRenamesToCommentrayIndex, inferAngleIdFromCommentrayPath, } from "./commentray-index-renames.js";
|
|
18
18
|
export { diagnoseBlock } from "./staleness.js";
|
|
19
19
|
export { readIndex, refreshIndexMigrationsOnDisk, validateProject, writeIndex, } from "./validate-project.js";
|
|
20
|
+
export { plannedSymbolResolutionStrategy } from "./language-intelligence.js";
|
|
20
21
|
export { relocationHintMessages } from "./relocation-hints.js";
|
|
21
22
|
export { runCommanderMain } from "./cli-bootstrap.js";
|
|
22
23
|
export { buildBlockScrollLinks, pickCommentrayLineForSourceScroll, pickSourceLine0ForCommentrayScroll, } from "./scroll-sync.js";
|
|
23
|
-
export { commentrayRegionInsertions, lineCommentLeaderForLanguage, parseCommentrayRegionBoundary, sourceLineRangeForMarkerId, } from "./source-markers.js";
|
|
24
|
+
export { commentrayRegionInsertions, lineCommentLeaderForLanguage, markerViewportHalfOpen1Based, parseCommentrayRegionBoundary, sourceLineRangeForMarkerId, } from "./source-markers.js";
|
|
25
|
+
export { CallbackRegionMarkerNamingStrategy, CodeStructureHintStrategy, CompositeRegionMarkerNamingStrategy, defaultRegionMarkerNamingStrategy, EnclosingSymbolHintStrategy, MarkdownHeadingHintStrategy, TomlTableHeaderHintStrategy, tryCodeStructureNameHint, tryMarkdownHeadingTitleAbove, tryNormaliseContextLabelToMarkerId, tryTomlTablePathAboveSelection, } from "./region-marker-naming.js";
|
|
24
26
|
export { convertCommentraySourceMarkersToLanguage, findCommentrayMarkerPairs, leadingIndentOfLine, } from "./region-marker-convert.js";
|
|
25
27
|
export { MARKER_ID_BODY, assertValidMarkerId, normaliseMarkerSlugOrThrow } from "./marker-ids.js";
|
|
26
28
|
export { validateIndexMarkerSemantics, validateMarkerBoundariesInSource, validateMarkerRegionsAgainstIndexedSources, } from "./marker-validation.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAS9E,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,wCAAwC,GACzC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EACL,wCAAwC,EACxC,wBAAwB,EACxB,qCAAqC,GACtC,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AAUpC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,kCAAkC,EAClC,mBAAmB,EACnB,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EACL,iCAAiC,EACjC,8BAA8B,GAC/B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAM/C,OAAO,EACL,SAAS,EACT,4BAA4B,EAC5B,eAAe,EACf,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAE7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EACL,qBAAqB,EACrB,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EACL,kCAAkC,EAClC,yBAAyB,EACzB,mCAAmC,EACnC,iCAAiC,EACjC,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,kCAAkC,EAClC,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,wCAAwC,EACxC,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElG,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,0CAA0C,GAC3C,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extension point for richer anchor resolution (tree-sitter, LSP, …).
|
|
3
|
+
*
|
|
4
|
+
* v0 ships line- and region-based anchors only; `symbol:` anchors stay diagnostic-only until a
|
|
5
|
+
* resolver is wired here.
|
|
6
|
+
*/
|
|
7
|
+
export type SymbolResolutionStrategy = "none" | "tree-sitter" | "lsp";
|
|
8
|
+
/** Current product choice: no automatic symbol resolution yet. */
|
|
9
|
+
export declare function plannedSymbolResolutionStrategy(): SymbolResolutionStrategy;
|
|
10
|
+
//# sourceMappingURL=language-intelligence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-intelligence.d.ts","sourceRoot":"","sources":["../src/language-intelligence.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;AAEtE,kEAAkE;AAClE,wBAAgB,+BAA+B,IAAI,wBAAwB,CAE1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-intelligence.js","sourceRoot":"","sources":["../src/language-intelligence.ts"],"names":[],"mappings":"AAQA,kEAAkE;AAClE,MAAM,UAAU,+BAA+B;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/** Inclusive 1-based source line range (same convention as block ranges). */
|
|
2
|
+
export type RegionMarkerNamingRange = {
|
|
3
|
+
startLine: number;
|
|
4
|
+
endLine: number;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Everything needed to suggest a marker id without touching the filesystem.
|
|
8
|
+
* Hosts (editors, CLI) may supply {@link RegionMarkerNamingInput.enclosingSymbolName}
|
|
9
|
+
* from LSP or heuristics; when absent, language-aware fallbacks run in order.
|
|
10
|
+
*/
|
|
11
|
+
export type RegionMarkerNamingInput = {
|
|
12
|
+
languageId: string;
|
|
13
|
+
sourceText: string;
|
|
14
|
+
range: RegionMarkerNamingRange;
|
|
15
|
+
/** When set (e.g. enclosing class or method from document symbols), wins over text heuristics. */
|
|
16
|
+
enclosingSymbolName?: string;
|
|
17
|
+
/** Injected for deterministic tests; defaults to `Math.random` in the composite fallback. */
|
|
18
|
+
rng?: () => number;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Swappable policy for choosing `marker:<id>` / `commentray:<id>` ids when wrapping a selection.
|
|
22
|
+
* Implementations should be pure (no I/O, no globals except injected `rng`).
|
|
23
|
+
*/
|
|
24
|
+
export interface RegionMarkerNamingStrategy {
|
|
25
|
+
suggestMarkerId(input: RegionMarkerNamingInput): string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* One step in a pipeline: return a **valid** marker id, or `null` to let the next step run.
|
|
29
|
+
*/
|
|
30
|
+
export interface RegionMarkerNamingHintStrategy {
|
|
31
|
+
trySuggestMarkerId(input: RegionMarkerNamingInput): string | null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Runs hint strategies in order, then {@link generateBlockId} when every hint declines.
|
|
35
|
+
*/
|
|
36
|
+
export declare class CompositeRegionMarkerNamingStrategy implements RegionMarkerNamingStrategy {
|
|
37
|
+
private readonly hints;
|
|
38
|
+
private readonly fallbackRng;
|
|
39
|
+
constructor(hints: readonly RegionMarkerNamingHintStrategy[], fallbackRng?: () => number);
|
|
40
|
+
suggestMarkerId(input: RegionMarkerNamingInput): string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Escape hatch for hosts that already computed an id (e.g. custom rules, telemetry-driven names).
|
|
44
|
+
*/
|
|
45
|
+
export declare class CallbackRegionMarkerNamingStrategy implements RegionMarkerNamingStrategy {
|
|
46
|
+
private readonly suggest;
|
|
47
|
+
constructor(suggest: (input: RegionMarkerNamingInput) => string);
|
|
48
|
+
suggestMarkerId(input: RegionMarkerNamingInput): string;
|
|
49
|
+
}
|
|
50
|
+
export declare class EnclosingSymbolHintStrategy implements RegionMarkerNamingHintStrategy {
|
|
51
|
+
trySuggestMarkerId(input: RegionMarkerNamingInput): string | null;
|
|
52
|
+
}
|
|
53
|
+
export declare class TomlTableHeaderHintStrategy implements RegionMarkerNamingHintStrategy {
|
|
54
|
+
trySuggestMarkerId(input: RegionMarkerNamingInput): string | null;
|
|
55
|
+
}
|
|
56
|
+
export declare class MarkdownHeadingHintStrategy implements RegionMarkerNamingHintStrategy {
|
|
57
|
+
trySuggestMarkerId(input: RegionMarkerNamingInput): string | null;
|
|
58
|
+
}
|
|
59
|
+
export declare class CodeStructureHintStrategy implements RegionMarkerNamingHintStrategy {
|
|
60
|
+
trySuggestMarkerId(input: RegionMarkerNamingInput): string | null;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Walks upward from `startLine1` and returns the innermost TOML table path
|
|
64
|
+
* (`anchors`, `angles.definitions`, …) declared on a `[header]` / `[[array]]` line.
|
|
65
|
+
*/
|
|
66
|
+
export declare function tryTomlTablePathAboveSelection(sourceText: string, startLine1: number): string | null;
|
|
67
|
+
/**
|
|
68
|
+
* Nearest Markdown heading text at or above `startLine1` (ATX headings only).
|
|
69
|
+
*/
|
|
70
|
+
export declare function tryMarkdownHeadingTitleAbove(sourceText: string, startLine1: number): string | null;
|
|
71
|
+
export declare function tryCodeStructureNameHint(languageId: string, sourceText: string, range: RegionMarkerNamingRange): string | null;
|
|
72
|
+
export declare function tryNormaliseContextLabelToMarkerId(raw: string): string | null;
|
|
73
|
+
/** Fixed pipeline: enclosing symbol → TOML table → Markdown heading → code shape → random. */
|
|
74
|
+
export declare const defaultRegionMarkerNamingStrategy: RegionMarkerNamingStrategy;
|
|
75
|
+
//# sourceMappingURL=region-marker-naming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region-marker-naming.d.ts","sourceRoot":"","sources":["../src/region-marker-naming.ts"],"names":[],"mappings":"AAGA,6EAA6E;AAC7E,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,uBAAuB,CAAC;IAC/B,kGAAkG;IAClG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,6FAA6F;IAC7F,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,eAAe,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,GAAG,IAAI,CAAC;CACnE;AAED;;GAEG;AACH,qBAAa,mCAAoC,YAAW,0BAA0B;IAElF,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,KAAK,EAAE,SAAS,8BAA8B,EAAE,EAChD,WAAW,GAAE,MAAM,MAAoB;IAG1D,eAAe,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM;CAcxD;AAED;;GAEG;AACH,qBAAa,kCAAmC,YAAW,0BAA0B;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,MAAM;IAEhF,eAAe,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM;CAGxD;AAID,qBAAa,2BAA4B,YAAW,8BAA8B;IAChF,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,GAAG,IAAI;CAKlE;AAED,qBAAa,2BAA4B,YAAW,8BAA8B;IAChF,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,GAAG,IAAI;CAOlE;AAED,qBAAa,2BAA4B,YAAW,8BAA8B;IAChF,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,GAAG,IAAI;CAMlE;AAED,qBAAa,yBAA0B,YAAW,8BAA8B;IAC9E,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,GAAG,IAAI;CAMlE;AAOD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAaf;AAID;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAQf;AA8HD,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,uBAAuB,GAC7B,MAAM,GAAG,IAAI,CAoCf;AAED,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY7E;AAkCD,8FAA8F;AAC9F,eAAO,MAAM,iCAAiC,EAAE,0BAM5C,CAAC"}
|