@commentray/core 0.1.0 → 0.1.2

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.
@@ -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. Prefers the block whose source range
12
- * **contains** the top line; otherwise the nearest preceding block; if above
13
- * all blocks, the first block.
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
- * start of its source range.
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;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,eAAe,EAAE,EACzB,mBAAmB,EAAE,MAAM,GAC1B,MAAM,GAAG,IAAI,CAaf;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,eAAe,EAAE,EACzB,uBAAuB,EAAE,MAAM,GAC9B,MAAM,GAAG,IAAI,CAQf"}
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. Prefers the block whose source range
4
- * **contains** the top line; otherwise the nearest preceding block; if above
5
- * all blocks, the first block.
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 inside = blocks.find((b) => b.sourceStart <= topSourceLine1Based && topSourceLine1Based <= b.sourceEnd);
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 < blocks[0].sourceStart)
14
- return blocks[0].commentrayLine;
15
- let best = blocks[0];
16
- for (const b of blocks) {
17
- if (b.sourceStart <= topSourceLine1Based)
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
- else
20
- break;
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
- * start of its source range.
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
- let best = blocks[0];
33
- for (const b of blocks) {
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.sourceStart - 1;
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":"AASA;;;;;GAKG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAyB,EACzB,mBAA2B;IAE3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,mBAAmB,IAAI,mBAAmB,IAAI,CAAC,CAAC,SAAS,CAClF,CAAC;IACF,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,cAAc,CAAC;IACzC,IAAI,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IACjF,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,WAAW,IAAI,mBAAmB;YAAE,IAAI,GAAG,CAAC,CAAC;;YAC9C,MAAM;IACb,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,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,cAAc,IAAI,uBAAuB;YAAE,IAAI,GAAG,CAAC,CAAC;;YACrD,MAAM;IACb,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC9B,CAAC"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"AAGA,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,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"}
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
- * Create a block (domain entity) together with the Markdown fragment that
9
- * carries it in the commentary file. Pure: no I/O, deterministic when a
10
- * fixed `rng` and `id` are supplied.
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);
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -40,6 +40,8 @@ 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). */
44
46
  default_source_file?: string;
45
47
  /** Repo-relative path to the source file shown in the code pane (default README.md). */
@@ -74,6 +76,8 @@ export type ResolvedStaticSite = {
74
76
  title: string;
75
77
  introMarkdown: string;
76
78
  githubUrl: string | null;
79
+ /** Optional source link prefix for published pages (e.g. GitHub blob base or `/src`). */
80
+ sourceLinkPrefix: string | null;
77
81
  /** Branch used when building `relatedGithubNav` blob URLs. */
78
82
  githubBlobBranch: string;
79
83
  sourceFile: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -8,6 +8,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",
13
14
  defaultAngleId: null,
@@ -135,6 +136,7 @@ function resolveStaticSite(parsed, storageDir) {
135
136
  title: nonEmptyTrimmed(ss?.title) ?? defaultStaticSite.title,
136
137
  introMarkdown: ss?.intro ?? defaultStaticSite.introMarkdown,
137
138
  githubUrl,
139
+ sourceLinkPrefix: nonEmptyTrimmed(ss?.source_link_prefix),
138
140
  githubBlobBranch,
139
141
  sourceFile,
140
142
  defaultAngleId,
@@ -142,6 +144,24 @@ function resolveStaticSite(parsed, storageDir) {
142
144
  relatedGithubNav: mergeRelatedGithubNav(githubUrl, githubBlobBranch, ss?.related_github_files),
143
145
  };
144
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
+ }
145
165
  function assertSafeConfigPaths(parsed) {
146
166
  assertSafeRepoRelativePath("storage.dir", parsed.storage?.dir);
147
167
  assertStorageDirNotInsideGit(parsed.storage?.dir);
@@ -150,6 +170,7 @@ function assertSafeConfigPaths(parsed) {
150
170
  assertSafeRepoRelativePath("static_site.source_file", ss?.source_file);
151
171
  assertSafeRepoRelativePath("static_site.commentray_markdown", ss?.commentray_markdown);
152
172
  assertSafeRepoRelativePath("static_site.commentary_markdown", ss?.commentary_markdown);
173
+ assertValidSourceLinkPrefix(ss?.source_link_prefix);
153
174
  for (let i = 0; i < (ss?.related_github_files?.length ?? 0); i++) {
154
175
  assertSafeRepoRelativePath(`static_site.related_github_files[${i}].path`, ss?.related_github_files?.[i]?.path);
155
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
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";
@@ -36,10 +36,12 @@ export type { RelocationHintsInput } from "./relocation-hints.js";
36
36
  export { runCommanderMain } from "./cli-bootstrap.js";
37
37
  export type { BlockScrollLink } from "./scroll-sync.js";
38
38
  export { buildBlockScrollLinks, pickCommentrayLineForSourceScroll, pickSourceLine0ForCommentrayScroll, } from "./scroll-sync.js";
39
- 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";
40
42
  export type { CommentrayMarkerPair } from "./region-marker-convert.js";
41
43
  export { convertCommentraySourceMarkersToLanguage, findCommentrayMarkerPairs, leadingIndentOfLine, } from "./region-marker-convert.js";
42
44
  export { MARKER_ID_BODY, assertValidMarkerId, normaliseMarkerSlugOrThrow } from "./marker-ids.js";
43
45
  export type { MarkerValidationIssue } from "./marker-validation.js";
44
- export { validateIndexMarkerSemantics, validateMarkerBoundariesInSource, validateMarkerRegionsAgainstIndexedSources, } from "./marker-validation.js";
46
+ export { extractCommentrayBlockIdsFromMarkdown, validateIndexMarkerSemantics, validateMarkerBoundariesInSource, validateMarkerRegionsAgainstIndexedSources, validateOverlappingMarkerInnerRangesInSource, } from "./marker-validation.js";
45
47
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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";
@@ -21,8 +21,9 @@ export { plannedSymbolResolutionStrategy } from "./language-intelligence.js";
21
21
  export { relocationHintMessages } from "./relocation-hints.js";
22
22
  export { runCommanderMain } from "./cli-bootstrap.js";
23
23
  export { buildBlockScrollLinks, pickCommentrayLineForSourceScroll, pickSourceLine0ForCommentrayScroll, } from "./scroll-sync.js";
24
- 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";
25
26
  export { convertCommentraySourceMarkersToLanguage, findCommentrayMarkerPairs, leadingIndentOfLine, } from "./region-marker-convert.js";
26
27
  export { MARKER_ID_BODY, assertValidMarkerId, normaliseMarkerSlugOrThrow } from "./marker-ids.js";
27
- export { validateIndexMarkerSemantics, validateMarkerBoundariesInSource, validateMarkerRegionsAgainstIndexedSources, } from "./marker-validation.js";
28
+ export { extractCommentrayBlockIdsFromMarkdown, validateIndexMarkerSemantics, validateMarkerBoundariesInSource, validateMarkerRegionsAgainstIndexedSources, validateOverlappingMarkerInnerRangesInSource, } from "./marker-validation.js";
28
29
  //# sourceMappingURL=index.js.map
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;AAO9E,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,GAChB,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,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,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"}
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,qCAAqC,EACrC,4BAA4B,EAC5B,gCAAgC,EAChC,0CAA0C,EAC1C,4CAA4C,GAC7C,MAAM,wBAAwB,CAAC"}
@@ -3,6 +3,15 @@ export type MarkerValidationIssue = {
3
3
  level: "error" | "warn";
4
4
  message: string;
5
5
  };
6
+ /**
7
+ * Block ids declared in companion markdown via `<!-- commentray:block id=… -->` (valid ids only).
8
+ */
9
+ export declare function extractCommentrayBlockIdsFromMarkdown(markdown: string): Set<string>;
10
+ /**
11
+ * Detects two or more well-formed marker regions whose **inner** 1-based inclusive line ranges
12
+ * intersect. Adjacent regions (last inner line N, next inner starts N+1) do not overlap.
13
+ */
14
+ export declare function validateOverlappingMarkerInnerRangesInSource(sourceText: string, sourcePath: string): MarkerValidationIssue[];
6
15
  /**
7
16
  * Scans a single source file for Commentray region / marker boundaries and reports:
8
17
  * - invalid ids (syntax that matched but fails `assertValidMarkerId` — rare),
@@ -13,10 +22,14 @@ export type MarkerValidationIssue = {
13
22
  export declare function validateMarkerBoundariesInSource(sourceText: string, sourcePath: string): MarkerValidationIssue[];
14
23
  /**
15
24
  * For each `marker:` block, ensures the primary file contains a well-formed paired
16
- * region that resolves to a non-empty span. Warns when a paired region exists in
17
- * the primary but no indexed block claims `marker:<id>` (orphan region).
25
+ * region that resolves to a non-empty span.
26
+ *
27
+ * When `markdownBlockIdsBySourceNorm` is set (repo validation), warns for **orphan** regions: a
28
+ * paired delimiter id in the primary that has no matching `<!-- commentray:block id=… -->` in any
29
+ * indexed companion markdown for that primary. When it is omitted (tests), the legacy rule
30
+ * applies: warn only when no indexed block claims `marker:<id>`.
18
31
  */
19
- export declare function validateMarkerRegionsAgainstIndexedSources(index: CommentrayIndex, indexedSourceTexts: Map<string, string>): MarkerValidationIssue[];
32
+ export declare function validateMarkerRegionsAgainstIndexedSources(index: CommentrayIndex, indexedSourceTexts: Map<string, string>, markdownBlockIdsBySourceNorm?: Map<string, Set<string>>): MarkerValidationIssue[];
20
33
  /**
21
34
  * Index-level rules for stable cross-references:
22
35
  * - **Error** if the same `(sourcePath, marker id)` is claimed by **different** block `id`s
@@ -1 +1 @@
1
- {"version":3,"file":"marker-validation.d.ts","sourceRoot":"","sources":["../src/marker-validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD,MAAM,MAAM,qBAAqB,GAAG;IAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,qBAAqB,EAAE,CAkDzB;AA0FD;;;;GAIG;AACH,wBAAgB,0CAA0C,CACxD,KAAK,EAAE,eAAe,EACtB,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,qBAAqB,EAAE,CAMzB;AAmBD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,eAAe,GAAG,qBAAqB,EAAE,CAuD5F"}
1
+ {"version":3,"file":"marker-validation.d.ts","sourceRoot":"","sources":["../src/marker-validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD,MAAM,MAAM,qBAAqB,GAAG;IAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF;;GAEG;AACH,wBAAgB,qCAAqC,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAanF;AAED;;;GAGG;AACH,wBAAgB,4CAA4C,CAC1D,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,qBAAqB,EAAE,CA4BzB;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,qBAAqB,EAAE,CAmDzB;AAgHD;;;;;;;;GAQG;AACH,wBAAgB,0CAA0C,CACxD,KAAK,EAAE,eAAe,EACtB,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,4BAA4B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACtD,qBAAqB,EAAE,CAMzB;AAmBD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,eAAe,GAAG,qBAAqB,EAAE,CAuD5F"}
@@ -1,8 +1,62 @@
1
1
  import { parseAnchor } from "./anchors.js";
2
- import { assertValidMarkerId } from "./marker-ids.js";
2
+ import { assertValidMarkerId, MARKER_ID_BODY } from "./marker-ids.js";
3
3
  import { normalizeRepoRelativePath } from "./paths.js";
4
4
  import { findCommentrayMarkerPairs } from "./region-marker-convert.js";
5
5
  import { parseCommentrayRegionBoundary, sourceLineRangeForMarkerId } from "./source-markers.js";
6
+ /**
7
+ * Block ids declared in companion markdown via `<!-- commentray:block id=… -->` (valid ids only).
8
+ */
9
+ export function extractCommentrayBlockIdsFromMarkdown(markdown) {
10
+ const out = new Set();
11
+ const re = new RegExp(`<!--\\s*commentray:block\\s+id=(${MARKER_ID_BODY})\\s*-->`, "gi");
12
+ for (const m of markdown.matchAll(re)) {
13
+ const raw = m[1];
14
+ if (raw === undefined)
15
+ continue;
16
+ try {
17
+ out.add(assertValidMarkerId(raw));
18
+ }
19
+ catch {
20
+ /* ignore malformed ids on that line */
21
+ }
22
+ }
23
+ return out;
24
+ }
25
+ /**
26
+ * Detects two or more well-formed marker regions whose **inner** 1-based inclusive line ranges
27
+ * intersect. Adjacent regions (last inner line N, next inner starts N+1) do not overlap.
28
+ */
29
+ export function validateOverlappingMarkerInnerRangesInSource(sourceText, sourcePath) {
30
+ const text = sourceText.replaceAll("\r\n", "\n");
31
+ const pairs = findCommentrayMarkerPairs(text);
32
+ const ranges = [];
33
+ for (const pair of pairs) {
34
+ const r = sourceLineRangeForMarkerId(text, pair.id);
35
+ if (r === null)
36
+ continue;
37
+ ranges.push({ id: pair.id, start: r.start, end: r.end });
38
+ }
39
+ const issues = [];
40
+ for (let i = 0; i < ranges.length; i++) {
41
+ const a = ranges[i];
42
+ if (a === undefined)
43
+ continue;
44
+ for (let j = i + 1; j < ranges.length; j++) {
45
+ const b = ranges[j];
46
+ if (b === undefined)
47
+ continue;
48
+ if (a.end < b.start || b.end < a.start)
49
+ continue;
50
+ issues.push({
51
+ level: "error",
52
+ message: `${sourcePath}: commentray regions "${a.id}" (inner lines ${a.start}–${a.end}) and "${b.id}" ` +
53
+ `(${b.start}–${b.end}) overlap. Regions in the same primary file must not share source lines — ` +
54
+ `close one region before the other begins, or split the file.`,
55
+ });
56
+ }
57
+ }
58
+ return issues;
59
+ }
6
60
  /**
7
61
  * Scans a single source file for Commentray region / marker boundaries and reports:
8
62
  * - invalid ids (syntax that matched but fails `assertValidMarkerId` — rare),
@@ -58,6 +112,7 @@ export function validateMarkerBoundariesInSource(sourceText, sourcePath) {
58
112
  message: `${sourcePath}:${line0 + 1}: commentray start for id "${id}" has no matching end in this file.`,
59
113
  });
60
114
  }
115
+ issues.push(...validateOverlappingMarkerInnerRangesInSource(sourceText, sourcePath));
61
116
  return issues;
62
117
  }
63
118
  function tryParseMarkerAnchorId(anchor) {
@@ -113,19 +168,38 @@ function displaySourcePathForNorm(index, norm) {
113
168
  const hit = Object.values(index.byCommentrayPath).find((e) => normalizeRepoRelativePath(e.sourcePath) === norm);
114
169
  return hit?.sourcePath ?? norm;
115
170
  }
116
- function orphanRegionIssues(index, indexedSourceTexts, claimedBySourceNorm) {
171
+ function orphanRegionIssues(index, indexedSourceTexts, claimedBySourceNorm, markdownBlockIdsBySourceNorm) {
117
172
  const issues = [];
118
173
  const orphanWarned = new Set();
119
174
  for (const [norm, text] of indexedSourceTexts) {
120
175
  const pairs = findCommentrayMarkerPairs(text);
121
176
  const claimed = claimedBySourceNorm.get(norm) ?? new Set();
177
+ const mdIds = markdownBlockIdsBySourceNorm?.get(norm);
122
178
  const displayPath = displaySourcePathForNorm(index, norm);
123
179
  for (const pair of pairs) {
124
- if (claimed.has(pair.id))
125
- continue;
126
180
  const dedupe = `${norm}\0${pair.id}`;
127
181
  if (orphanWarned.has(dedupe))
128
182
  continue;
183
+ if (markdownBlockIdsBySourceNorm !== undefined) {
184
+ const inMd = mdIds?.has(pair.id) ?? false;
185
+ if (inMd)
186
+ continue;
187
+ orphanWarned.add(dedupe);
188
+ const indexed = claimed.has(pair.id);
189
+ const tail = indexed
190
+ ? ` An indexed block uses anchor marker:${pair.id}, but no companion markdown line ` +
191
+ `\`<!-- commentray:block id=${pair.id} -->\` was found for this primary (add the marker or fix the path).`
192
+ : ` No indexed block uses anchor marker:${pair.id}, and no companion markdown references this id.`;
193
+ issues.push({
194
+ level: "warn",
195
+ message: `Primary "${displayPath}" has a commentray region "${pair.id}" (delimiter lines ` +
196
+ `${pair.startLine0 + 1} and ${pair.endLine0 + 1}) that is not referenced by any ` +
197
+ `\`<!-- commentray:block id=${pair.id} -->\` line in companion markdown for this primary.${tail}`,
198
+ });
199
+ continue;
200
+ }
201
+ if (claimed.has(pair.id))
202
+ continue;
129
203
  orphanWarned.add(dedupe);
130
204
  issues.push({
131
205
  level: "warn",
@@ -140,14 +214,18 @@ function orphanRegionIssues(index, indexedSourceTexts, claimedBySourceNorm) {
140
214
  }
141
215
  /**
142
216
  * For each `marker:` block, ensures the primary file contains a well-formed paired
143
- * region that resolves to a non-empty span. Warns when a paired region exists in
144
- * the primary but no indexed block claims `marker:<id>` (orphan region).
217
+ * region that resolves to a non-empty span.
218
+ *
219
+ * When `markdownBlockIdsBySourceNorm` is set (repo validation), warns for **orphan** regions: a
220
+ * paired delimiter id in the primary that has no matching `<!-- commentray:block id=… -->` in any
221
+ * indexed companion markdown for that primary. When it is omitted (tests), the legacy rule
222
+ * applies: warn only when no indexed block claims `marker:<id>`.
145
223
  */
146
- export function validateMarkerRegionsAgainstIndexedSources(index, indexedSourceTexts) {
224
+ export function validateMarkerRegionsAgainstIndexedSources(index, indexedSourceTexts, markdownBlockIdsBySourceNorm) {
147
225
  const claimed = claimedMarkerIdsByNormalizedSource(index);
148
226
  return [
149
227
  ...unresolvedMarkerAnchorIssues(index, indexedSourceTexts),
150
- ...orphanRegionIssues(index, indexedSourceTexts, claimed),
228
+ ...orphanRegionIssues(index, indexedSourceTexts, claimed, markdownBlockIdsBySourceNorm),
151
229
  ];
152
230
  }
153
231
  function markerIdFromBlock(block) {