@Override
  public @Nullable FList<TextRange> matchingFragments(@NotNull String name) {
    if (name.length() < myMinNameLength) {
      return null;
    }
    boolean ascii = AsciiUtils.isAscii(name);
    FList<TextRange> ranges = new Session(name, false, ascii).matchingFragments();
    if (ranges != null) return ranges;

    //do not apply typo aware matching for long patterns, it can take too much time
    if (myPattern.length > TYPO_AWARE_PATTERN_LIMIT) return null;

    return new Session(name, true, ascii).matchingFragments();
  }
@Override
  public @Nullable FList<TextRange> matchingFragments(@NotNull String name)