From c90890f96e0746f85f24c83246dd5134daec27a1 Mon Sep 17 00:00:00 2001 From: Dmitry Trofimov Date: Thu, 24 Mar 2016 15:43:11 +0100 Subject: [PATCH] Respect python console path mapping settings (PY-14198) --- .../python/console/PydevConsoleRunner.java | 21 +++++++++++-------- .../console/PydevConsoleRunnerFactory.java | 21 +++++++++++-------- .../PythonToolWindowConsoleRunner.java | 11 +++++----- .../PythonToolWindowConsoleRunnerFactory.java | 6 ++++-- .../run/PythonScriptCommandLineState.java | 7 +++++-- .../env/python/console/PyConsoleTask.java | 3 ++- 6 files changed, 41 insertions(+), 28 deletions(-) diff --git a/python/src/com/jetbrains/python/console/PydevConsoleRunner.java b/python/src/com/jetbrains/python/console/PydevConsoleRunner.java index 4e2aae19101a..6759eba1724e 100644 --- a/python/src/com/jetbrains/python/console/PydevConsoleRunner.java +++ b/python/src/com/jetbrains/python/console/PydevConsoleRunner.java @@ -145,6 +145,7 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory myEnvironmentVariables; private String myCommandLine; + @NotNull private final PyConsoleOptions.PyConsoleSettings myConsoleSettings; private String[] myStatementsToExecute = ArrayUtil.EMPTY_STRING_ARRAY; public static Key CONSOLE_KEY = new Key("PYDEV_CONSOLE_KEY"); @@ -158,18 +159,23 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory environmentVariables, String... statementsToExecute) { + Map environmentVariables, + @NotNull + PyConsoleOptions.PyConsoleSettings settingsProvider, + String... statementsToExecute) { super(project, consoleType.getTitle(), workingDir); mySdk = sdk; myConsoleType = consoleType; myEnvironmentVariables = environmentVariables; + myConsoleSettings = settingsProvider; myStatementsToExecute = statementsToExecute; } @Nullable - public static PyRemotePathMapper getPathMapper(@NotNull Project project, Sdk sdk) { + public static PyRemotePathMapper getPathMapper(@NotNull Project project, Sdk sdk, PyConsoleOptions.PyConsoleSettings consoleSettings) { if (PySdkUtil.isRemote(sdk)) { PythonRemoteInterpreterManager instance = PythonRemoteInterpreterManager.getInstance(); if (instance != null) { @@ -177,7 +183,7 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory pythonPath = PythonCommandLineState.collectPythonPath(module, settingsProvider.shouldAddContentRoots(), settingsProvider.shouldAddSourceRoots()); @@ -108,15 +109,17 @@ public class PydevConsoleRunnerFactory extends PythonConsoleRunnerFactory { Map envs = Maps.newHashMap(settingsProvider.getEnvs()); String ipythonEnabled = PyConsoleOptions.getInstance(project).isIpythonEnabled() ? "True" : "False"; envs.put(PythonEnvUtil.IPYTHONENABLE, ipythonEnabled); - - - return createConsoleRunner(project, sdk, workingDir, envs, PyConsoleType.PYTHON, setupFragment); + + return createConsoleRunner(project, sdk, workingDir, envs, PyConsoleType.PYTHON, settingsProvider, setupFragment); } protected PydevConsoleRunner createConsoleRunner(Project project, Sdk sdk, String workingDir, - Map envs, PyConsoleType consoleType, String ... setupFragment) { - return new PydevConsoleRunner(project, sdk, consoleType, workingDir, envs, setupFragment); + Map envs, + PyConsoleType consoleType, + PyConsoleOptions.PyConsoleSettings settingsProvider, + String... setupFragment) { + return new PydevConsoleRunner(project, sdk, consoleType, workingDir, envs, settingsProvider, setupFragment); } } diff --git a/python/src/com/jetbrains/python/console/PythonToolWindowConsoleRunner.java b/python/src/com/jetbrains/python/console/PythonToolWindowConsoleRunner.java index d16129d2864a..6252a46d7134 100644 --- a/python/src/com/jetbrains/python/console/PythonToolWindowConsoleRunner.java +++ b/python/src/com/jetbrains/python/console/PythonToolWindowConsoleRunner.java @@ -39,11 +39,12 @@ public class PythonToolWindowConsoleRunner extends PydevConsoleRunner { private ToolWindow myToolWindow; public PythonToolWindowConsoleRunner(@NotNull Project project, - @NotNull Sdk sdk, - @NotNull PyConsoleType consoleType, - @Nullable String workingDir, Map environmentVariables, - String ... statementsToExecute) { - super(project, sdk, consoleType, workingDir, environmentVariables, statementsToExecute); + @NotNull Sdk sdk, + @NotNull PyConsoleType consoleType, + @Nullable String workingDir, Map environmentVariables, + @NotNull PyConsoleOptions.PyConsoleSettings settingsProvider, + String... statementsToExecute) { + super(project, sdk, consoleType, workingDir, environmentVariables, settingsProvider, statementsToExecute); } @Override diff --git a/python/src/com/jetbrains/python/console/PythonToolWindowConsoleRunnerFactory.java b/python/src/com/jetbrains/python/console/PythonToolWindowConsoleRunnerFactory.java index 240f3ab48cf2..9ce9d58b038f 100644 --- a/python/src/com/jetbrains/python/console/PythonToolWindowConsoleRunnerFactory.java +++ b/python/src/com/jetbrains/python/console/PythonToolWindowConsoleRunnerFactory.java @@ -17,6 +17,7 @@ package com.jetbrains.python.console; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.Sdk; +import org.jetbrains.annotations.NotNull; import java.util.Map; @@ -28,7 +29,8 @@ public class PythonToolWindowConsoleRunnerFactory extends PydevConsoleRunnerFact protected PydevConsoleRunner createConsoleRunner(Project project, Sdk sdk, String workingDir, - Map envs, PyConsoleType consoleType, String ... setupFragment) { - return new PythonToolWindowConsoleRunner(project, sdk, consoleType, workingDir, envs, setupFragment); + Map envs, PyConsoleType consoleType, + @NotNull PyConsoleOptions.PyConsoleSettings settingsProvider, String... setupFragment) { + return new PythonToolWindowConsoleRunner(project, sdk, consoleType, workingDir, envs, settingsProvider, setupFragment); } } diff --git a/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java b/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java index dd1f82ec6876..a7bf782dbaf0 100644 --- a/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java +++ b/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java @@ -31,6 +31,7 @@ import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.ArrayUtil; import com.jetbrains.python.PythonHelper; +import com.jetbrains.python.console.PyConsoleOptions; import com.jetbrains.python.console.PyConsoleType; import com.jetbrains.python.console.PydevConsoleRunner; import com.jetbrains.python.sdk.PythonEnvUtil; @@ -66,7 +67,8 @@ public class PythonScriptCommandLineState extends PythonCommandLineState { PydevConsoleRunner runner = new PythonScriptWithConsoleRunner(myConfig.getProject(), myConfig.getSdk(), PyConsoleType.PYTHON, myConfig.getWorkingDirectory(), - myConfig.getEnvs(), patchers); + myConfig.getEnvs(), patchers, + PyConsoleOptions.getInstance(myConfig.getProject()).getPythonConsoleSettings()); runner.runSync(); @@ -113,8 +115,9 @@ public class PythonScriptCommandLineState extends PythonCommandLineState { @Nullable String workingDir, Map environmentVariables, CommandLinePatcher[] patchers, + PyConsoleOptions.PyConsoleSettings consoleSettings, String... statementsToExecute) { - super(project, sdk, consoleType, workingDir, environmentVariables, statementsToExecute); + super(project, sdk, consoleType, workingDir, environmentVariables, consoleSettings, statementsToExecute); myPatchers = patchers; } diff --git a/python/testSrc/com/jetbrains/env/python/console/PyConsoleTask.java b/python/testSrc/com/jetbrains/env/python/console/PyConsoleTask.java index fa71f4bd867c..a467f656cc38 100644 --- a/python/testSrc/com/jetbrains/env/python/console/PyConsoleTask.java +++ b/python/testSrc/com/jetbrains/env/python/console/PyConsoleTask.java @@ -151,7 +151,8 @@ public class PyConsoleTask extends PyExecutionFixtureTestTask { setProcessCanTerminate(false); PydevConsoleRunner consoleRunner = - new PydevConsoleRunner(project, sdk, PyConsoleType.PYTHON, getWorkingFolder(), Maps.newHashMap(), new String[]{}) { + new PydevConsoleRunner(project, sdk, PyConsoleType.PYTHON, getWorkingFolder(), Maps.newHashMap(), PyConsoleOptions.getInstance(project).getPythonConsoleSettings(), + new String[]{}) { @Override protected void showConsole(Executor defaultExecutor, @NotNull RunContentDescriptor contentDescriptor) { myContentDescriptorRef.set(contentDescriptor);