From d642e2fde6d8e3870d28e758bd4272e643f6451f Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Thu, 12 Mar 2015 13:28:59 +0100 Subject: [PATCH] honest stats for highlight usages under caret --- .../highlighting/HighlightExitPointsHandler.java | 9 +++++++-- .../HighlightOverridingMethodsHandler.java | 11 ++++++++--- .../highlighting/HighlightUsagesHandler.java | 9 ++++++++- .../highlighting/HighlightUsagesHandlerBase.java | 7 ++++++- .../findUsages/GrHighlightExitPointHandler.java | 9 +++++++-- .../highlighting/PyHighlightExitPointsHandler.java | 8 ++++++-- 6 files changed, 42 insertions(+), 11 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/highlighting/HighlightExitPointsHandler.java b/java/java-impl/src/com/intellij/codeInsight/highlighting/HighlightExitPointsHandler.java index 2ee6e8c7823e..d978c4f1d44b 100644 --- a/java/java-impl/src/com/intellij/codeInsight/highlighting/HighlightExitPointsHandler.java +++ b/java/java-impl/src/com/intellij/codeInsight/highlighting/HighlightExitPointsHandler.java @@ -16,6 +16,7 @@ package com.intellij.codeInsight.highlighting; import com.intellij.codeInsight.CodeInsightBundle; +import com.intellij.featureStatistics.ProductivityFeatureNames; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.*; @@ -50,8 +51,6 @@ public class HighlightExitPointsHandler extends HighlightUsagesHandlerBase targets) { - //FeatureUsageTracker.getInstance().triggerFeatureUsed(ProductivityFeatureNames.CODEASSISTS_HIGHLIGHT_RETURN); - PsiElement parent = myTarget.getParent(); if (!(parent instanceof PsiReturnStatement) && !(parent instanceof PsiThrowStatement)) return; @@ -141,4 +140,10 @@ public class HighlightExitPointsHandler extends HighlightUsagesHandlerBase classes) { - FeatureUsageTracker.getInstance().triggerFeatureUsed("codeassists.highlight.implements"); for (PsiMethod method : myClass.getMethods()) { List superSignatures = method.getHierarchicalMethodSignature().getSuperSignatures(); for (HierarchicalMethodSignature superSignature : superSignatures) { @@ -94,4 +93,10 @@ public class HighlightOverridingMethodsHandler extends HighlightUsagesHandlerBas HighlightUsagesHandler.getShortcutText()); } } + + @Nullable + @Override + public String getFeatureId() { + return "codeassists.highlight.implements"; + } } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HighlightUsagesHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HighlightUsagesHandler.java index 0576f1d09a76..bdb8bf1281a3 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HighlightUsagesHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HighlightUsagesHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package com.intellij.codeInsight.highlighting; import com.intellij.codeInsight.CodeInsightBundle; import com.intellij.codeInsight.TargetElementUtilBase; import com.intellij.codeInsight.daemon.impl.IdentifierUtil; +import com.intellij.featureStatistics.FeatureUsageTracker; import com.intellij.find.EditorSearchComponent; import com.intellij.find.findUsages.PsiElement2UsageTargetAdapter; import com.intellij.injected.editor.EditorWindow; @@ -74,6 +75,12 @@ public class HighlightUsagesHandler extends HighlightHandlerBase { final HighlightUsagesHandlerBase handler = createCustomHandler(editor, file); if (handler != null) { + final String featureId = handler.getFeatureId(); + + if (featureId != null) { + FeatureUsageTracker.getInstance().triggerFeatureUsed(featureId); + } + handler.highlightUsages(); return; } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HighlightUsagesHandlerBase.java b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HighlightUsagesHandlerBase.java index a55e721c9d95..ea4b6d40095c 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HighlightUsagesHandlerBase.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HighlightUsagesHandlerBase.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -100,6 +100,11 @@ public abstract class HighlightUsagesHandlerBase { public abstract List getTargets(); + @Nullable + public String getFeatureId() { + return null; + } + protected abstract void selectTargets(List targets, Consumer> selectionConsumer); public abstract void computeUsages(List targets); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/findUsages/GrHighlightExitPointHandler.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/findUsages/GrHighlightExitPointHandler.java index d160ab9cb4a6..a0cb6f2603e8 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/findUsages/GrHighlightExitPointHandler.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/findUsages/GrHighlightExitPointHandler.java @@ -16,6 +16,7 @@ package org.jetbrains.plugins.groovy.findUsages; import com.intellij.codeInsight.highlighting.HighlightUsagesHandlerBase; +import com.intellij.featureStatistics.ProductivityFeatureNames; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiElement; @@ -55,8 +56,6 @@ public class GrHighlightExitPointHandler extends HighlightUsagesHandlerBase targets) { - //FeatureUsageTracker.getInstance().triggerFeatureUsed(ProductivityFeatureNames.CODEASSISTS_HIGHLIGHT_RETURN); - PsiElement parent = myTarget.getParent(); if (!(parent instanceof GrReturnStatement) && !(parent instanceof GrThrowStatement)) return; @@ -77,4 +76,10 @@ public class GrHighlightExitPointHandler extends HighlightUsagesHandlerBase targets) { - //FeatureUsageTracker.getInstance().triggerFeatureUsed(ProductivityFeatureNames.CODEASSISTS_HIGHLIGHT_RETURN); - final PsiElement parent = myTarget.getParent(); if (!(parent instanceof PyReturnStatement)) { return; @@ -122,4 +120,10 @@ public class PyHighlightExitPointsHandler extends HighlightUsagesHandlerBase