docs/plans/2026-04-13-input-rule-context-lazy-getters.md
Reduce repeated resolve() boilerplate in input rules by extending the core
input-rule context with lazy cached selection/block getters, then migrate the
obvious block-start callers onto that API.
packages/core input-rule context typesInputRulesPlugindefineInputRule thincreateInputRule DSLgetBlockEntrygetBlockStartRangegetBlockStartTextgetTextBeforeSelectiongetCharBeforegetCharAfterdefineInputRule typed for authoring with target-specific overloads.packages/basic-nodespackages/code-blockpackages/listpackages/list-classicpackages/mathpackages/linkdocs/solutions/best-practices/input-rule-context-should-provide-lazy-snapshot-getters.mdbun test packages/core/src/react/utils/inputRules.spec.tsx packages/basic-nodes/src/lib/BaseBlockquoteInputRules.spec.tsx packages/basic-nodes/src/lib/BaseHeadingInputRules.spec.tsx packages/code-block/src/lib/BaseCodeBlockPlugin.inputRules.spec.tsx packages/list/src/lib/inputRules.spec.tsx packages/list-classic/src/lib/BaseListInputRules.spec.tsx packages/math/src/lib/inputRules.spec.tsx packages/link/src/lib/internal/inputRules.spec.tsx
33 pass, 0 failpnpm turbo build --filter=./packages/core --filter=./packages/basic-nodes --filter=./packages/code-block --filter=./packages/link --filter=./packages/list --filter=./packages/list-classic --filter=./packages/math --filter=./apps/wwwpnpm turbo typecheck --filter=./packages/core --filter=./packages/basic-nodes --filter=./packages/code-block --filter=./packages/link --filter=./packages/list --filter=./packages/list-classic --filter=./packages/math --filter=./apps/wwwpnpm lint:fix