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();
|
m_currentMessage = BaseMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
StdIOClientInterface::StdIOClientInterface()
|
|
||||||
: m_env(Utils::Environment::systemEnvironment())
|
|
||||||
{}
|
|
||||||
|
|
||||||
StdIOClientInterface::~StdIOClientInterface()
|
StdIOClientInterface::~StdIOClientInterface()
|
||||||
{
|
{
|
||||||
delete m_process;
|
delete m_process;
|
||||||
@@ -128,7 +124,8 @@ void StdIOClientInterface::startImpl()
|
|||||||
});
|
});
|
||||||
m_process->setCommand(m_cmd);
|
m_process->setCommand(m_cmd);
|
||||||
m_process->setWorkingDirectory(m_workingDirectory);
|
m_process->setWorkingDirectory(m_workingDirectory);
|
||||||
m_process->setEnvironment(m_env);
|
if (m_env.isValid())
|
||||||
|
m_process->setEnvironment(m_env);
|
||||||
m_process->start();
|
m_process->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -72,7 +72,7 @@ class LANGUAGECLIENT_EXPORT StdIOClientInterface : public BaseClientInterface
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
StdIOClientInterface();
|
StdIOClientInterface() = default;
|
||||||
~StdIOClientInterface() override;
|
~StdIOClientInterface() override;
|
||||||
|
|
||||||
StdIOClientInterface(const StdIOClientInterface &) = delete;
|
StdIOClientInterface(const StdIOClientInterface &) = delete;
|
||||||
|
@@ -153,14 +153,22 @@ class PyLSInterface : public StdIOClientInterface
|
|||||||
public:
|
public:
|
||||||
PyLSInterface()
|
PyLSInterface()
|
||||||
: m_extraPythonPath("QtCreator-pyls-XXXXXX")
|
: 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;
|
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)
|
PyLSClient *clientForPython(const FilePath &python)
|
||||||
|
Reference in New Issue
Block a user