diff --git a/platform/platform-tests/testSrc/com/intellij/psi/util/NameUtilTest.java b/platform/platform-tests/testSrc/com/intellij/psi/util/NameUtilTest.java index 2f5f17c32b8c..74d23da62ebd 100644 --- a/platform/platform-tests/testSrc/com/intellij/psi/util/NameUtilTest.java +++ b/platform/platform-tests/testSrc/com/intellij/psi/util/NameUtilTest.java @@ -377,6 +377,7 @@ public class NameUtilTest extends UsefulTestCase { } public void testMatchingDegree() { + assertPreference("jscote", "JsfCompletionTest", "JSCompletionTest", NameUtil.MatchingCaseSensitivity.NONE); assertPreference("OCO", "OneCoolObject", "OCObject"); assertPreference("MUp", "MavenUmlProvider", "MarkUp"); assertPreference("MUP", "MarkUp", "MavenUmlProvider"); @@ -400,6 +401,11 @@ public class NameUtilTest extends UsefulTestCase { assertPreference(" Boo", "boolean", "Boolean", NameUtil.MatchingCaseSensitivity.NONE); } + public void testPreferWordBoundaryMatch() { + assertPreference("*les", "configureByFiles", "getLookupElementStrings", NameUtil.MatchingCaseSensitivity.FIRST_LETTER); + assertPreference("*les", "configureByFiles", "getLookupElementStrings", NameUtil.MatchingCaseSensitivity.NONE); + } + public void testPreferEarlyMatching() { assertPreference(" path", "getAbsolutePath", "findPath"); } diff --git a/platform/util/src/com/intellij/psi/codeStyle/MinusculeMatcher.java b/platform/util/src/com/intellij/psi/codeStyle/MinusculeMatcher.java index 59919fd3e0d0..91181db42432 100644 --- a/platform/util/src/com/intellij/psi/codeStyle/MinusculeMatcher.java +++ b/platform/util/src/com/intellij/psi/codeStyle/MinusculeMatcher.java @@ -264,7 +264,9 @@ public class MinusculeMatcher implements Matcher { if (p < 0) { break; } - matchingCase += c == myPattern[p] ? 1 : 0; + if (Character.isUpperCase(myPattern[p]) || i == range.getStartOffset()) { + matchingCase += c == myPattern[p] ? 1 : 0; + } } fragmentCount++; }