* Dariusz Rumiński * * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace PhpCsFixer; /** * @author Dariusz Rumiński * * @internal */ final class WordMatcher { /** * @var string[] */ private array $candidates; /** * @param string[] $candidates */ public function __construct(array $candidates) { $this->candidates = $candidates; } public function match(string $needle): ?string { $word = null; $distance = ceil(\strlen($needle) * 0.35); foreach ($this->candidates as $candidate) { $candidateDistance = levenshtein($needle, $candidate); if ($candidateDistance < $distance) { $word = $candidate; $distance = $candidateDistance; } } return $word; } }