more truthful middle word start matching criterion

This commit is contained in:
peter
2012-07-27 16:00:07 +02:00
parent 5e14d6a760
commit a4ff866770
2 changed files with 3 additions and 2 deletions
@@ -441,6 +441,7 @@ public class NameUtilTest extends UsefulTestCase {
assertPreference("*ap", "add_profile", "application", NameUtil.MatchingCaseSensitivity.NONE);
assertPreference("*les", "configureByFiles", "getLookupElementStrings", NameUtil.MatchingCaseSensitivity.FIRST_LETTER);
assertPreference("*les", "configureByFiles", "getLookupElementStrings", NameUtil.MatchingCaseSensitivity.NONE);
assertPreference("*ea", "LEADING", "NORTH_EAST", NameUtil.MatchingCaseSensitivity.NONE);
}
public void testPreferEarlyMatching() {
@@ -92,9 +92,9 @@ public class MinusculeMatcher implements Matcher {
int startIndex = first.getStartOffset();
boolean prefixMatching = isStartMatch(name, startIndex);
boolean middleWordStart = !prefixMatching && NameUtil.isWordStart(name, first.getStartOffset());
boolean middleWordStart = !prefixMatching && startIndex > 0 && NameUtil.isWordStart(name, startIndex) && !NameUtil.isWordStart(name, startIndex - 1);
return -fragmentCount + matchingCase * 20 + commonStart * 30 - startIndex + (prefixMatching ? 2 : middleWordStart ? 1 : 0) * 100 - integral;
return -fragmentCount + matchingCase * 20 + commonStart * 30 - startIndex + (prefixMatching ? 2 : middleWordStart ? 1 : 0) * 1000 - integral;
}
public boolean isStartMatch(String name) {