forked from qt-creator/qt-creator
Python: prevent setting local env to remote pyls
Change-Id: Id0eea5420c897687e6931bf640e3a37ba2638b8f Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -99,10 +99,6 @@ void BaseClientInterface::parseCurrentMessage()
|
||||
m_currentMessage = BaseMessage();
|
||||
}
|
||||
|
||||
StdIOClientInterface::StdIOClientInterface()
|
||||
: m_env(Utils::Environment::systemEnvironment())
|
||||
{}
|
||||
|
||||
StdIOClientInterface::~StdIOClientInterface()
|
||||
{
|
||||
delete m_process;
|
||||
@@ -128,7 +124,8 @@ void StdIOClientInterface::startImpl()
|
||||
});
|
||||
m_process->setCommand(m_cmd);
|
||||
m_process->setWorkingDirectory(m_workingDirectory);
|
||||
m_process->setEnvironment(m_env);
|
||||
if (m_env.isValid())
|
||||
m_process->setEnvironment(m_env);
|
||||
m_process->start();
|
||||
}
|
||||
|
||||
|
@@ -72,7 +72,7 @@ class LANGUAGECLIENT_EXPORT StdIOClientInterface : public BaseClientInterface
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
StdIOClientInterface();
|
||||
StdIOClientInterface() = default;
|
||||
~StdIOClientInterface() override;
|
||||
|
||||
StdIOClientInterface(const StdIOClientInterface &) = delete;
|
||||
|
@@ -153,14 +153,22 @@ class PyLSInterface : public StdIOClientInterface
|
||||
public:
|
||||
PyLSInterface()
|
||||
: m_extraPythonPath("QtCreator-pyls-XXXXXX")
|
||||
{
|
||||
Environment env = Environment::systemEnvironment();
|
||||
env.appendOrSet("PYTHONPATH",
|
||||
m_extraPythonPath.path().toString(),
|
||||
OsSpecificAspects::pathListSeparator(env.osType()));
|
||||
setEnvironment(env);
|
||||
}
|
||||
{ }
|
||||
|
||||
TemporaryDirectory m_extraPythonPath;
|
||||
protected:
|
||||
void startImpl() override
|
||||
{
|
||||
if (!m_cmd.executable().needsDevice()) {
|
||||
// todo check where to put this tempdir in remote setups
|
||||
Environment env = Environment::systemEnvironment();
|
||||
env.appendOrSet("PYTHONPATH",
|
||||
m_extraPythonPath.path().toString(),
|
||||
OsSpecificAspects::pathListSeparator(env.osType()));
|
||||
setEnvironment(env);
|
||||
}
|
||||
StdIOClientInterface::startImpl();
|
||||
}
|
||||
};
|
||||
|
||||
PyLSClient *clientForPython(const FilePath &python)
|
||||
|
Reference in New Issue
Block a user