AnAction (PythonConsoleView consoleView) { AnAction anAction = new AnAction() { @Override public void actionPerformed(@NotNull final AnActionEvent e) { ConsoleCommunication consoleCommunication = consoleView.getExecuteActionHandler().getConsoleCommunication(); if (consoleCommunication.isExecuting() || consoleCommunication.isWaitingForInput()) { consoleView.print("^C", ProcessOutputTypes.SYSTEM); consoleCommunication.interrupt(); } else { DocumentEx document = consoleView.getConsoleEditor().getDocument(); if (document.getTextLength() != 0) { ApplicationManager.getApplication().runWriteAction(() -> CommandProcessor .getInstance() .runUndoTransparentAction(() -> document.deleteString(0, document .getLineEndOffset(document.getLineCount() - 1)))); } } } @Override public void update(@NotNull final AnActionEvent e) { e.getPresentation().setVisible(false); boolean enabled = false; EditorEx consoleEditor = consoleView.getConsoleEditor(); if (IJSwingUtilities.hasFocus(consoleEditor.getComponent())) { enabled = !consoleEditor.getSelectionModel().hasSelection(); } EditorEx historyViewer = consoleView.getHistoryViewer(); if (IJSwingUtilities.hasFocus(historyViewer.getComponent())) { enabled = !historyViewer.getSelectionModel().hasSelection(); } e.getPresentation().setEnabled(enabled); } @Override public @NotNull ActionUpdateThread getActionUpdateThread() { return ActionUpdateThread.EDT; } }; anAction.registerCustomShortcutSet(KeyEvent.VK_C, InputEvent.CTRL_DOWN_MASK, consoleView.getConsoleEditor().getComponent()); anAction.registerCustomShortcutSet(KeyEvent.VK_C, InputEvent.CTRL_DOWN_MASK, consoleView.getHistoryViewer().getComponent()); return anAction; }