@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.
@@ -1 +1 @@
1
- {"version":3,"file":"marker-validation.js","sourceRoot":"","sources":["../src/marker-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAIhG;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAC9C,UAAkB,EAClB,UAAkB;IAElB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEnD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,CAAC;YACH,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,GAAG,UAAU,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;aACrF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,UAAU,GAAG,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,OAAO;oBACd,OAAO,EAAE,GAAG,GAAG,wCAAwC,GAAG,CAAC,EAAE,0BAA0B,IAAI,oEAAoE;iBAChK,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,GAAG,GAAG,4BAA4B,GAAG,CAAC,EAAE,uCAAuC;aACzF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,GAAG,UAAU,IAAI,KAAK,GAAG,CAAC,8BAA8B,EAAE,qCAAqC;SACzG,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,kCAAkC,CAAC,KAAsB;IAChE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,QAAQ,KAAK,IAAI;gBAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,SAAS,4BAA4B,CACnC,KAAsB,EACtB,kBAAuC;IAEvC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,GAAG,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QAEjC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,QAAQ,KAAK,IAAI;gBAAE,SAAS;YAChC,IAAI,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,IAAI;gBAAE,SAAS;YAClE,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EACL,UAAU,KAAK,CAAC,EAAE,QAAQ,cAAc,wBAAwB,QAAQ,QAAQ;oBAChF,YAAY,KAAK,CAAC,UAAU,2DAA2D;oBACvF,0EAA0E,QAAQ,qCAAqC,QAAQ,QAAQ;aAC1I,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAsB,EAAE,IAAY;IACpE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACpD,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CACxD,CAAC;IACF,OAAO,GAAG,EAAE,UAAU,IAAI,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAsB,EACtB,kBAAuC,EACvC,mBAA6C;IAE7C,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,kBAAkB,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAG,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,SAAS;YACnC,MAAM,MAAM,GAAG,GAAG,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAS;YACvC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,MAAM;gBACb,OAAO,EACL,YAAY,WAAW,8BAA8B,IAAI,CAAC,EAAE,qBAAqB;oBACjF,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,iCAAiC;oBAChF,wCAAwC,IAAI,CAAC,EAAE,0CAA0C,IAAI,CAAC,EAAE,SAAS;oBACzG,uDAAuD;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0CAA0C,CACxD,KAAsB,EACtB,kBAAuC;IAEvC,MAAM,OAAO,GAAG,kCAAkC,CAAC,KAAK,CAAC,CAAC;IAC1D,OAAO;QACL,GAAG,4BAA4B,CAAC,KAAK,EAAE,kBAAkB,CAAC;QAC1D,GAAG,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA4C;IACrE,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACvE,IAAI,CAAC;YACH,OAAO,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAsB;IACjE,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAiB,CAAC;IACnD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAExD,KAAK,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7E,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,GAAG,KAAK,IAAI;gBAAE,SAAS;YAC3B,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAQ;gBACf,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,cAAc;gBACd,OAAO,EAAE,KAAK,CAAC,EAAE;aAClB,CAAC;YACF,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAEjC,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9B,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC9B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,OAAO;gBACd,OAAO,EACL,cAAc,GAAG,iBAAiB,UAAU,0CAA0C,MAAM,IAAI;oBAChG,yFAAyF;aAC5F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC;YAAE,SAAS;QAChC,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,MAAM;YACb,OAAO,EACL,cAAc,GAAG,8CAA8C,KAAK,KAAK;gBACzE,6GAA6G,GAAG,kBAAkB,GAAG,UAAU;SAClJ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"marker-validation.js","sourceRoot":"","sources":["../src/marker-validation.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -0,0 +1,316 @@
1
+ import { generateBlockId } from "./blocks.js";
2
+ import { assertValidMarkerId, normaliseMarkerSlugOrThrow } from "./marker-ids.js";
3
+ /**
4
+ * Runs hint strategies in order, then {@link generateBlockId} when every hint declines.
5
+ */
6
+ export class CompositeRegionMarkerNamingStrategy {
7
+ hints;
8
+ fallbackRng;
9
+ constructor(hints, fallbackRng = Math.random) {
10
+ this.hints = hints;
11
+ this.fallbackRng = fallbackRng;
12
+ }
13
+ suggestMarkerId(input) {
14
+ const rng = input.rng ?? this.fallbackRng;
15
+ const merged = { ...input, rng };
16
+ for (const hint of this.hints) {
17
+ const candidate = hint.trySuggestMarkerId(merged);
18
+ if (candidate === null)
19
+ continue;
20
+ try {
21
+ return assertValidMarkerId(candidate);
22
+ }
23
+ catch {
24
+ continue;
25
+ }
26
+ }
27
+ return generateBlockId(rng);
28
+ }
29
+ }
30
+ /**
31
+ * Escape hatch for hosts that already computed an id (e.g. custom rules, telemetry-driven names).
32
+ */
33
+ export class CallbackRegionMarkerNamingStrategy {
34
+ suggest;
35
+ constructor(suggest) {
36
+ this.suggest = suggest;
37
+ }
38
+ suggestMarkerId(input) {
39
+ return assertValidMarkerId(this.suggest(input));
40
+ }
41
+ }
42
+ // --- Hint strategy implementations ---
43
+ export class EnclosingSymbolHintStrategy {
44
+ trySuggestMarkerId(input) {
45
+ const raw = input.enclosingSymbolName?.trim();
46
+ if (!raw)
47
+ return null;
48
+ return tryNormaliseContextLabelToMarkerId(raw);
49
+ }
50
+ }
51
+ export class TomlTableHeaderHintStrategy {
52
+ trySuggestMarkerId(input) {
53
+ if (!isTomlLanguage(input.languageId))
54
+ return null;
55
+ const path = tryTomlTablePathAboveSelection(input.sourceText, input.range.startLine);
56
+ if (path === null)
57
+ return null;
58
+ const dotted = tomlTablePathToSlugCandidate(path);
59
+ return tryNormaliseContextLabelToMarkerId(dotted);
60
+ }
61
+ }
62
+ export class MarkdownHeadingHintStrategy {
63
+ trySuggestMarkerId(input) {
64
+ if (!isMarkdownLanguage(input.languageId))
65
+ return null;
66
+ const title = tryMarkdownHeadingTitleAbove(input.sourceText, input.range.startLine);
67
+ if (title === null)
68
+ return null;
69
+ return tryNormaliseContextLabelToMarkerId(title);
70
+ }
71
+ }
72
+ export class CodeStructureHintStrategy {
73
+ trySuggestMarkerId(input) {
74
+ if (!isCodeStructureLanguage(input.languageId))
75
+ return null;
76
+ const hint = tryCodeStructureNameHint(input.languageId, input.sourceText, input.range);
77
+ if (hint === null)
78
+ return null;
79
+ return tryNormaliseContextLabelToMarkerId(hint);
80
+ }
81
+ }
82
+ // --- Pure extractors (tested directly; safe to reuse from custom strategies) ---
83
+ const TOML_LINE_ARRAY_TABLE = /^\s*\[\[([^\]]+)\]\]\s*(?:#.*)?$/;
84
+ const TOML_LINE_TABLE = /^\s*\[([^\]]+)\]\s*(?:#.*)?$/;
85
+ /**
86
+ * Walks upward from `startLine1` and returns the innermost TOML table path
87
+ * (`anchors`, `angles.definitions`, …) declared on a `[header]` / `[[array]]` line.
88
+ */
89
+ export function tryTomlTablePathAboveSelection(sourceText, startLine1) {
90
+ const lines = sourceText.replaceAll("\r\n", "\n").split("\n");
91
+ const start0 = Math.max(0, Math.floor(startLine1) - 1);
92
+ for (let i = start0; i >= 0; i--) {
93
+ const line = lines[i] ?? "";
94
+ const arrayM = TOML_LINE_ARRAY_TABLE.exec(line);
95
+ const arrayPath = arrayM?.[1];
96
+ if (arrayPath)
97
+ return arrayPath.trim();
98
+ const tableM = TOML_LINE_TABLE.exec(line);
99
+ const tablePath = tableM?.[1];
100
+ if (tablePath && !line.trimStart().startsWith("[["))
101
+ return tablePath.trim();
102
+ }
103
+ return null;
104
+ }
105
+ const MD_HEADING = /^\s{0,3}(#{1,6})\s+(.+?)\s*$/;
106
+ /**
107
+ * Nearest Markdown heading text at or above `startLine1` (ATX headings only).
108
+ */
109
+ export function tryMarkdownHeadingTitleAbove(sourceText, startLine1) {
110
+ const lines = sourceText.replaceAll("\r\n", "\n").split("\n");
111
+ const start0 = Math.max(0, Math.floor(startLine1) - 1);
112
+ for (let i = start0; i >= 0; i--) {
113
+ const m = MD_HEADING.exec(lines[i] ?? "");
114
+ if (m?.[2])
115
+ return stripMarkdownInlineNoise(m[2]);
116
+ }
117
+ return null;
118
+ }
119
+ const TS_JS_LIKE = new Set([
120
+ "javascript",
121
+ "javascriptreact",
122
+ "typescript",
123
+ "typescriptreact",
124
+ "js",
125
+ "jsx",
126
+ "tsx",
127
+ "mjs",
128
+ "cjs",
129
+ "vue",
130
+ "svelte",
131
+ "astro",
132
+ ]);
133
+ const PYTHON_LIKE = new Set(["python", "jupyter"]);
134
+ const RUST_LIKE = new Set(["rust"]);
135
+ const GO_LIKE = new Set(["go"]);
136
+ const RUBY_LIKE = new Set(["ruby"]);
137
+ const CSHARP_LIKE = new Set(["csharp"]);
138
+ const JAVA_KOTLIN_LIKE = new Set(["java", "kotlin"]);
139
+ const PHP_LIKE = new Set(["php"]);
140
+ const CPP_LIKE = new Set(["cpp", "cuda-cpp", "objective-cpp", "objective-c", "c"]);
141
+ const SWIFT_LIKE = new Set(["swift"]);
142
+ const TS_JS_PATTERNS = [
143
+ { re: /^\s*(?:export\s+)?(?:abstract\s+)?class\s+(\w+)/, nameGroup: 1 },
144
+ { re: /^\s*(?:export\s+)?interface\s+(\w+)/, nameGroup: 1 },
145
+ { re: /^\s*(?:export\s+)?enum\s+(\w+)/, nameGroup: 1 },
146
+ { re: /^\s*(?:export\s+)?type\s+(\w+)\s*=/, nameGroup: 1 },
147
+ { re: /^\s*(?:export\s+)?(?:async\s+)?function\s+(\w+)\s*\(/, nameGroup: 1 },
148
+ { re: /^\s*(?:export\s+)?const\s+(\w+)\s*=\s*(?:async\s*)?\(/, nameGroup: 1 },
149
+ { re: /^\s*(?:export\s+)?(?:async\s+)?(\w+)\s*=\s*(?:async\s*)?\(/, nameGroup: 1 },
150
+ ];
151
+ const PYTHON_PATTERNS = [
152
+ { re: /^\s*class\s+(\w+)/, nameGroup: 1 },
153
+ { re: /^\s*(?:async\s+)?def\s+(\w+)\s*\(/, nameGroup: 1 },
154
+ ];
155
+ const RUST_PATTERNS = [
156
+ { re: /^\s*(?:pub(?:\([^)]*\))?\s+)?struct\s+(\w+)/, nameGroup: 1 },
157
+ { re: /^\s*(?:pub(?:\([^)]*\))?\s+)?enum\s+(\w+)/, nameGroup: 1 },
158
+ { re: /^\s*(?:pub(?:\([^)]*\))?\s+)?trait\s+(\w+)/, nameGroup: 1 },
159
+ { re: /^\s*(?:pub(?:\([^)]*\))?\s+)?(?:async\s+)?fn\s+(\w+)\s*\(/, nameGroup: 1 },
160
+ { re: /^\s*(?:pub(?:\([^)]*\))?\s+)?impl\s+(?:<[^>]+>\s+)?(?:\w+\s+for\s+)?(\w+)/, nameGroup: 1 },
161
+ ];
162
+ const GO_PATTERNS = [
163
+ { re: /^\s*func\s+(?:\([^)]*\)\s*)?(\w+)\s*\(/, nameGroup: 1 },
164
+ { re: /^\s*type\s+(\w+)\s+(?:struct|interface)\b/, nameGroup: 1 },
165
+ ];
166
+ const RUBY_PATTERNS = [
167
+ { re: /^\s*class\s+(\w+)/, nameGroup: 1 },
168
+ { re: /^\s*module\s+(\w+)/, nameGroup: 1 },
169
+ { re: /^\s*def\s+(\w+)/, nameGroup: 1 },
170
+ ];
171
+ const CSHARP_PATTERNS = [
172
+ {
173
+ re: /^\s*(?:public|private|protected|internal|file)\s+(?:(?:static|async|abstract|sealed|partial)\s+)*class\s+(\w+)/,
174
+ nameGroup: 1,
175
+ },
176
+ { re: /^\s*namespace\s+([\w.]+)/, nameGroup: 1 },
177
+ ];
178
+ const JAVA_PATTERNS = [
179
+ {
180
+ re: /^\s*(?:public|private|protected)?\s*(?:abstract\s+)?(?:static\s+)?class\s+(\w+)/,
181
+ nameGroup: 1,
182
+ },
183
+ { re: /^\s*(?:public|private|protected)?\s*(?:abstract\s+)?interface\s+(\w+)/, nameGroup: 1 },
184
+ { re: /^\s*(?:public|private|protected)?\s*(?:abstract\s+)?object\s+(\w+)/, nameGroup: 1 },
185
+ { re: /^\s*(?:public|private|protected)?\s*fun\s+(\w+)\s*\(/, nameGroup: 1 },
186
+ ];
187
+ const PHP_PATTERNS = [
188
+ { re: /^\s*(?:abstract\s+)?class\s+(\w+)/, nameGroup: 1 },
189
+ { re: /^\s*function\s+(\w+)\s*\(/, nameGroup: 1 },
190
+ ];
191
+ const CPP_PATTERNS = [{ re: /^\s*(?:class|struct)\s+(\w+)/, nameGroup: 1 }];
192
+ const SWIFT_PATTERNS = [
193
+ { re: /^\s*(?:public|private|internal|fileprivate|open)?\s*class\s+(\w+)/, nameGroup: 1 },
194
+ { re: /^\s*(?:public|private|internal|fileprivate|open)?\s*func\s+(\w+)\s*\(/, nameGroup: 1 },
195
+ { re: /^\s*(?:public|private|internal|fileprivate|open)?\s*struct\s+(\w+)/, nameGroup: 1 },
196
+ { re: /^\s*(?:public|private|internal|fileprivate|open)?\s*enum\s+(\w+)/, nameGroup: 1 },
197
+ ];
198
+ const LOOKBACK_LINES = 80;
199
+ function patternsForLanguage(languageId) {
200
+ const id = languageId.toLowerCase();
201
+ if (TS_JS_LIKE.has(id))
202
+ return TS_JS_PATTERNS;
203
+ if (PYTHON_LIKE.has(id))
204
+ return PYTHON_PATTERNS;
205
+ if (RUST_LIKE.has(id))
206
+ return RUST_PATTERNS;
207
+ if (GO_LIKE.has(id))
208
+ return GO_PATTERNS;
209
+ if (RUBY_LIKE.has(id))
210
+ return RUBY_PATTERNS;
211
+ if (CSHARP_LIKE.has(id))
212
+ return CSHARP_PATTERNS;
213
+ if (JAVA_KOTLIN_LIKE.has(id))
214
+ return JAVA_PATTERNS;
215
+ if (PHP_LIKE.has(id))
216
+ return PHP_PATTERNS;
217
+ if (CPP_LIKE.has(id))
218
+ return CPP_PATTERNS;
219
+ if (SWIFT_LIKE.has(id))
220
+ return SWIFT_PATTERNS;
221
+ return null;
222
+ }
223
+ /**
224
+ * Best-effort identifier near the selection: prefers declarations on selected lines,
225
+ * then scans upward within {@link LOOKBACK_LINES} lines.
226
+ */
227
+ const PYTHON_CLASS_LINE = /^\s*class\s+(\w+)/;
228
+ export function tryCodeStructureNameHint(languageId, sourceText, range) {
229
+ const patterns = patternsForLanguage(languageId);
230
+ if (!patterns)
231
+ return null;
232
+ const lines = sourceText.replaceAll("\r\n", "\n").split("\n");
233
+ const lineCount = lines.length;
234
+ const start0 = clampLine0(range.startLine, lineCount);
235
+ const end0 = clampLine0(range.endLine, lineCount);
236
+ const from = Math.max(0, start0 - LOOKBACK_LINES);
237
+ if (PYTHON_LIKE.has(languageId.toLowerCase())) {
238
+ for (let i = start0 - 1; i >= from; i--) {
239
+ const cm = PYTHON_CLASS_LINE.exec(lines[i] ?? "");
240
+ const pyName = cm?.[1];
241
+ if (pyName)
242
+ return pyName;
243
+ }
244
+ }
245
+ const tryLine = (i) => {
246
+ const line = lines[i] ?? "";
247
+ for (const { re, nameGroup } of patterns) {
248
+ const m = re.exec(line);
249
+ const name = m?.[nameGroup];
250
+ if (name)
251
+ return name;
252
+ }
253
+ return null;
254
+ };
255
+ for (let i = end0; i >= start0; i--) {
256
+ const hit = tryLine(i);
257
+ if (hit)
258
+ return hit;
259
+ }
260
+ for (let i = start0 - 1; i >= from; i--) {
261
+ const hit = tryLine(i);
262
+ if (hit)
263
+ return hit;
264
+ }
265
+ return null;
266
+ }
267
+ export function tryNormaliseContextLabelToMarkerId(raw) {
268
+ const base = raw.trim();
269
+ if (!base)
270
+ return null;
271
+ const maxProbe = Math.min(base.length, 256);
272
+ for (let n = maxProbe; n >= 1; n--) {
273
+ try {
274
+ return normaliseMarkerSlugOrThrow(base.slice(0, n));
275
+ }
276
+ catch {
277
+ continue;
278
+ }
279
+ }
280
+ return null;
281
+ }
282
+ function stripMarkdownInlineNoise(title) {
283
+ return title
284
+ .replaceAll(/\*\*([^*]+)\*\*/g, "$1")
285
+ .replaceAll(/\*([^*]+)\*/g, "$1")
286
+ .replaceAll(/`([^`]+)`/g, "$1")
287
+ .replaceAll(/\[([^\]]+)]\([^)]+\)/g, "$1")
288
+ .trim();
289
+ }
290
+ function tomlTablePathToSlugCandidate(path) {
291
+ return path.trim().replaceAll(".", "-");
292
+ }
293
+ function clampLine0(oneBasedLine, lineCount) {
294
+ if (lineCount <= 0)
295
+ return 0;
296
+ const x = Math.floor(oneBasedLine) - 1;
297
+ return Math.max(0, Math.min(lineCount - 1, x));
298
+ }
299
+ function isTomlLanguage(languageId) {
300
+ return languageId.trim().toLowerCase() === "toml";
301
+ }
302
+ function isMarkdownLanguage(languageId) {
303
+ const id = languageId.trim().toLowerCase();
304
+ return id === "markdown" || id === "md";
305
+ }
306
+ function isCodeStructureLanguage(languageId) {
307
+ return patternsForLanguage(languageId) !== null;
308
+ }
309
+ /** Fixed pipeline: enclosing symbol → TOML table → Markdown heading → code shape → random. */
310
+ export const defaultRegionMarkerNamingStrategy = new CompositeRegionMarkerNamingStrategy([
311
+ new EnclosingSymbolHintStrategy(),
312
+ new TomlTableHeaderHintStrategy(),
313
+ new MarkdownHeadingHintStrategy(),
314
+ new CodeStructureHintStrategy(),
315
+ ]);
316
+ //# sourceMappingURL=region-marker-naming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"region-marker-naming.js","sourceRoot":"","sources":["../src/region-marker-naming.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-sync.d.ts","sourceRoot":"","sources":["../src/scroll-sync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,2BAA2B,CAAC;AAcnC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EACzC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,eAAe,EAAE,CAgCnB"}
1
+ {"version":3,"file":"scroll-sync.d.ts","sourceRoot":"","sources":["../src/scroll-sync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,2BAA2B,CAAC;AAcnC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EACzC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,eAAe,EAAE,CAwCnB"}
@@ -1,6 +1,7 @@
1
1
  import { parseAnchor } from "./anchors.js";
2
2
  import { MARKER_ID_BODY } from "./marker-ids.js";
3
- import { sourceLineRangeForMarkerId } from "./source-markers.js";
3
+ import { normalizeRepoRelativePath } from "./paths.js";
4
+ import { markerViewportHalfOpen1Based, sourceLineRangeForMarkerId } from "./source-markers.js";
4
5
  export { pickCommentrayLineForSourceScroll, pickSourceLine0ForCommentrayScroll, } from "./block-scroll-pickers.js";
5
6
  const BLOCK_MARKER_RE = new RegExp(`<!-- commentray:block id=(${MARKER_ID_BODY}) -->`);
6
7
  function markerLineByIdFromMarkdown(markdown) {
@@ -23,6 +24,10 @@ export function buildBlockScrollLinks(index, sourceRelative, commentrayPath, com
23
24
  const entry = index?.byCommentrayPath[commentrayPath];
24
25
  if (!entry || entry.sourcePath !== sourceRelative || entry.blocks.length === 0)
25
26
  return [];
27
+ const entryCrNorm = normalizeRepoRelativePath(entry.commentrayPath.replaceAll("\\", "/"));
28
+ const lookupCrNorm = normalizeRepoRelativePath(commentrayPath.replaceAll("\\", "/"));
29
+ if (entryCrNorm !== lookupCrNorm)
30
+ return [];
26
31
  const markerLineById = markerLineByIdFromMarkdown(commentrayMarkdown);
27
32
  const links = [];
28
33
  for (const block of entry.blocks) {
@@ -31,11 +36,14 @@ export function buildBlockScrollLinks(index, sourceRelative, commentrayPath, com
31
36
  if (commentrayLine === undefined)
32
37
  continue;
33
38
  if (anchor.kind === "lines") {
39
+ const lo = anchor.range.start;
40
+ const hiExclusive = anchor.range.end + 1;
34
41
  links.push({
35
42
  id: block.id,
36
43
  commentrayLine,
37
44
  sourceStart: anchor.range.start,
38
45
  sourceEnd: anchor.range.end,
46
+ markerViewportHalfOpen1Based: { lo, hiExclusive },
39
47
  });
40
48
  continue;
41
49
  }
@@ -43,13 +51,15 @@ export function buildBlockScrollLinks(index, sourceRelative, commentrayPath, com
43
51
  if (sourceText === undefined)
44
52
  continue;
45
53
  const range = sourceLineRangeForMarkerId(sourceText, anchor.id);
46
- if (range === null)
54
+ const mv = markerViewportHalfOpen1Based(sourceText, anchor.id);
55
+ if (range === null || mv === null)
47
56
  continue;
48
57
  links.push({
49
58
  id: block.id,
50
59
  commentrayLine,
51
60
  sourceStart: range.start,
52
61
  sourceEnd: range.end,
62
+ markerViewportHalfOpen1Based: mv,
53
63
  });
54
64
  }
55
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-sync.js","sourceRoot":"","sources":["../src/scroll-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGjE,OAAO,EACL,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,2BAA2B,CAAC;AAEnC,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,6BAA6B,cAAc,OAAO,CAAC,CAAC;AAEvF,SAAS,0BAA0B,CAAC,QAAgB;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,KAAK;YAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAyC,EACzC,cAAsB,EACtB,cAAsB,EACtB,kBAA0B,EAC1B,UAAmB;IAEnB,MAAM,KAAK,GAAG,KAAK,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1F,MAAM,cAAc,GAAG,0BAA0B,CAAC,kBAAkB,CAAC,CAAC;IACtE,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,cAAc,KAAK,SAAS;YAAE,SAAS;QAC3C,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,cAAc;gBACd,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;gBAC/B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;aAC5B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,UAAU,KAAK,SAAS;gBAAE,SAAS;YACvC,MAAM,KAAK,GAAG,0BAA0B,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAChE,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS;YAC7B,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,cAAc;gBACd,WAAW,EAAE,KAAK,CAAC,KAAK;gBACxB,SAAS,EAAE,KAAK,CAAC,GAAG;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"scroll-sync.js","sourceRoot":"","sources":["../src/scroll-sync.ts"],"names":[],"mappings":"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"}
@@ -25,4 +25,14 @@ export declare function sourceLineRangeForMarkerId(sourceText: string, markerId:
25
25
  start: number;
26
26
  end: number;
27
27
  } | null;
28
+ /**
29
+ * 1-based half-open `[lo, hiExclusive)` for viewport / scroll sync: includes one physical line
30
+ * above the start delimiter and the delimiter line itself, runs through the last inner line, and
31
+ * **excludes** the end delimiter line. The blank between a block’s end marker and the next block’s
32
+ * start marker therefore belongs to the next block (same as the line above the next start).
33
+ */
34
+ export declare function markerViewportHalfOpen1Based(sourceText: string, markerId: string): {
35
+ lo: number;
36
+ hiExclusive: number;
37
+ } | null;
28
38
  //# sourceMappingURL=source-markers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source-markers.d.ts","sourceRoot":"","sources":["../src/source-markers.ts"],"names":[],"mappings":"AAyGA;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMvE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,SAAK,GACV;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAuDhC;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,KAAK,CAAC;AAEjD,2FAA2F;AAC3F,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA8CjD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf;IACD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,IAAI,CAgBP"}
1
+ {"version":3,"file":"source-markers.d.ts","sourceRoot":"","sources":["../src/source-markers.ts"],"names":[],"mappings":"AA0GA;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMvE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,SAAK,GACV;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAuDhC;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,KAAK,CAAC;AAEjD,2FAA2F;AAC3F,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA8CjD;AAoBD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf;IACD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,IAAI,CAQP;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAU5C"}
@@ -45,7 +45,8 @@ const HASH_REGION_LANGUAGES = new Set([
45
45
  const PRAGMA_REGION = new Set(["c", "cpp", "cuda-cpp", "objective-c", "objective-cpp"]);
46
46
  const VB_REGION = new Set(["vb"]);
47
47
  const LUA_REGION = new Set(["lua"]);
48
- const HTML_FAMILY = new Set(["html", "xml", "handlebars", "vue-html"]);
48
+ /** Includes Markdown so `commentrayRegionInsertions("markdown", …)` matches README `<!-- #region commentray:… -->`. */
49
+ const HTML_FAMILY = new Set(["html", "xml", "handlebars", "vue-html", "markdown", "md"]);
49
50
  const PYTHONIC = new Set(["python", "jupyter"]);
50
51
  /** `# …` line comments for generic markers (no `#region` folding convention). */
51
52
  const GENERIC_HASH_LANGUAGES = new Set([
@@ -213,10 +214,7 @@ export function parseCommentrayRegionBoundary(line) {
213
214
  }
214
215
  return null;
215
216
  }
216
- /**
217
- * 1-based inclusive source lines **between** paired region / generic / legacy marker lines.
218
- */
219
- export function sourceLineRangeForMarkerId(sourceText, markerId) {
217
+ function findFirstMarkerPairBoundaryIndices(sourceText, markerId) {
220
218
  const id = assertValidMarkerId(markerId);
221
219
  const lines = sourceText.split("\n");
222
220
  let startIdx = -1;
@@ -232,10 +230,39 @@ export function sourceLineRangeForMarkerId(sourceText, markerId) {
232
230
  }
233
231
  if (startIdx < 0 || endIdx < 0 || endIdx < startIdx + 2)
234
232
  return null;
233
+ return { startIdx, endIdx };
234
+ }
235
+ /**
236
+ * 1-based inclusive source lines **between** paired region / generic / legacy marker lines.
237
+ */
238
+ export function sourceLineRangeForMarkerId(sourceText, markerId) {
239
+ const pair = findFirstMarkerPairBoundaryIndices(sourceText, markerId);
240
+ if (pair === null)
241
+ return null;
242
+ const { startIdx, endIdx } = pair;
235
243
  const start = startIdx + 2;
236
244
  const end = endIdx;
237
245
  if (end < start)
238
246
  return null;
239
247
  return { start, end };
240
248
  }
249
+ /**
250
+ * 1-based half-open `[lo, hiExclusive)` for viewport / scroll sync: includes one physical line
251
+ * above the start delimiter and the delimiter line itself, runs through the last inner line, and
252
+ * **excludes** the end delimiter line. The blank between a block’s end marker and the next block’s
253
+ * start marker therefore belongs to the next block (same as the line above the next start).
254
+ */
255
+ export function markerViewportHalfOpen1Based(sourceText, markerId) {
256
+ const pair = findFirstMarkerPairBoundaryIndices(sourceText, markerId);
257
+ if (pair === null)
258
+ return null;
259
+ const { startIdx, endIdx } = pair;
260
+ const startMarker1Based = startIdx + 1;
261
+ const endMarker1Based = endIdx + 1;
262
+ const lo = Math.max(1, startMarker1Based - 1);
263
+ const hiExclusive = endMarker1Based;
264
+ if (hiExclusive <= lo)
265
+ return null;
266
+ return { lo, hiExclusive };
267
+ }
241
268
  //# sourceMappingURL=source-markers.js.map