import { Node } from '@tiptap/pm/model'; export type NodeStackEntry = { node: Node; depth: number; start: number; end: number; }; /** * Returns the stack of nodes at the given position. * @param doc - The document node. * @param pos - The position to get the node stack for. * @returns An array of NodeStackEntry objects representing the node stack. */ export function getNodeStack(doc: Node, pos: number): NodeStackEntry[] { const $pos = doc.resolve(pos); const stack: NodeStackEntry[] = []; for (let depth = 0; depth <= $pos.depth; depth++) { const node = $pos.node(depth); const start = $pos.start(depth); const end = $pos.end(depth); stack.push({ node, depth, start, end, }); } return stack; }