From 71cfca76b5a4acbf5f18790bd6cdd1f328931099 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Wed, 27 Aug 2014 17:27:27 +0400 Subject: [PATCH] Support multiple shortcuts (10.5+) --- .../documentation/DocumentationManager.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java index f1e93cbe4227..63484f890225 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java @@ -66,6 +66,7 @@ import com.intellij.util.Alarm; import com.intellij.util.BooleanFunction; import com.intellij.util.Consumer; import com.intellij.util.Processor; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -442,16 +443,20 @@ public class DocumentationManager extends DockablePopupManager> actions = - Collections.singletonList(Pair.create(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - createToolWindow(element, originalElement); - final JBPopup hint = getDocInfoHint(); - if (hint != null && hint.isVisible()) hint.cancel(); - } - }, keyboardShortcut != null ? keyboardShortcut.getFirstKeyStroke() : null)); // Null keyStroke is ok here + ActionListener actionListener = new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + createToolWindow(element, originalElement); + final JBPopup hint = getDocInfoHint(); + if (hint != null && hint.isVisible()) hint.cancel(); + } + }; + List> actions = ContainerUtil.newSmartList(); + AnAction quickDocAction = ActionManagerEx.getInstanceEx().getAction(IdeActions.ACTION_QUICK_JAVADOC); + for (Shortcut shortcut : quickDocAction.getShortcutSet().getShortcuts()) { + if (!(shortcut instanceof KeyboardShortcut)) continue; + actions.add(Pair.create(actionListener, ((KeyboardShortcut)shortcut).getFirstKeyStroke())); + } boolean hasLookup = LookupManager.getActiveLookup(myEditor) != null; final JBPopup hint = JBPopupFactory.getInstance().createComponentPopupBuilder(component, component)