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
{
auto interface = new JLSInterface();
interface->setExecutable(m_executable);
QString arguments = this->arguments();
arguments += QString(" -data \"%1\"").arg(interface->workspaceDir());
interface->setArguments(arguments);
CommandLine cmd{m_executable};
cmd.addArgs(arguments(), CommandLine::Raw);
cmd.addArgs({"-data", interface->workspaceDir()});
interface->setCommandLine(cmd);
return interface;
}

View File

@@ -41,14 +41,14 @@ static QString indexingToken() { return "backgroundIndexProgress"; }
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())
clangdArgs += " --compile-commands-dir=" + jsonDbDir.toString();
cmd.addArg("--compile-commands-dir=" + jsonDbDir.toString());
if (clangdLog().isDebugEnabled())
clangdArgs += " --log=verbose --pretty";
cmd.addArgs({"--log=verbose", "--pretty"});
const auto interface = new StdIOClientInterface;
interface->setExecutable(CppTools::codeModelSettings()->clangdFilePath().toString());
interface->setArguments(clangdArgs);
interface->setCommandLine(cmd);
return interface;
}

View File

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

View File

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

View File

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