diff --git a/platform/diff-impl/src/com/intellij/diff/impl/DiffRequestProcessor.java b/platform/diff-impl/src/com/intellij/diff/impl/DiffRequestProcessor.java index d341a100f519..324a52c72286 100644 --- a/platform/diff-impl/src/com/intellij/diff/impl/DiffRequestProcessor.java +++ b/platform/diff-impl/src/com/intellij/diff/impl/DiffRequestProcessor.java @@ -642,7 +642,7 @@ public abstract class DiffRequestProcessor implements Disposable { public void actionPerformed(@NotNull AnActionEvent e) { if (myState.getActiveTool() == myDiffTool) return; - DiffUsageTriggerCollector.trigger("toggle.diff.tool." + myDiffTool.getName()); + DiffUsageTriggerCollector.trigger("toggle.diff.tool", myDiffTool); moveToolOnTop(myDiffTool); updateRequest(true); diff --git a/platform/diff-impl/src/com/intellij/diff/tools/util/base/TextDiffViewerUtil.java b/platform/diff-impl/src/com/intellij/diff/tools/util/base/TextDiffViewerUtil.java index a9a7a8cc898d..8b6ff9d2b7df 100644 --- a/platform/diff-impl/src/com/intellij/diff/tools/util/base/TextDiffViewerUtil.java +++ b/platform/diff-impl/src/com/intellij/diff/tools/util/base/TextDiffViewerUtil.java @@ -269,7 +269,7 @@ public class TextDiffViewerUtil { @Override protected void setValue(@NotNull HighlightPolicy option) { if (getValue() == option) return; - DiffUsageTriggerCollector.trigger("toggle.highlight.policy." + option.name()); + DiffUsageTriggerCollector.trigger("toggle.highlight.policy", option); mySettings.setHighlightPolicy(option); } @@ -310,7 +310,7 @@ public class TextDiffViewerUtil { @Override protected void setValue(@NotNull IgnorePolicy option) { if (getValue() == option) return; - DiffUsageTriggerCollector.trigger("toggle.ignore.policy." + option.name()); + DiffUsageTriggerCollector.trigger("toggle.ignore.policy", option); mySettings.setIgnorePolicy(option); } diff --git a/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffUsageTriggerCollector.java b/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffUsageTriggerCollector.java index 8ce74e3d768d..297f941e756f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffUsageTriggerCollector.java +++ b/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffUsageTriggerCollector.java @@ -1,11 +1,31 @@ // 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.openapi.diff.impl; +import com.intellij.diff.DiffTool; import com.intellij.internal.statistic.service.fus.collectors.FUCounterUsageLogger; +import com.intellij.internal.statistic.utils.PluginInfo; +import com.intellij.internal.statistic.utils.PluginInfoDetectorKt; +import org.jetbrains.annotations.NotNull; public class DiffUsageTriggerCollector { - public static void trigger(String feature) { + public static void trigger(@NotNull String feature) { FUCounterUsageLogger.getInstance().logEvent("vcs.diff.trigger", feature); } + + public static void trigger(@NotNull String feature, @NotNull Enum value) { + trigger(feature + "." + value.name()); + } + + public static void trigger(@NotNull String feature, @NotNull DiffTool diffTool) { + trigger(feature + "." + getDiffToolName(diffTool)); + } + + @NotNull + private static String getDiffToolName(@NotNull DiffTool diffTool) { + PluginInfo pluginInfo = PluginInfoDetectorKt.getPluginInfo(diffTool.getClass()); + if (pluginInfo.isDevelopedByJetBrains()) return diffTool.getName(); + if (pluginInfo.isSafeToReport()) return "third.party." + pluginInfo.getId(); + return "third.party.other"; + } }