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 9b59c4a6ece0..790ad4a886a4 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 @@ -87,6 +87,10 @@ public class CamelHumpMatcher extends PrefixMatcher { @Override @NotNull public PrefixMatcher cloneWithPrefix(@NotNull final String prefix) { + if (prefix.equals(myPrefix)) { + return this; + } + return new CamelHumpMatcher(prefix, myCaseSensitive); } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/CompletionServiceImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/CompletionServiceImpl.java index 8cc3b5f3004e..944eb1786047 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/CompletionServiceImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/CompletionServiceImpl.java @@ -143,6 +143,10 @@ public final class CompletionServiceImpl extends CompletionService { @Override @NotNull public CompletionResultSet withPrefixMatcher(@NotNull final PrefixMatcher matcher) { + if (matcher.equals(getPrefixMatcher())) { + return this; + } + return new CompletionResultSetImpl(getConsumer(), myLengthOfTextBeforePosition, matcher, myContributor, myParameters, mySorter, this); } @@ -160,7 +164,7 @@ public final class CompletionServiceImpl extends CompletionService { @Override @NotNull public CompletionResultSet withPrefixMatcher(@NotNull final String prefix) { - return withPrefixMatcher(new CamelHumpMatcher(prefix)); + return withPrefixMatcher(getPrefixMatcher().cloneWithPrefix(prefix)); } @NotNull