code: protected function formatOptionHelp($name, $required, $type, $defaultValue, $comment)
      {
          $comment = trim($comment);
          $type = trim($type);
          if (strncmp($type, 'bool', 4) === 0) {
              $type = 'boolean, 0 or 1';
          }
  
          if ($defaultValue !== null && !is_array($defaultValue)) {
              if ($type === null) {
                  $type = gettype($defaultValue);
              }
              if (is_bool($defaultValue)) {
                  // show as integer to avoid confusion
                  $defaultValue = (int)$defaultValue;
              }
              if (is_string($defaultValue)) {
                  $defaultValue = "'" . $defaultValue . "'";
              } else {
                  $defaultValue = var_export($defaultValue, true);
              }
              $doc = "$type (defaults to $defaultValue)";
          } else {
              $doc = $type;
          }
  
          if ($doc === '') {
              $doc = $comment;
          } elseif ($comment !== '') {
              $doc .= "\n" . preg_replace('/^/m', '  ', $comment);
          }
  
          $name = $required ? "$name (required)" : $name;
  
          return $doc === '' ? $name : "$name: $doc";
      }
docs: Generates a well-formed string for an argument or option.
  @param string $name the name of the argument or option
  @param bool $required whether the argument is required
  @param string $type the type of the option or argument
  @param mixed $defaultValue the default value of the option or argument
  @param string $comment comment about the option or argument
  @return string the formatted string for the argument or option