diff --git a/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingPopupUI.java b/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingPopupUI.java index 8893a09c559f..1d98db0d0dfa 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingPopupUI.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingPopupUI.java @@ -222,12 +222,10 @@ public class RunAnythingPopupUI extends BigPopupUI { } if (model != null) { - RunAnythingUsageCollector.Companion.triggerExecCategoryStatistics(project, model.getGroups(), model.getClass(), index); + RunAnythingUsageCollector.Companion.triggerExecCategoryStatistics(project, model.getGroups(), model.getClass(), index, + SHIFT_IS_PRESSED.get(), ALT_IS_PRESSED.get()); } DataContext dataContext = createDataContext(myDataContext, ALT_IS_PRESSED.get()); - if (SHIFT_IS_PRESSED.get()) { - RunAnythingUtil.triggerShiftStatistics(dataContext); - } RunAnythingUtil.executeMatched(dataContext, pattern); searchFinishedHandler.run(); diff --git a/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingUsageCollector.kt b/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingUsageCollector.kt index 1a3272a41b69..629c89478c94 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingUsageCollector.kt +++ b/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingUsageCollector.kt @@ -1,8 +1,8 @@ // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.ide.actions.runAnything -import com.intellij.ide.actions.runAnything.RunAnythingAction.RUN_ANYTHING import com.intellij.ide.actions.runAnything.groups.RunAnythingGroup +import com.intellij.internal.statistic.eventLog.FeatureUsageData import com.intellij.internal.statistic.service.fus.collectors.FUCounterUsageLogger import com.intellij.internal.statistic.utils.getPluginInfo import com.intellij.openapi.project.Project @@ -11,27 +11,24 @@ private const val GROUP_ID = "actions.runAnything" class RunAnythingUsageCollector { companion object { - private val allowedCompletionGroupTitles: Array = arrayOf("Bundler", "rails generators", "Gradle tasks", "npm scripts", - "Maven goals", - "rvm use", "rake", "rbenv shell", "General", "Recent projects", - "Run configurations") - - private val allowedHelpGroupTitles: Array = arrayOf("Gradle", "Maven", "npm", "Python", "Recent projects", "ruby", "General", - "Recent") - fun trigger(project: Project, featureId: String) { FUCounterUsageLogger.getInstance().logEvent(project, GROUP_ID, featureId) } fun triggerExecCategoryStatistics(project: Project, - groups: Collection, + groups: MutableCollection, clazz: Class, - index: Int) { + index: Int, + shiftPressed: Boolean, + altPressed: Boolean) { for (i in index downTo 0) { val group = RunAnythingGroup.findGroup(groups, i) if (group != null) { - RunAnythingUsageCollector.trigger(project, getSafeToReportClazzName(clazz) + ": " + - RUN_ANYTHING + " - execution - " + getSafeToReportTitle(group)) + FUCounterUsageLogger.getInstance().logEvent(project, GROUP_ID, "execute", FeatureUsageData() + .addData("list", getSafeToReportClazzName(clazz)) + .addData("group", getSafeToReportTitle(group)) + .addData("with_shift", shiftPressed) + .addData("with_alt", altPressed)) break } } @@ -40,17 +37,19 @@ class RunAnythingUsageCollector { fun triggerMoreStatistics(project: Project, group: RunAnythingGroup, clazz: Class) { - RunAnythingUsageCollector.trigger(project, getSafeToReportClazzName(clazz) + ": " + - RUN_ANYTHING + " - more - " + getSafeToReportTitle(group)) + FUCounterUsageLogger.getInstance().logEvent(project, GROUP_ID, "click.more", FeatureUsageData() + .addData("list", getSafeToReportClazzName(clazz)) + .addData("group", getSafeToReportTitle(group))) } + private fun getSafeToReportClazzName(clazz: Class<*>): String { return if (getPluginInfo(clazz).isSafeToReport()) clazz.simpleName else "third.party" } private fun getSafeToReportTitle(group: RunAnythingGroup): String { return if (!getPluginInfo(group.javaClass).isSafeToReport()) "third.party" - else return if (group.title in allowedCompletionGroupTitles || group.title in allowedHelpGroupTitles) group.title else "run.anything.group.unknown.title" + else return group.title } } } \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingUtil.java b/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingUtil.java index e70cc101d4df..26e36c1465de 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingUtil.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingUtil.java @@ -1,8 +1,6 @@ // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.ide.actions.runAnything; -import com.intellij.execution.Executor; -import com.intellij.execution.ExecutorRegistry; import com.intellij.ide.IdeBundle; import com.intellij.ide.actions.runAnything.activity.RunAnythingProvider; import com.intellij.openapi.actionSystem.CommonDataKeys; @@ -16,7 +14,6 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.wm.ToolWindowId; import com.intellij.ui.Gray; import com.intellij.ui.JBColor; import com.intellij.ui.ScrollingUtil; @@ -33,9 +30,6 @@ import java.awt.*; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Objects; - -import static com.intellij.ide.actions.runAnything.RunAnythingAction.EXECUTOR_KEY; public class RunAnythingUtil { public static final Logger LOG = Logger.getInstance(RunAnythingUtil.class); @@ -44,7 +38,6 @@ public class RunAnythingUtil { public static final String AD_CONTEXT_TEXT = IdeBundle.message("run.anything.ad.run.in.context", KeymapUtil.getShortcutText(KeyboardShortcut.fromString("pressed ALT"))); private static final Key>> RUN_ANYTHING_WRAPPED_COMMANDS = Key.create("RUN_ANYTHING_WRAPPED_COMMANDS"); - private static final String SHIFT_HOLD_USAGE = RunAnythingAction.RUN_ANYTHING + " - " + "SHIFT_HOLD"; static Font getTitleFont() { return UIUtil.getLabelFont().deriveFont(UIUtil.getFontSize(UIUtil.FontSize.SMALL)); @@ -83,15 +76,6 @@ public class RunAnythingUtil { } } - static void triggerShiftStatistics(@NotNull DataContext dataContext) { - Project project = Objects.requireNonNull(CommonDataKeys.PROJECT.getData(dataContext)); - Executor executor = Objects.requireNonNull(EXECUTOR_KEY.getData(dataContext)); - - if (ExecutorRegistry.getInstance().getExecutorById(ToolWindowId.DEBUG) == executor) { - RunAnythingUsageCollector.Companion.trigger(project, SHIFT_HOLD_USAGE); - } - } - @NotNull public static Collection> getOrCreateWrappedCommands(@NotNull Project project) { Collection> list = project.getUserData(RUN_ANYTHING_WRAPPED_COMMANDS);