From fb700a78cb6a7fa42b87523a511c2f0a728dff7d Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Tue, 6 Jun 2017 00:12:30 +0200 Subject: [PATCH] support for double shortcuts in shortcuts collector --- .../statistic/ShortcutsCollector.java | 27 ++++++++++++++----- .../impl/ModifierKeyDoubleClickHandler.java | 2 ++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/internal/statistic/ShortcutsCollector.java b/platform/platform-impl/src/com/intellij/internal/statistic/ShortcutsCollector.java index cabfd17ed1c3..2505bbddf331 100644 --- a/platform/platform-impl/src/com/intellij/internal/statistic/ShortcutsCollector.java +++ b/platform/platform-impl/src/com/intellij/internal/statistic/ShortcutsCollector.java @@ -59,19 +59,34 @@ public class ShortcutsCollector implements PersistentStateComponent values = collector.getState().myValues; - values.put(key, ContainerUtil.getOrElse(values, key, 0) + 1); + if (isDoubleShortcut) { + key = SystemInfo.isMac ? key + key : key + "+" + key; + } + incValue(key); } } + private static void incValue(String key) { + ShortcutsCollector collector = getInstance(); + + if (collector == null) return; //no shortcuts stats for the IDE + + Map values = collector.getState().myValues; + values.put(key, ContainerUtil.getOrElse(values, key, 0) + 1); + } + private static ShortcutsCollector getInstance() { return ServiceManager.getService(ShortcutsCollector.class); diff --git a/platform/platform-impl/src/com/intellij/openapi/keymap/impl/ModifierKeyDoubleClickHandler.java b/platform/platform-impl/src/com/intellij/openapi/keymap/impl/ModifierKeyDoubleClickHandler.java index a70a78f118a8..756b060dca8c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/keymap/impl/ModifierKeyDoubleClickHandler.java +++ b/platform/platform-impl/src/com/intellij/openapi/keymap/impl/ModifierKeyDoubleClickHandler.java @@ -17,6 +17,7 @@ package com.intellij.openapi.keymap.impl; import com.intellij.ide.DataManager; import com.intellij.ide.IdeEventQueue; +import com.intellij.internal.statistic.ShortcutsCollector; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.ActionManagerEx; @@ -260,6 +261,7 @@ public class ModifierKeyDoubleClickHandler implements Disposable, ApplicationCom myActionManagerEx.fireBeforeActionPerformed(action, anActionEvent.getDataContext(), anActionEvent); action.actionPerformed(anActionEvent); myActionManagerEx.fireAfterActionPerformed(action, anActionEvent.getDataContext(), anActionEvent); + ShortcutsCollector.recordDoubleShortcut(anActionEvent); return true; } finally {