private function splitString()

in src/HackBuilder.hack [533:558]


  private function splitString(
    string $str,
    int $maxlen,
    bool $preserve_space = false,
  ): vec<string> {
    $lines = vec[];
    $src_lines = \explode("\n", $str);

    foreach ($src_lines as $src_line) {
      while (Str\length($src_line) > $maxlen) {
        $last_space = \strrpos(\substr($src_line, 0, $maxlen), ' ');
        if ($last_space === false) {
          break;
        }
        if ($preserve_space) {
          $lines[] = \substr($src_line, 0, $last_space + 1);
        } else {
          $lines[] = \substr($src_line, 0, $last_space);
        }
        $src_line = \substr($src_line, $last_space + 1);
      }
      $lines[] = $src_line;
    }

    return $lines;
  }