export type ReadlineVariables = ReadonlyMap; /** Parse canonical `bind -v` / `set name value` output. */ export function parseReadlineVariables(source: string): ReadlineVariables { const variables = new Map(); for (const rawLine of source.split(/\r?\n/u)) { const line = rawLine.trim(); if (line.length === 0 || line.startsWith("#")) continue; const match = line.match(/^set\s+(\S+)\s+(.*)$/u); if (match !== null && match[1] !== undefined) variables.set(match[1], match[2] ?? ""); } return variables; }