in src/unparsed-blocks/Lines.php [73:109]
public static function stripUpToNLeadingWhitespace(
string $line,
int $n,
int $column,
): (string, string, int) {
$count = 0;
$len = Str\length($line);
for ($i = 0; $i < $len && $count < $n; ++$i) {
$char = $line[$i];
if ($char === ' ') {
++$count;
continue;
}
if ($char === "\t") {
$tab_width = 4 - (($column + $count) % 4);
if ($tab_width === 0) {
$tab_width = 4;
}
$count += $tab_width;
continue;
}
break;
}
if ($count >= $n) {
return tuple(
Str\slice($line, 0, $i),
Str\repeat(' ', $count - $n).Str\slice($line, $i),
$n,
);
}
return tuple(
Str\slice($line, 0, $i),
Str\slice($line, $i),
$count,
);
}