You are here

private function Shell::autocompleter in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/console/Shell.php \Symfony\Component\Console\Shell::autocompleter()

Tries to return autocompletion for the current entered text.

Parameters

string $text The last segment of the entered text:

Return value

bool|array A list of guessed strings or true

File

vendor/symfony/console/Shell.php, line 168

Class

Shell
A Shell wraps an Application to add shell capabilities to it.

Namespace

Symfony\Component\Console

Code

private function autocompleter($text) {
  $info = readline_info();
  $text = substr($info['line_buffer'], 0, $info['end']);
  if ($info['point'] !== $info['end']) {
    return true;
  }

  // task name?
  if (false === strpos($text, ' ') || !$text) {
    return array_keys($this->application
      ->all());
  }

  // options and arguments?
  try {
    $command = $this->application
      ->find(substr($text, 0, strpos($text, ' ')));
  } catch (\Exception $e) {
    return true;
  }
  $list = array(
    '--help',
  );
  foreach ($command
    ->getDefinition()
    ->getOptions() as $option) {
    $list[] = '--' . $option
      ->getName();
  }
  return $list;
}