From 872aff56712d9b79bcee82622ce7a4e5d889e56a Mon Sep 17 00:00:00 2001 From: Dmitry Trofimov Date: Tue, 1 Mar 2011 16:02:02 +0300 Subject: [PATCH] Execute code fragment in console action(PY-2633). --- .../console/LanguageConsoleImpl.java | 2 +- .../AbstractConsoleRunnerWithHistory.java | 13 ++++--------- .../runners/ConsoleExecuteActionHandler.java | 19 ++++++++++++++----- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java b/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java index bc703320ecca..d649cb12e875 100644 --- a/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java @@ -365,7 +365,7 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider { myHistoryViewer.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE); } - private String addTextRangeToHistory(TextRange textRange, final EditorEx consoleEditor, boolean preserveMarkup) { + protected String addTextRangeToHistory(TextRange textRange, final EditorEx consoleEditor, boolean preserveMarkup) { final DocumentImpl history = (DocumentImpl)myHistoryViewer.getDocument(); final MarkupModel markupModel = history.getMarkupModel(myProject); appendToHistoryDocument(history, myPrompt); diff --git a/platform/lang-impl/src/com/intellij/execution/runners/AbstractConsoleRunnerWithHistory.java b/platform/lang-impl/src/com/intellij/execution/runners/AbstractConsoleRunnerWithHistory.java index 14ca394d105f..4fa5ab1871b0 100644 --- a/platform/lang-impl/src/com/intellij/execution/runners/AbstractConsoleRunnerWithHistory.java +++ b/platform/lang-impl/src/com/intellij/execution/runners/AbstractConsoleRunnerWithHistory.java @@ -242,10 +242,8 @@ public abstract class AbstractConsoleRunnerWithHistory { public static ConsoleExecutionActions createConsoleExecActions(final LanguageConsoleImpl languageConsole, final ProcessHandler processHandler, final ConsoleExecuteActionHandler consoleExecuteActionHandler) { - final ConsoleHistoryModel myHistory = new ConsoleHistoryModel(); - final AnAction runAction = new ConsoleExecuteAction(languageConsole, - myHistory, processHandler, consoleExecuteActionHandler); + processHandler, consoleExecuteActionHandler); final PairProcessor historyProcessor = new PairProcessor() { public boolean process(final AnActionEvent e, final String s) { @@ -260,10 +258,10 @@ public abstract class AbstractConsoleRunnerWithHistory { final EditorEx consoleEditor = languageConsole.getConsoleEditor(); final AnAction upAction = ConsoleHistoryModel.createConsoleHistoryUpAction(createCanMoveUpComputable(consoleEditor), - myHistory, + consoleExecuteActionHandler.getConsoleHistoryModel(), historyProcessor); final AnAction downAction = ConsoleHistoryModel.createConsoleHistoryDownAction(createCanMoveDownComputable(consoleEditor), - myHistory, + consoleExecuteActionHandler.getConsoleHistoryModel(), historyProcessor); return new ConsoleExecutionActions(runAction, downAction, upAction); @@ -331,26 +329,23 @@ public abstract class AbstractConsoleRunnerWithHistory { public static final String CONSOLE_EXECUTE = "Console.Execute"; private final LanguageConsoleImpl myLanguageConsole; - private final ConsoleHistoryModel myHistory; private final ProcessHandler myProcessHandler; private final ConsoleExecuteActionHandler myConsoleExecuteActionHandler; public ConsoleExecuteAction(LanguageConsoleImpl languageConsole, - ConsoleHistoryModel history, ProcessHandler processHandler, ConsoleExecuteActionHandler consoleExecuteActionHandler) { super(null, null, IconLoader.getIcon(ACTIONS_EXECUTE_ICON)); myLanguageConsole = languageConsole; - myHistory = history; myProcessHandler = processHandler; myConsoleExecuteActionHandler = consoleExecuteActionHandler; EmptyAction.setupAction(this, CONSOLE_EXECUTE, null); } public void actionPerformed(final AnActionEvent e) { - myConsoleExecuteActionHandler.runExecuteAction(myLanguageConsole, myHistory); + myConsoleExecuteActionHandler.runExecuteAction(myLanguageConsole); } public void update(final AnActionEvent e) { diff --git a/platform/lang-impl/src/com/intellij/execution/runners/ConsoleExecuteActionHandler.java b/platform/lang-impl/src/com/intellij/execution/runners/ConsoleExecuteActionHandler.java index e9ada53cb4b0..5bd6b971f8d4 100644 --- a/platform/lang-impl/src/com/intellij/execution/runners/ConsoleExecuteActionHandler.java +++ b/platform/lang-impl/src/com/intellij/execution/runners/ConsoleExecuteActionHandler.java @@ -26,21 +26,29 @@ import java.io.IOException; import java.io.OutputStream; /** -* @author traff -*/ + * @author traff + */ public class ConsoleExecuteActionHandler { private final ProcessHandler myProcessHandler; private final boolean myPreserveMarkup; private boolean myAddCurrentToHistory = true; + private ConsoleHistoryModel myConsoleHistoryModel; public ConsoleExecuteActionHandler(ProcessHandler processHandler, boolean preserveMarkup) { myProcessHandler = processHandler; + myConsoleHistoryModel = new ConsoleHistoryModel(); myPreserveMarkup = preserveMarkup; } + public void setConsoleHistoryModel(ConsoleHistoryModel consoleHistoryModel) { + myConsoleHistoryModel = consoleHistoryModel; + } - public void runExecuteAction(LanguageConsoleImpl languageConsole, - ConsoleHistoryModel consoleHistoryModel) { + public ConsoleHistoryModel getConsoleHistoryModel() { + return myConsoleHistoryModel; + } + + public void runExecuteAction(LanguageConsoleImpl languageConsole) { // Process input and add to history final Document document = languageConsole.getCurrentEditor().getDocument(); @@ -53,9 +61,10 @@ public class ConsoleExecuteActionHandler { } languageConsole.setInputText(""); if (!StringUtil.isEmptyOrSpaces(text)) { - consoleHistoryModel.addToHistory(text); + myConsoleHistoryModel.addToHistory(text); } // Send to interpreter / server + processLine(text); } -- 2.32.0