generateVariations method

  1. @override
List<String> generateVariations(
  1. String word
)
override

Generates variations of a word for fuzzy matching

Implementation

@override
List<String> generateVariations(String word) {
  final variations = <String>{word};

  const typoSubstitutions = {
    'ا': ['أ', 'إ', 'آ'],
    'ه': ['ة'],
    'ي': ['ى', 'ئ'],
    'و': ['ؤ']
  };

  for (var letter in typoSubstitutions.keys) {
    if (word.contains(letter)) {
      for (var replacement in typoSubstitutions[letter]!) {
        variations.add(word.replaceAll(letter, replacement));
      }
    }
  }

  return variations.toList();
}