From 203e79125321ff2f6fdac26765abcce1df81a12b Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 7 Oct 2013 17:16:25 +0200 Subject: [PATCH] prefer variants without leading underscores when case sensitivity=first letter (OC-3547) --- .../normalSorting/DispreferUnderscoredCaseMismatch.java | 5 +++++ .../completion/NormalCompletionOrderingTest.groovy | 4 ++++ .../codeInsight/completion/impl/CamelHumpMatcher.java | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/completion/normalSorting/DispreferUnderscoredCaseMismatch.java diff --git a/java/java-tests/testData/codeInsight/completion/normalSorting/DispreferUnderscoredCaseMismatch.java b/java/java-tests/testData/codeInsight/completion/normalSorting/DispreferUnderscoredCaseMismatch.java new file mode 100644 index 000000000000..db60d1c670e5 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normalSorting/DispreferUnderscoredCaseMismatch.java @@ -0,0 +1,5 @@ +class Zoo { + void zoo(String fooBar, String __FOO_BAR) { + foo + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy index d0cda94e6a65..8175435bcd73 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy @@ -460,6 +460,10 @@ interface TxANotAnno {} checkPreferredItems(0, 'fooBar', '_fooBar', 'FooBar') } + public void testDispreferUnderscoredCaseMismatch() { + checkPreferredItems(0, 'fooBar', '__FOO_BAR') + } + public void testStatisticsMattersOnNextCompletion() { configureByFile(getTestName(false) + ".java") myFixture.completeBasic(); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/CamelHumpMatcher.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/CamelHumpMatcher.java index ea045464221e..ee3a195ae8fa 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/CamelHumpMatcher.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/CamelHumpMatcher.java @@ -143,7 +143,7 @@ public class CamelHumpMatcher extends PrefixMatcher { int matchStart = ranges.get(0).getStartOffset(); int underscoreEnd = skipUnderscores(string); if (matchStart > 0 && matchStart <= underscoreEnd) { - return myMatcher.matchingDegree(string.substring(matchStart)) - 1; + return myCaseInsensitiveMatcher.matchingDegree(string.substring(matchStart)) - 1; } }