aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/languageclient/languageclientsettings.cpp
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2019-03-07 12:58:45 +0100
committerDavid Schulz <david.schulz@qt.io>2019-03-14 09:17:34 +0000
commitbc7134dce5260717c2261030f6251fed9d099c0e (patch)
treeb8e65a0c5d6dd9cf39981bc0c35a52c23195f309 /src/plugins/languageclient/languageclientsettings.cpp
parent4eff36b7f60684b5f457c3d28c17d95c4083200a (diff)
LanguageClient: Allow macro usage in client settings
Add the macro variable chooser to the name and the arguments of a server in the settings and expand those values on server startup. Change-Id: I61b031b8952fff7743e88f1523ed69844a5325d9 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/languageclient/languageclientsettings.cpp')
-rw-r--r--src/plugins/languageclient/languageclientsettings.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp
index bf344d87bbe..276fac15fc9 100644
--- a/src/plugins/languageclient/languageclientsettings.cpp
+++ b/src/plugins/languageclient/languageclientsettings.cpp
@@ -31,6 +31,7 @@
#include "languageclientinterface.h"
#include <coreplugin/icore.h>
+#include <coreplugin/variablechooser.h>
#include <utils/algorithm.h>
#include <utils/delegates.h>
#include <utils/fancylineedit.h>
@@ -308,7 +309,7 @@ QVariant LanguageClientSettingsModel::data(const QModelIndex &index, int role) c
if (!setting)
return QVariant();
if (role == Qt::DisplayRole)
- return setting->m_name;
+ return Utils::globalMacroExpander()->expand(setting->m_name);
else if (role == Qt::CheckStateRole)
return setting->m_enabled ? Qt::Checked : Qt::Unchecked;
return QVariant();
@@ -408,7 +409,7 @@ Client *BaseSettings::createClient() const
BaseClientInterface *interface = createInterface();
if (QTC_GUARD(interface)) {
auto *client = new Client(interface);
- client->setName(m_name);
+ client->setName(Utils::globalMacroExpander()->expand(m_name));
client->setSupportedLanguage(m_languageFilter);
return client;
}
@@ -517,7 +518,7 @@ void StdIOSettings::fromMap(const QVariantMap &map)
BaseClientInterface *StdIOSettings::createInterface() const
{
- return new StdIOClientInterface(m_executable, m_arguments);
+ return new StdIOClientInterface(m_executable, Utils::globalMacroExpander()->expand(m_arguments));
}
static QWidget *createCapabilitiesView(
@@ -548,6 +549,8 @@ BaseSettingsWidget::BaseSettingsWidget(const BaseSettings *settings, QWidget *pa
auto *mainLayout = new QGridLayout;
mainLayout->addWidget(new QLabel(tr("Name:")), row, 0);
mainLayout->addWidget(m_name, row, 1);
+ auto chooser = new Core::VariableChooser(this);
+ chooser->addSupportedWidget(m_name);
mainLayout->addWidget(new QLabel(tr("Language:")), ++row, 0);
auto mimeLayout = new QHBoxLayout;
mimeLayout->addWidget(m_mimeTypes);
@@ -707,6 +710,9 @@ StdIOSettingsWidget::StdIOSettingsWidget(const StdIOSettings *settings, QWidget
m_executable->setExpectedKind(Utils::PathChooser::ExistingCommand);
m_executable->setPath(QDir::toNativeSeparators(settings->m_executable));
mainLayout->addWidget(m_arguments, baseRows + 1, 1);
+
+ auto chooser = new Core::VariableChooser(this);
+ chooser->addSupportedWidget(m_arguments);
}
QString StdIOSettingsWidget::executable() const