summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/help/impl/KeymapGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/platform-impl/src/com/intellij/help/impl/KeymapGenerator.java')
-rw-r--r--platform/platform-impl/src/com/intellij/help/impl/KeymapGenerator.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/platform/platform-impl/src/com/intellij/help/impl/KeymapGenerator.java b/platform/platform-impl/src/com/intellij/help/impl/KeymapGenerator.java
index acd74f9c8f54..f38ef84a2b93 100644
--- a/platform/platform-impl/src/com/intellij/help/impl/KeymapGenerator.java
+++ b/platform/platform-impl/src/com/intellij/help/impl/KeymapGenerator.java
@@ -23,9 +23,11 @@ import com.intellij.openapi.keymap.KeymapUtil;
import com.intellij.openapi.keymap.ex.KeymapManagerEx;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
+import gnu.trove.THashSet;
import java.io.File;
import java.io.IOException;
+import java.util.Set;
/**
* @author Konstantin Bulenkov
@@ -47,13 +49,20 @@ public class KeymapGenerator implements ApplicationStarter {
xml.append("<Keymaps>\n");
for (Keymap keymap : KeymapManagerEx.getInstanceEx().getAllKeymaps()) {
- xml.append(" <Keymap name=\"").append(keymap.getName()).append("\">\n");
+
+ xml.append(" <Keymap name=\"").append(keymap.getPresentableName()).append("\">\n");
for (String id : keymap.getActionIds()) {
String shortcuts = KeymapUtil.getShortcutsText(keymap.getShortcuts(id));
if (!StringUtil.isEmpty(shortcuts)) {
xml.append(" <Action id=\"").append(id).append("\">\n");
+ Set<String> addedShortcuts = new THashSet<String>();
for (Shortcut shortcut : keymap.getShortcuts(id)) {
- xml.append(" <Shortcut>").append(KeymapUtil.getShortcutText(shortcut)).append("</Shortcut>\n");
+ // Different shortcuts may have equal display strings (e.g. shift+minus and shift+subtract)
+ // We don't want them do be duplicated for users
+ String shortcutText = KeymapUtil.getShortcutText(shortcut);
+ if (addedShortcuts.add(shortcutText)) {
+ xml.append(" <Shortcut>").append(shortcutText).append("</Shortcut>\n");
+ }
}
xml.append(" </Action>\n");
}