private MatchingOutcome matchOptimized(String name, CamelHumpMatcher matcher) {
    FList<TextRange> fragments = matcher.matchingFragments(name);
    if (fragments == null) return MatchingOutcome.NON_MATCH;
    if (!MinusculeMatcher.isStartMatch(fragments)) return MatchingOutcome.WORSE_MATCH;
    return matcher.matchingDegree(name, fragments) >= myMinMatchingDegree ? MatchingOutcome.BETTER_MATCH : MatchingOutcome.WORSE_MATCH;
  }
private MatchingOutcome matchOptimized(String name, CamelHumpMatcher matcher)