public static function stripUpToNLeadingWhitespace()

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,
    );
  }