diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/DefaultCodeFragmentFactory.java b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/DefaultCodeFragmentFactory.java index 053f4448e1d2..15ff6b92e4ac 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/DefaultCodeFragmentFactory.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/DefaultCodeFragmentFactory.java @@ -81,7 +81,7 @@ public class DefaultCodeFragmentFactory extends CodeFragmentFactory { if (parameters.getInvocationCount() <= 1 && JavaCompletionUtil.mayHaveSideEffects(expression)) { final CompletionService service = CompletionService.getCompletionService(); - if (service.getAdvertisementText() == null && parameters.getInvocationCount() < 2) { + if (parameters.getInvocationCount() < 2) { service.setAdvertisementText("Invoke completion once more to see runtime type variants"); } return null; diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java index 90aa28e95724..2bb455223430 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java @@ -265,13 +265,13 @@ public class JavaCompletionContributor extends CompletionContributor { } }); } else { - advertiseSecondCompletion(parameters.getPosition().getProject()); + advertiseSecondCompletion(parameters.getPosition().getProject(), result); } } - public static void advertiseSecondCompletion(Project project) { + public static void advertiseSecondCompletion(Project project, CompletionResultSet result) { if (FeatureUsageTracker.getInstance().isToBeAdvertisedInLookup(CodeCompletionFeatures.SECOND_BASIC_COMPLETION, project)) { - CompletionService.getCompletionService().setAdvertisementText("Press " + getActionShortcut(IdeActions.ACTION_CODE_COMPLETION) + " to see non-imported classes"); + result.addLookupAdvertisement("Press " + getActionShortcut(IdeActions.ACTION_CODE_COMPLETION) + " to see non-imported classes"); } } diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/StaticMemberProcessor.java b/java/java-impl/src/com/intellij/codeInsight/completion/StaticMemberProcessor.java index e523c83dda0f..9a91e8f10f9d 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/StaticMemberProcessor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/StaticMemberProcessor.java @@ -98,7 +98,7 @@ public abstract class StaticMemberProcessor { } private void showHint(boolean shouldImport) { - if (!myHintShown && !shouldImport && CompletionService.getCompletionService().getAdvertisementText() == null) { + if (!myHintShown && !shouldImport) { final String shortcut = CompletionContributor.getActionShortcut(IdeActions.ACTION_SHOW_INTENTION_ACTIONS); if (shortcut != null) { CompletionService.getCompletionService().setAdvertisementText("To import a method statically, press " + shortcut); diff --git a/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionContributor.java b/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionContributor.java index ff2360a82ce0..f2d05226f85c 100644 --- a/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionContributor.java +++ b/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionContributor.java @@ -75,9 +75,7 @@ import java.util.List; * It's one of the item's lookup strings ({@link LookupElement#getAllLookupStrings()} that is matched against prefix matcher.
*
* Q: How do I plug into those funny texts below the items in shown lookup?
- * A: Use {@link CompletionContributor#advertise(CompletionParameters)} or
- * {@link CompletionService#setAdvertisementText(String)}. Don't forget to check whether you are in correct place
- * (see {@link CompletionParameters}).
+ * A: Use {@link CompletionResultSet#addLookupAdvertisement(String)}
*
* Q: How do I change the text that gets shown when there are no suitable variants at all?
* A: Use {@link CompletionContributor#handleEmptyLookup(CompletionParameters, Editor)}.
@@ -179,7 +177,7 @@ public abstract class CompletionContributor {
/**
* @param parameters
- * @deprecated use {@link com.intellij.codeInsight.completion.CompletionService#setAdvertisementText(String)}
+ * @deprecated use {@link com.intellij.codeInsight.completion.CompletionResultSet#addLookupAdvertisement(String)}
* @return text to be shown at the bottom of lookup list
*/
@Nullable
diff --git a/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionResultSet.java b/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionResultSet.java
index 9fc19839c3d2..5bcc12583567 100644
--- a/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionResultSet.java
+++ b/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionResultSet.java
@@ -66,6 +66,8 @@ public abstract class CompletionResultSet {
@NotNull
public abstract CompletionResultSet withRelevanceSorter(@NotNull CompletionSorter sorter);
+ public abstract void addLookupAdvertisement(@NotNull String text);
+
/**
* @return A result set with the same prefix, but the lookup strings will be matched case-insensitively. Their lookup strings will
* remain as they are though, so upon insertion the prefix case will be changed.
diff --git a/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionService.java b/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionService.java
index 590f5e2b7520..74f53b5b933d 100644
--- a/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionService.java
+++ b/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionService.java
@@ -58,6 +58,7 @@ public abstract class CompletionService {
/**
* Set lookup advertisement text (at the bottom) at any time. Will do nothing if no completion process is in progress.
* @param text
+ * @deprecated use {@link CompletionResultSet#addLookupAdvertisement(String)}
*/
public abstract void setAdvertisementText(@Nullable String text);
diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/FilePathCompletionContributor.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/FilePathCompletionContributor.java
index a9d7020a83d5..c491bec4d4a0 100644
--- a/platform/lang-impl/src/com/intellij/codeInsight/completion/FilePathCompletionContributor.java
+++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/FilePathCompletionContributor.java
@@ -71,7 +71,7 @@ public class FilePathCompletionContributor extends CompletionContributor {
if (getReference(psiReference) != null && parameters.getInvocationCount() == 1) {
final String shortcut = getActionShortcut(IdeActions.ACTION_CODE_COMPLETION);
if (shortcut != null) {
- CompletionService.getCompletionService().setAdvertisementText(CodeInsightBundle.message("class.completion.file.path", shortcut));
+ result.addLookupAdvertisement(CodeInsightBundle.message("class.completion.file.path", shortcut));
}
}
}
@@ -155,8 +155,7 @@ public class FilePathCompletionContributor extends CompletionContributor {
if (set.getSuitableFileTypes().length > 0 && parameters.getInvocationCount() == 1) {
final String shortcut = getActionShortcut(IdeActions.ACTION_CODE_COMPLETION);
if (shortcut != null) {
- CompletionService.getCompletionService()
- .setAdvertisementText(CodeInsightBundle.message("class.completion.file.path.all.variants", shortcut));
+ result.addLookupAdvertisement(CodeInsightBundle.message("class.completion.file.path.all.variants", shortcut));
}
}
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 19362bb71cad..8ab05d80133f 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
@@ -160,6 +160,11 @@ public class CompletionServiceImpl extends CompletionService{
return new CompletionResultSetImpl(getConsumer(), myTextBeforePosition, getPrefixMatcher(), myContributor, myParameters, (CompletionSorterImpl)sorter, myProcess, this);
}
+ @Override
+ public void addLookupAdvertisement(@NotNull String text) {
+ getCompletionService().setAdvertisementText(text);
+ }
+
@NotNull
@Override
public CompletionResultSet caseInsensitive() {
diff --git a/platform/lang-impl/src/com/intellij/ui/TextFieldWithAutoCompletionContributor.java b/platform/lang-impl/src/com/intellij/ui/TextFieldWithAutoCompletionContributor.java
index 4f8a070af8fc..a9b7722f7403 100644
--- a/platform/lang-impl/src/com/intellij/ui/TextFieldWithAutoCompletionContributor.java
+++ b/platform/lang-impl/src/com/intellij/ui/TextFieldWithAutoCompletionContributor.java
@@ -59,18 +59,16 @@ public class TextFieldWithAutoCompletionContributor