diff --git a/python/helpers/pydev/pydev_console_utils.py b/python/helpers/pydev/pydev_console_utils.py index e87774f5289c..4676da3c3120 100644 --- a/python/helpers/pydev/pydev_console_utils.py +++ b/python/helpers/pydev/pydev_console_utils.py @@ -215,7 +215,7 @@ class BaseInterpreterInterface: try: self.startExec() more = self.doAddExec(code_fragment) - self.finishExec() + self.finishExec(more) finally: if help is not None: try: @@ -358,13 +358,13 @@ class BaseInterpreterInterface: else: return None - def finishExec(self): + def finishExec(self, more): self.interruptable = False server = self.get_server() if server is not None: - return server.NotifyFinished() + return server.NotifyFinished(more) else: return True diff --git a/python/pydevSrc/com/jetbrains/python/console/pydev/AbstractConsoleCommunication.java b/python/pydevSrc/com/jetbrains/python/console/pydev/AbstractConsoleCommunication.java index 70594f95896c..e8fa271c8baf 100644 --- a/python/pydevSrc/com/jetbrains/python/console/pydev/AbstractConsoleCommunication.java +++ b/python/pydevSrc/com/jetbrains/python/console/pydev/AbstractConsoleCommunication.java @@ -57,9 +57,9 @@ public abstract class AbstractConsoleCommunication implements ConsoleCommunicati } @Override - public void notifyCommandExecuted() { + public void notifyCommandExecuted(boolean more) { for (ConsoleCommunicationListener listener: communicationListeners) { - listener.commandExecuted(); + listener.commandExecuted(more); } } diff --git a/python/pydevSrc/com/jetbrains/python/console/pydev/ConsoleCommunication.java b/python/pydevSrc/com/jetbrains/python/console/pydev/ConsoleCommunication.java index 51604d73ee5c..301717148bbd 100644 --- a/python/pydevSrc/com/jetbrains/python/console/pydev/ConsoleCommunication.java +++ b/python/pydevSrc/com/jetbrains/python/console/pydev/ConsoleCommunication.java @@ -24,7 +24,7 @@ public interface ConsoleCommunication { void addCommunicationListener(ConsoleCommunicationListener listener); - void notifyCommandExecuted(); + void notifyCommandExecuted(boolean more); void notifyInputRequested(); class ConsoleCodeFragment { diff --git a/python/pydevSrc/com/jetbrains/python/console/pydev/ConsoleCommunicationListener.java b/python/pydevSrc/com/jetbrains/python/console/pydev/ConsoleCommunicationListener.java index 562f729fe588..a9263b7ce0e7 100644 --- a/python/pydevSrc/com/jetbrains/python/console/pydev/ConsoleCommunicationListener.java +++ b/python/pydevSrc/com/jetbrains/python/console/pydev/ConsoleCommunicationListener.java @@ -4,6 +4,6 @@ package com.jetbrains.python.console.pydev; * @author traff */ public interface ConsoleCommunicationListener { - void commandExecuted(); + void commandExecuted(boolean more); void inputRequested(); } diff --git a/python/src/com/jetbrains/python/console/PydevConsoleCommunication.java b/python/src/com/jetbrains/python/console/PydevConsoleCommunication.java index 387226f7ae14..b04ff3b0ef82 100644 --- a/python/src/com/jetbrains/python/console/PydevConsoleCommunication.java +++ b/python/src/com/jetbrains/python/console/PydevConsoleCommunication.java @@ -169,7 +169,7 @@ public class PydevConsoleCommunication extends AbstractConsoleCommunication impl */ public Object execute(String method, Vector params) throws Exception { if ("NotifyFinished".equals(method)) { - return execNotifyFinished(); + return execNotifyFinished((Boolean)params.get(0)); } else if ("RequestInput".equals(method)) { return execRequestInput(); @@ -225,9 +225,9 @@ public class PydevConsoleCommunication extends AbstractConsoleCommunication impl return Boolean.FALSE; } - private Object execNotifyFinished() { + private Object execNotifyFinished(boolean more) { setExecuting(false); - notifyCommandExecuted(); + notifyCommandExecuted(more); return true; } diff --git a/python/src/com/jetbrains/python/console/PydevConsoleExecuteActionHandler.java b/python/src/com/jetbrains/python/console/PydevConsoleExecuteActionHandler.java index e9e07e688c31..3dd6187a534b 100644 --- a/python/src/com/jetbrains/python/console/PydevConsoleExecuteActionHandler.java +++ b/python/src/com/jetbrains/python/console/PydevConsoleExecuteActionHandler.java @@ -181,6 +181,7 @@ public class PydevConsoleExecuteActionHandler extends ConsoleExecuteActionHandle indentEditor(currentEditor, indent); more(console, currentEditor); + myConsoleCommunication.notifyCommandExecuted(true); return; } } @@ -271,10 +272,13 @@ public class PydevConsoleExecuteActionHandler extends ConsoleExecuteActionHandle } @Override - public void commandExecuted() { - final LanguageConsoleImpl console = myConsoleView.getConsole(); - final Editor currentEditor = console.getConsoleEditor(); - ordinaryPrompt(console, currentEditor); + public void commandExecuted(boolean more) { + if (!more) { + final LanguageConsoleImpl console = myConsoleView.getConsole(); + final Editor currentEditor = console.getConsoleEditor(); + + ordinaryPrompt(console, currentEditor); + } } @Override diff --git a/python/src/com/jetbrains/python/console/PythonConsoleView.java b/python/src/com/jetbrains/python/console/PythonConsoleView.java index dcc5a355db1b..27d964ac9121 100644 --- a/python/src/com/jetbrains/python/console/PythonConsoleView.java +++ b/python/src/com/jetbrains/python/console/PythonConsoleView.java @@ -385,7 +385,7 @@ public class PythonConsoleView extends JPanel implements LanguageConsoleView, Ob final XStandaloneVariablesView view = new XStandaloneVariablesView(myProject, new PyDebuggerEditorsProvider(), stackFrame); consoleCommunication.addCommunicationListener(new ConsoleCommunicationListener() { @Override - public void commandExecuted() { + public void commandExecuted(boolean more) { view.rebuildView(); }