From 1dc72618875c0b968db93767f5db44c9555eed29 Mon Sep 17 00:00:00 2001 From: fitermay Date: Wed, 31 Aug 2016 00:08:08 -0400 Subject: [PATCH] tab completions --- .../python/console/PydevConsoleRunner.java | 93 ++++++++++++++----- 1 file changed, 69 insertions(+), 24 deletions(-) diff --git a/python/src/com/jetbrains/python/console/PydevConsoleRunner.java b/python/src/com/jetbrains/python/console/PydevConsoleRunner.java index 4fb4aefbf63b..ae7fc0841767 100644 --- a/python/src/com/jetbrains/python/console/PydevConsoleRunner.java +++ b/python/src/com/jetbrains/python/console/PydevConsoleRunner.java @@ -19,6 +19,7 @@ import com.google.common.base.CharMatcher; import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.collect.Collections2; +import com.intellij.codeInsight.lookup.LookupManager; import com.intellij.execution.ExecutionException; import com.intellij.execution.ExecutionHelper; import com.intellij.execution.Executor; @@ -40,11 +41,13 @@ import com.intellij.ide.errorTreeView.NewErrorTreeViewPanel; import com.intellij.internal.statistic.UsageTrigger; import com.intellij.lang.ASTNode; import com.intellij.openapi.actionSystem.*; +import com.intellij.openapi.actionSystem.ex.ActionUtil; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.Result; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Caret; +import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.actionSystem.EditorAction; import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler; @@ -61,10 +64,7 @@ import com.intellij.openapi.project.DumbAwareAction; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.ui.Messages; -import com.intellij.openapi.util.Couple; -import com.intellij.openapi.util.Key; -import com.intellij.openapi.util.Pair; -import com.intellij.openapi.util.SystemInfo; +import com.intellij.openapi.util.*; import com.intellij.openapi.util.io.StreamUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.CharsetToolkit; @@ -164,7 +164,7 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory environmentVariables, @NotNull - PyConsoleOptions.PyConsoleSettings settingsProvider, + PyConsoleOptions.PyConsoleSettings settingsProvider, String... statementsToExecute) { super(project, consoleType.getTitle(), workingDir); mySdk = sdk; @@ -316,6 +316,7 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory ProgressManager.getInstance().run(new Task.Backgroundable(getProject(), "Connecting to Console", false) { - @Override - public void run(@NotNull final ProgressIndicator indicator) { - indicator.setText("Connecting to console..."); - try { - initAndRun(myStatementsToExecute); + UIUtil + .invokeLaterIfNeeded(() -> ProgressManager.getInstance().run(new Task.Backgroundable(getProject(), "Connecting to Console", false) { + @Override + public void run(@NotNull final ProgressIndicator indicator) { + indicator.setText("Connecting to console..."); + try { + initAndRun(myStatementsToExecute); + } + catch (final Exception e) { + LOG.warn("Error running console", e); + UIUtil.invokeAndWaitIfNeeded(new Runnable() { + @Override + public void run() { + showErrorsInConsole(e); + } + }); + } } - catch (final Exception e) { - LOG.warn("Error running console", e); - UIUtil.invokeAndWaitIfNeeded(new Runnable() { - @Override - public void run() { - showErrorsInConsole(e); - } - }); - } - } - })); + })); } private void showErrorsInConsole(Exception e) { @@ -564,7 +566,8 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory %d) on IDE side, " + - "port %d (=> %d) on pydevconsole.py side", myPorts[1], remotePorts.second, myPorts[0], remotePorts.first)); + "port %d (=> %d) on pydevconsole.py side", myPorts[1], remotePorts.second, myPorts[0], + remotePorts.first)); } myPydevConsoleCommunication = new PydevRemoteConsoleCommunication(getProject(), myPorts[0], remoteProcess, myPorts[1]); @@ -575,7 +578,8 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory