Fix the locale on mac only for pycharm processes creation.

This commit is contained in:
Dmitry Trofimov
2014-03-05 20:45:39 +01:00
parent 39c8f52f62
commit 8d167c68f1
4 changed files with 12 additions and 10 deletions
@@ -282,10 +282,6 @@ public class GeneralCommandLine implements UserDataHolder {
: EnvironmentUtil.getEnvironmentMap());
}
if (PlatformUtils.isPyCharm()) { //We test the approach on snakes first. If it won't cause problems then apply for all (IDEA-118946)
EncodingEnvironmentUtil.fixDefaultEncodingIfMac(this, null);
}
if (!myEnvParams.isEmpty()) {
if (SystemInfo.isWindows) {
THashMap<String, String> envVars = new THashMap<String, String>(CaseInsensitiveStringHashingStrategy.INSTANCE);
@@ -20,6 +20,7 @@ import com.google.common.collect.Maps;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.ExecutionHelper;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.EncodingEnvironmentUtil;
import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.execution.console.ConsoleHistoryController;
import com.intellij.execution.console.LanguageConsoleView;
@@ -288,8 +289,12 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory<PythonC
}
else {
myCommandLine = myCommandLineArgumentsProvider.getCommandLineString();
Map<String, String> envs = myCommandLineArgumentsProvider.getAdditionalEnvs();
if (envs != null) {
EncodingEnvironmentUtil.fixDefaultEncodingIfMac(envs, getProject());
}
final Process server = ProcessRunner
.createProcess(getWorkingDir(), myCommandLineArgumentsProvider.getAdditionalEnvs(), myCommandLineArgumentsProvider.getArguments());
.createProcess(getWorkingDir(), envs, myCommandLineArgumentsProvider.getArguments());
try {
myPydevConsoleCommunication = new PydevConsoleCommunication(getProject(), myPorts[0], server, myPorts[1]);
}
@@ -454,7 +459,8 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory<PythonC
e.getPresentation().setEnabled(enabled);
}
};
anAction.registerCustomShortcutSet(KeyEvent.VK_C, InputEvent.CTRL_MASK, getConsoleView().getConsole().getConsoleEditor().getComponent());
anAction
.registerCustomShortcutSet(KeyEvent.VK_C, InputEvent.CTRL_MASK, getConsoleView().getConsole().getConsoleEditor().getComponent());
anAction.getTemplatePresentation().setVisible(false);
return anAction;
}
@@ -21,10 +21,7 @@ import com.intellij.execution.DefaultExecutionResult;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.ExecutionResult;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.CommandLineState;
import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.execution.configurations.ParametersList;
import com.intellij.execution.configurations.RunnerSettings;
import com.intellij.execution.configurations.*;
import com.intellij.execution.filters.Filter;
import com.intellij.execution.filters.TextConsoleBuilder;
import com.intellij.execution.filters.TextConsoleBuilderFactory;
@@ -179,6 +176,7 @@ public abstract class PythonCommandLineState extends CommandLineState {
createRemoteProcessStarter().startRemoteProcess(sdk, commandLine, myConfig.getProject(), myConfig.getMappingSettings());
}
else {
EncodingEnvironmentUtil.fixDefaultEncodingIfMac(commandLine, myConfig.getProject());
processHandler = doCreateProcess(commandLine);
ProcessTerminatedListener.attach(processHandler);
}
@@ -18,6 +18,7 @@ package com.jetbrains.python.run;
import com.google.common.collect.Lists;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.RunContentExecutor;
import com.intellij.execution.configurations.EncodingEnvironmentUtil;
import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.execution.configurations.ParamsGroup;
import com.intellij.execution.process.ProcessHandler;
@@ -102,6 +103,7 @@ public class PythonTask {
handler = new PyRemoteProcessStarter().startRemoteProcess(mySdk, commandLine, myModule.getProject(), null);
}
else {
EncodingEnvironmentUtil.fixDefaultEncodingIfMac(commandLine, myModule.getProject());
handler = PythonProcessRunner.createProcessHandlingCtrlC(commandLine);
ProcessTerminatedListener.attach(handler);