From b5ea366ab8f8d8a65a038f5277cecae913566aab Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 27 Jun 2012 16:57:34 +0200 Subject: [PATCH] no references to class name completion from productivity tips (IDEA-86517) --- .../completion/ConstructorInsertHandler.java | 7 +++--- .../JavaClassNameCompletionContributor.java | 5 ---- .../completion/JavaCompletionContributor.java | 9 ------- .../completion/JavaCompletionFeatures.java | 1 - .../options/feature.usage.statistics.xml | 3 --- .../completion/CodeCompletionFeatures.java | 1 - .../completion/CodeCompletionHandlerBase.java | 5 +--- .../FeatureStatisticsBundle.properties | 3 --- .../src/tips/TagNameCompletion.html | 3 ++- .../src/tips/ClassNameCompletion.html | 15 ------------ .../src/tips/CompletionImportStatic.html | 4 +-- .../src/tips/SecondClassNameCompletion.html | 14 ----------- resources-en/src/tips/SmartTypeAnonymous.html | 18 -------------- .../src/tips/images/class_name_completion.gif | Bin 4084 -> 0 bytes .../images/second_class_name_completion.png | Bin 3948 -> 0 bytes .../src/ProductivityFeaturesRegistry.xml | 23 ------------------ 16 files changed, 8 insertions(+), 103 deletions(-) delete mode 100644 resources-en/src/tips/ClassNameCompletion.html delete mode 100644 resources-en/src/tips/SecondClassNameCompletion.html delete mode 100644 resources-en/src/tips/SmartTypeAnonymous.html delete mode 100644 resources-en/src/tips/images/class_name_completion.gif delete mode 100644 resources-en/src/tips/images/second_class_name_completion.png diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/ConstructorInsertHandler.java b/java/java-impl/src/com/intellij/codeInsight/completion/ConstructorInsertHandler.java index d96b05aaf471..b4abb4ee4e7d 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/ConstructorInsertHandler.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/ConstructorInsertHandler.java @@ -105,11 +105,10 @@ public class ConstructorInsertHandler implements InsertHandler() { 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 15829dfdb671..9979d222bba3 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java @@ -488,15 +488,6 @@ public class JavaCompletionContributor extends CompletionContributor { } } - if (parameters.getCompletionType() != CompletionType.CLASS_NAME && shouldSuggestClassNameCompletion(parameters.getPosition())) { - if (CompletionUtil.shouldShowFeature(parameters, CodeCompletionFeatures.EDITING_COMPLETION_CLASSNAME)) { - final String shortcut = getActionShortcut(IdeActions.ACTION_CODE_COMPLETION); - if (shortcut != null) { - return CompletionBundle.message("completion.class.name.hint", shortcut); - } - } - } - if (parameters.getCompletionType() == CompletionType.SMART && parameters.getInvocationCount() == 1) { final PsiType[] psiTypes = ExpectedTypesGetter.getExpectedTypes(parameters.getPosition(), true); if (psiTypes.length > 0) { diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionFeatures.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionFeatures.java index c775281e16ed..ac5cfe25fe3a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionFeatures.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionFeatures.java @@ -27,5 +27,4 @@ public interface JavaCompletionFeatures { @NonNls String SECOND_SMART_COMPLETION_ARRAY_MEMBER = "editing.completion.second.smarttype.array.member"; @NonNls String GLOBAL_MEMBER_NAME = "editing.completion.global.member.name"; @NonNls String AFTER_NEW = "editing.completion.smarttype.afternew"; - @NonNls String AFTER_NEW_ANONYMOUS = "editing.completion.smarttype.afternew"; } diff --git a/platform/funcTests/config/options/feature.usage.statistics.xml b/platform/funcTests/config/options/feature.usage.statistics.xml index 9636da089d21..e047526ca94f 100644 --- a/platform/funcTests/config/options/feature.usage.statistics.xml +++ b/platform/funcTests/config/options/feature.usage.statistics.xml @@ -14,7 +14,6 @@ - @@ -57,7 +56,6 @@ - @@ -65,7 +63,6 @@ - diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionFeatures.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionFeatures.java index e2eb6b67dc44..c9bed0d1aea9 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionFeatures.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionFeatures.java @@ -22,7 +22,6 @@ import org.jetbrains.annotations.NonNls; */ public interface CodeCompletionFeatures { @NonNls String EXCLAMATION_FINISH = "editing.completion.finishByExclamation"; - @NonNls String SECOND_CLASS_NAME_COMPLETION = "editing.completion.second.classname"; @NonNls String SECOND_BASIC_COMPLETION = "editing.completion.second.basic"; @NonNls String EDITING_COMPLETION_SMARTTYPE_GENERAL = "editing.completion.smarttype.general"; @NonNls String EDITING_COMPLETION_BASIC = "editing.completion.basic"; diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java index fa9bd7867ad6..f6124cc309ee 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java @@ -151,10 +151,7 @@ public class CodeCompletionHandlerBase implements CodeInsightActionHandler { CompletionServiceImpl.assertPhase(CompletionPhase.NoCompletion.getClass(), CompletionPhase.CommittingDocuments.class); if (time > 1) { - if (myCompletionType == CompletionType.CLASS_NAME) { - FeatureUsageTracker.getInstance().triggerFeatureUsed(CodeCompletionFeatures.SECOND_CLASS_NAME_COMPLETION); - } - else if (myCompletionType == CompletionType.BASIC) { + if (myCompletionType == CompletionType.BASIC) { FeatureUsageTracker.getInstance().triggerFeatureUsed(CodeCompletionFeatures.SECOND_BASIC_COMPLETION); } } diff --git a/platform/platform-resources-en/src/messages/FeatureStatisticsBundle.properties b/platform/platform-resources-en/src/messages/FeatureStatisticsBundle.properties index 883ebe769e70..14f3326d6b9d 100644 --- a/platform/platform-resources-en/src/messages/FeatureStatisticsBundle.properties +++ b/platform/platform-resources-en/src/messages/FeatureStatisticsBundle.properties @@ -38,12 +38,9 @@ navigation.select.in=Select In popup navigation.goto.declaration=Go to declaration navigation.goto.implementation=Go to implementation editing.completion.basic=Basic code completion -editing.completion.classname=Class name completion editing.completion.smarttype.general=Smart type completion -editing.completion.smarttype.anonymous=Smart anonymous class instantiation editing.completion.smarttype.afternew=Smart type completion after new editing.completion.smarttype.casting=Smart type casting -editing.completion.second.classname=Second class name completion editing.completion.second.basic=Second basic completion editing.completion.second.smarttype.chain=Second smart type completion: chained method calls editing.completion.second.smarttype.toar=Second smart type completion: toArray() conversion diff --git a/platform/platform-resources-en/src/tips/TagNameCompletion.html b/platform/platform-resources-en/src/tips/TagNameCompletion.html index 69668ea3624d..cdce27443c63 100644 --- a/platform/platform-resources-en/src/tips/TagNameCompletion.html +++ b/platform/platform-resources-en/src/tips/TagNameCompletion.html @@ -3,7 +3,8 @@ -

A special variant of the CodeCompletion feature invoked by &shortcut:ClassNameCompletion; allows you to +

+ A special variant of the Code Completion feature invoked by pressing &shortcut:CodeCompletion; twice allows you to complete XML tag names from namespaces not declared in the current file. If the namespace is not declared yet the declaration is generated automatically. diff --git a/resources-en/src/tips/ClassNameCompletion.html b/resources-en/src/tips/ClassNameCompletion.html deleted file mode 100644 index d31a84054ed6..000000000000 --- a/resources-en/src/tips/ClassNameCompletion.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - -

A special variant of the CodeCompletion feature invoked by &shortcut:ClassNameCompletion; allows you to complete the name of any - class no matter if it was imported in the current file or not. If the class is not imported yet the import statement is generated automatically.

-

- - - - - diff --git a/resources-en/src/tips/CompletionImportStatic.html b/resources-en/src/tips/CompletionImportStatic.html index 87a7e4f05a63..8141021f87d9 100644 --- a/resources-en/src/tips/CompletionImportStatic.html +++ b/resources-en/src/tips/CompletionImportStatic.html @@ -7,8 +7,8 @@ To quickly complete a method call of a static method located anywhere in your project, libraries or JDK, enter a prefix - and press &shortcut:ClassNameCompletion;. You'll see all the matching methods. If you want the method you chose to be imported statically, - press &shortcut:EditorRight; and see what happens: + and press &shortcut:CodeCompletion; twice. You'll see all the matching methods. If you want the method you chose to be imported statically, + press &shortcut:ShowIntentionActions; and see what happens:

diff --git a/resources-en/src/tips/SecondClassNameCompletion.html b/resources-en/src/tips/SecondClassNameCompletion.html deleted file mode 100644 index dc08487907fd..000000000000 --- a/resources-en/src/tips/SecondClassNameCompletion.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - -

- Pressing the same shortcut after you have invoked Class Name Completion will search for - classes in whole project and its libraries ignoring module dependencies.

-

-

-

-

- - diff --git a/resources-en/src/tips/SmartTypeAnonymous.html b/resources-en/src/tips/SmartTypeAnonymous.html deleted file mode 100644 index 3a52ea323c9a..000000000000 --- a/resources-en/src/tips/SmartTypeAnonymous.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - -

It's very easy to generate the whole anonymous implementation of some interface, for example, of some listener, - by using the SmartType code completion. For example, type

-
-Component component;
-component.addMouseListener(
-    new <caret is here> );
-
-

and press &shortcut:SmartTypeCompletion; to see what happens.

- - - diff --git a/resources-en/src/tips/images/class_name_completion.gif b/resources-en/src/tips/images/class_name_completion.gif deleted file mode 100644 index 673943b0729a863a18743b04d8d3190a95a84d8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4084 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 - - - - - - - -