Skip to content

feat: anchor introspection ergonomics — TextPreview on AnchorTarget, filter reserved fns, bulk lookup#169

Merged
JSv4 merged 9 commits into
mainfrom
feat/162-anchor-introspection
May 25, 2026
Merged

feat: anchor introspection ergonomics — TextPreview on AnchorTarget, filter reserved fns, bulk lookup#169
JSv4 merged 9 commits into
mainfrom
feat/162-anchor-introspection

Conversation

@JSv4
Copy link
Copy Markdown
Owner

@JSv4 JSv4 commented May 25, 2026

Closes #162.

Summary

  • TextPreview on AnchorTarget, computed once during projection — no more N-walk GetAnchorInfo round-trips for previews.
  • Word-reserved footnote/endnote separators no longer appear in AnchorIndex (they were un-deletable plumbing surfaced as fn:fn:* anchors).
  • DocxSession.GetAnchorInfos(ids) for batched lookups; unknown ids → null.

Test plan

  • MD005AnchorTarget.TextPreview populated for body block kinds.
  • MD006 — boilerplate fn separators excluded from AnchorIndex.
  • DS220GetAnchorInfos batched lookup; unknown ids map to null.
  • DS221GetAnchorInfo regression: same TextPreview as AnchorTarget.
  • Playwright anchor-introspection.spec.ts — npm surface end-to-end (textPreview via session.project(), getAnchorInfo, getAnchorInfos, boilerplate filter).
  • Full dotnet test passes.
  • npm run build && npm test passes.
  • Release build clean (warnings-as-errors).

@JSv4 JSv4 merged commit 48a6727 into main May 25, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(session): anchor introspection ergonomics — TextPreview on AnchorTarget, filter reserved footnotes, bulk lookup

1 participant