in packages/selector/src/text/describe-text-quote.ts [246:271]
function readUntilDifferent(
seeker1: RelativeSeeker,
seeker2: RelativeSeeker,
reverse: boolean,
): string | undefined {
let result = '';
while (true) {
let nextCharacter: string;
try {
nextCharacter = seeker1.read(reverse ? -1 : 1);
} catch (err) {
return undefined; // Start/end of text reached: cannot expand result.
}
result = reverse ? nextCharacter + result : result + nextCharacter;
// Check if the newly added character makes the result differ from the second seeker.
let comparisonCharacter: string | undefined;
try {
comparisonCharacter = seeker2.read(reverse ? -1 : 1);
} catch (err) {
// A RangeError would merely mean seeker2 is exhausted.
if (!(err instanceof RangeError)) throw err;
}
if (nextCharacter !== comparisonCharacter) return result;
}
}