use of com.intellij.openapi.keymap.Keymap in project intellij-community by JetBrains.
the class ExternalSystemShortcutsManager method getShortcuts.
@NotNull
private Shortcut[] getShortcuts(@Nullable String projectPath, @Nullable String taskName) {
String actionId = getActionId(projectPath, taskName);
if (actionId == null)
return Shortcut.EMPTY_ARRAY;
Keymap activeKeymap = KeymapManager.getInstance().getActiveKeymap();
return activeKeymap.getShortcuts(actionId);
}
use of com.intellij.openapi.keymap.Keymap in project intellij-community by JetBrains.
the class KeymapsTestCase method checkDuplicatesInKeymap.
@NotNull
@SuppressWarnings({ "HardCodedStringLiteral" })
private static String checkDuplicatesInKeymap(@NotNull KeymapImpl keymap, @NotNull Map<String, Map<String, List<String>>> allKnownDuplicates) {
Set<String> aids = keymap.getActionIdList();
removeBoundActionIds(aids);
Set<Shortcut> shortcuts = new THashSet<>();
nextId: for (String id : aids) {
Map<String, List<String>> knownDuplicates = allKnownDuplicates.get(keymap.getName());
if (knownDuplicates != null) {
for (List<String> actionsMapping : knownDuplicates.values()) {
if (actionsMapping.contains(id)) {
continue nextId;
}
}
}
for (Shortcut shortcut : keymap.getShortcuts(id)) {
if (shortcut instanceof KeyboardShortcut) {
shortcuts.add(shortcut);
}
}
}
List<Shortcut> sorted = new ArrayList<>(shortcuts);
Collections.sort(sorted, Comparator.comparing(KeymapsTestCase::getText));
if (OUTPUT_TEST_DATA) {
System.out.println("put(\"" + keymap.getName() + "\", new String[][] {");
} else {
System.out.println(keymap.getName());
}
StringBuilder failMessage = new StringBuilder();
for (Shortcut shortcut : sorted) {
if (!(shortcut instanceof KeyboardShortcut)) {
continue;
}
Set<String> ids = new THashSet<>(Arrays.asList(keymap.getActionIds(shortcut)));
removeBoundActionIds(ids);
if (ids.size() == 1) {
continue;
}
Keymap parent = keymap.getParent();
if (parent != null) {
// ignore duplicates from default keymap
boolean differFromParent = false;
for (String id : ids) {
Shortcut[] here = keymap.getShortcuts(id);
Shortcut[] there = parent.getShortcuts(id);
if (keymap.getName().startsWith("Mac")) {
convertMac(there);
}
if (!new THashSet<>(Arrays.asList(here)).equals(new THashSet<>(Arrays.asList(there)))) {
differFromParent = true;
break;
}
}
if (!differFromParent)
continue;
}
String def = "{ " + "\"" + getText(shortcut) + "\"," + StringUtil.repeatSymbol(' ', 25 - getText(shortcut).length()) + StringUtil.join(ids, StringUtil.QUOTER, ", ") + "},";
if (OUTPUT_TEST_DATA) {
System.out.println(def);
} else {
if (failMessage.length() == 0) {
failMessage.append("Shortcut '").append(getText(shortcut)).append("' conflicts found in keymap '").append(keymap.getName()).append("':\n");
}
failMessage.append(def).append("\n");
}
}
if (OUTPUT_TEST_DATA) {
System.out.println("});");
}
return failMessage.toString();
}
use of com.intellij.openapi.keymap.Keymap in project intellij-community by JetBrains.
the class AntToolwindowRegistrar method projectOpened.
@Override
public void projectOpened() {
final KeymapManagerEx keymapManager = KeymapManagerEx.getInstanceEx();
final String prefix = AntConfiguration.getActionIdPrefix(myProject);
final ActionManager actionManager = ActionManager.getInstance();
for (Keymap keymap : keymapManager.getAllKeymaps()) {
for (String id : keymap.getActionIdList()) {
if (id.startsWith(prefix) && actionManager.getAction(id) == null) {
actionManager.registerAction(id, new TargetActionStub(id, myProject));
}
}
}
final CompilerManager compilerManager = CompilerManager.getInstance(myProject);
compilerManager.addBeforeTask(new CompileTask() {
@Override
public boolean execute(CompileContext context) {
final AntConfiguration config = AntConfiguration.getInstance(myProject);
((AntConfigurationBase) config).ensureInitialized();
return config.executeTargetBeforeCompile(createDataContext(context));
}
});
compilerManager.addAfterTask(new CompileTask() {
@Override
public boolean execute(CompileContext context) {
final AntConfigurationBase config = (AntConfigurationBase) AntConfiguration.getInstance(myProject);
config.ensureInitialized();
if (context.getMessageCount(CompilerMessageCategory.ERROR) > 0) {
final AntBuildTarget target = config.getTargetForEvent(ExecuteAfterCompilationEvent.getInstance());
if (target != null) {
context.addMessage(CompilerMessageCategory.INFORMATION, "Skipping ant target \"" + target.getDisplayName() + "\" because of compilation errors", null, -1, -1);
}
return true;
}
return config.executeTargetAfterCompile(createDataContext(context));
}
});
}
use of com.intellij.openapi.keymap.Keymap in project intellij-community by JetBrains.
the class QuickChangeKeymapAction method fillActions.
@Override
protected void fillActions(Project project, @NotNull DefaultActionGroup group, @NotNull DataContext dataContext) {
KeymapManagerEx manager = (KeymapManagerEx) KeymapManager.getInstance();
Keymap current = manager.getActiveKeymap();
for (Keymap keymap : manager.getAllKeymaps()) {
addKeymapAction(group, manager, current, keymap, false);
}
}
use of com.intellij.openapi.keymap.Keymap in project intellij-community by JetBrains.
the class ToolWindowManagerImpl method getActivateToolWindowVKs.
@NotNull
private static Set<Integer> getActivateToolWindowVKs() {
if (ApplicationManager.getApplication() == null)
return new HashSet<>();
Keymap keymap = KeymapManager.getInstance().getActiveKeymap();
Shortcut[] baseShortcut = keymap.getShortcuts("ActivateProjectToolWindow");
int baseModifiers = SystemInfo.isMac ? InputEvent.META_MASK : InputEvent.ALT_MASK;
for (Shortcut each : baseShortcut) {
if (each instanceof KeyboardShortcut) {
KeyStroke keyStroke = ((KeyboardShortcut) each).getFirstKeyStroke();
baseModifiers = keyStroke.getModifiers();
if (baseModifiers > 0) {
break;
}
}
}
return getModifiersVKs(baseModifiers);
}
Aggregations