tools/core/predicates/marker.predicate.ts
tools/core/predicates/marker.predicate.ts is a file in Coordination Surface. 40 lines of code and 15 definitions.
import type { ForgedBoundary } from "../types/marker.types.ts";
const FENCE_MARK = "`";
const FENCE_MINIMUM = 3;
const SPAN_OPEN = "┌";
const SPAN_CLOSE = "└";
export const isClassHeading = function isClassHeading(heading: string): boolean {
if (heading.length === 0) {
return false;
}
for (const char of heading) {
const lower = char >= "a" && char <= "z";
const digit = char >= "0" && char <= "9";
if (!lower && !digit && char !== "-") {
return false;
}
}
return true;
};
const opensAFence = function opensAFence(text: string): boolean {
let run = 0;
while (run < text.length && text.charAt(run) === FENCE_MARK) {
run += 1;
}
return run >= FENCE_MINIMUM;
};
const opensASpan = function opensASpan(text: string): boolean {
return text.startsWith(SPAN_OPEN) || text.startsWith(SPAN_CLOSE);
};
export const forgedBoundaries = function forgedBoundaries(body: string): ForgedBoundary[] {
const out: ForgedBoundary[] = [];
const lines = body.split("\n");
for (let index = 0; index < lines.length; index += 1) {
const text = (lines[index] ?? "").trimStart();
if (!opensAFence(text) && !opensASpan(text)) {
continue;
}
out.push({ line: index + 1, text: text.slice(0, 40) });
}
return out;
};