From 55b0ea1e607d957ebd92c6f39ccebff60836b7ea Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 12 Mar 2012 21:12:42 +0400 Subject: [PATCH] - Don't repeat reference variant lookup for empty prefix. - Temporary disable duplicates search with PsiElement position. --- .../resolve/java/JavaClassOrPackageScope.java | 3 ++- .../completion/JetCompletionContributor.java | 27 ++++++++++--------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassOrPackageScope.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassOrPackageScope.java index 6a828b88b85..e9c93d3b6fd 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassOrPackageScope.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassOrPackageScope.java @@ -40,7 +40,8 @@ public abstract class JavaClassOrPackageScope extends JetScopeImpl { @Nullable protected final PsiClass psiClass; - protected JavaClassOrPackageScope(@NotNull ClassOrNamespaceDescriptor descriptor, @NotNull JavaSemanticServices semanticServices, @Nullable PsiClass psiClass) { + protected JavaClassOrPackageScope(@NotNull ClassOrNamespaceDescriptor descriptor, @NotNull JavaSemanticServices semanticServices, + @Nullable PsiClass psiClass) { this.descriptor = descriptor; this.semanticServices = semanticServices; this.psiClass = psiClass; diff --git a/idea/src/org/jetbrains/jet/plugin/completion/JetCompletionContributor.java b/idea/src/org/jetbrains/jet/plugin/completion/JetCompletionContributor.java index c60188fe769..47fa2401086 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/JetCompletionContributor.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/JetCompletionContributor.java @@ -79,6 +79,9 @@ public class JetCompletionContributor extends CompletionContributor { addReferenceVariant(result, variant, positions); } + // Prevent from adding reference variants from standard reference contributor + result.stopHere(); + String prefix = result.getPrefixMatcher().getPrefix(); if (prefix.isEmpty() && parameters.getInvocationCount() < 2) { @@ -93,8 +96,6 @@ public class JetCompletionContributor extends CompletionContributor { if (shouldRunExtensionsCompletion(parameters, prefix)) { addJetExtensions(jetReference.getExpression(), result, position); } - - result.stopHere(); } } }); @@ -233,18 +234,18 @@ public class JetCompletionContributor extends CompletionContributor { @NotNull LookupElement element, @NotNull Set positions) { - LookupPositionObject lookupPosition = getLookupPosition(element); - if (lookupPosition != null) { - if (!positions.contains(lookupPosition)) { - positions.add(lookupPosition); - result.addElement(element); - } - - // There is already an element with same position - ignore duplicate - } - else { +// LookupPositionObject lookupPosition = getLookupPosition(element); +// if (lookupPosition != null) { +// if (!positions.contains(lookupPosition)) { +// positions.add(lookupPosition); +// result.addElement(element); +// } +// +// // There is already an element with same position - ignore duplicate +// } +// else { result.addElement(element); - } +// } } private static LookupPositionObject getLookupPosition(LookupElement element) {