history = $history; } /** * {@inheritdoc} */ public function getSuggestion(string $buffer, int $cursorPosition): ?SuggestionResult { // Search history most-recent first. $entries = $this->history->getAll(); for ($i = \count($entries) - 1; $i >= 0; $i--) { $entry = $entries[$i]; $line = $entry['command']; if (\strpos($line, $buffer) === 0 && $line !== $buffer) { $acceptText = \substr($line, \strlen($buffer)); $displayText = $acceptText; if ($entry['lines'] > 1) { $displayText = History::collapseToSingleLine($acceptText); } return SuggestionResult::forAppend( $displayText, SuggestionResult::SOURCE_HISTORY, $cursorPosition, $acceptText ); } } return null; } /** * {@inheritdoc} */ public function getPriority(): int { return 100; } }