kotaindah55_extended-markdo.../src/editor-mode/doc-utils/getBlockStartAt.ts
2025-03-17 11:14:27 +02:00

14 lines
No EOL
596 B
TypeScript

import { Line, Text } from "@codemirror/state";
import { isBlankLine } from "src/editor-mode/doc-utils";
export function getBlockStartAt(doc: Text, offsetOrLine: number | Line) {
let curLine = offsetOrLine instanceof Line ? offsetOrLine : doc.lineAt(offsetOrLine),
prevLine = curLine.number > 1 ? doc.line(curLine.number - 1) : null;
if (isBlankLine(curLine)) { return curLine }
while (prevLine) {
if (isBlankLine(prevLine)) { break }
curLine = prevLine;
prevLine = curLine.number > 1 ? doc.line(curLine.number - 1) : null;
}
return curLine;
}