LanguageServer: Use Utils::CommandLine in StdIOClientInterface

Change-Id: Ic2516387d7308bfad05cef54467c417cc47a7655
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
hjk
2021-04-30 08:25:10 +02:00
parent e5312362c8
commit 2f593d9db9
5 changed files with 13 additions and 20 deletions

View File

@@ -192,10 +192,10 @@ private:
LanguageClient::BaseClientInterface *JLSSettings::createInterface() const LanguageClient::BaseClientInterface *JLSSettings::createInterface() const
{ {
auto interface = new JLSInterface(); auto interface = new JLSInterface();
interface->setExecutable(m_executable); CommandLine cmd{m_executable};
QString arguments = this->arguments(); cmd.addArgs(arguments(), CommandLine::Raw);
arguments += QString(" -data \"%1\"").arg(interface->workspaceDir()); cmd.addArgs({"-data", interface->workspaceDir()});
interface->setArguments(arguments); interface->setCommandLine(cmd);
return interface; return interface;
} }

View File

@@ -41,14 +41,14 @@ static QString indexingToken() { return "backgroundIndexProgress"; }
static BaseClientInterface *clientInterface(const Utils::FilePath &jsonDbDir) static BaseClientInterface *clientInterface(const Utils::FilePath &jsonDbDir)
{ {
QString clangdArgs = "--index --background-index --limit-results=0"; Utils::CommandLine cmd{CppTools::codeModelSettings()->clangdFilePath(),
{"--index", "--background-index", "--limit-results=0"}};
if (!jsonDbDir.isEmpty()) if (!jsonDbDir.isEmpty())
clangdArgs += " --compile-commands-dir=" + jsonDbDir.toString(); cmd.addArg("--compile-commands-dir=" + jsonDbDir.toString());
if (clangdLog().isDebugEnabled()) if (clangdLog().isDebugEnabled())
clangdArgs += " --log=verbose --pretty"; cmd.addArgs({"--log=verbose", "--pretty"});
const auto interface = new StdIOClientInterface; const auto interface = new StdIOClientInterface;
interface->setExecutable(CppTools::codeModelSettings()->clangdFilePath().toString()); interface->setCommandLine(cmd);
interface->setArguments(clangdArgs);
return interface; return interface;
} }

View File

@@ -111,14 +111,9 @@ bool StdIOClientInterface::start()
return true; return true;
} }
void StdIOClientInterface::setExecutable(const QString &executable) void StdIOClientInterface::setCommandLine(const Utils::CommandLine &cmd)
{ {
m_process.setProgram(executable); m_process.setCommand(cmd);
}
void StdIOClientInterface::setArguments(const QString &arguments)
{
m_process.setArguments(Utils::QtcProcess::splitArgs(arguments));
} }
void StdIOClientInterface::setWorkingDirectory(const QString &workingDirectory) void StdIOClientInterface::setWorkingDirectory(const QString &workingDirectory)

View File

@@ -79,8 +79,7 @@ public:
bool start() override; bool start() override;
// These functions only have an effect if they are called before start // These functions only have an effect if they are called before start
void setExecutable(const QString &executable); void setCommandLine(const Utils::CommandLine &cmd);
void setArguments(const QString &arguments);
void setWorkingDirectory(const QString &workingDirectory); void setWorkingDirectory(const QString &workingDirectory);
protected: protected:

View File

@@ -736,8 +736,7 @@ Utils::CommandLine StdIOSettings::command() const
BaseClientInterface *StdIOSettings::createInterface() const BaseClientInterface *StdIOSettings::createInterface() const
{ {
auto interface = new StdIOClientInterface; auto interface = new StdIOClientInterface;
interface->setExecutable(m_executable); interface->setCommandLine(command());
interface->setArguments(arguments());
return interface; return interface;
} }